
쇼핑몰 개발팀은 리포트 에이전트를 만들었습니다. "지난주 카테고리별 매출을 집계해 줘"라고 말하면 에이전트가 집계 코드를 직접 써서 서버에서 돌리고 표를 돌려줍니다. 편리했습니다. 그런데 어느 날 집계 요청 속 상품명 필드에 섞여 들어온 문장 하나가 코드 생성에 끼어들었고, 에이전트가 만든 코드는 집계 말고 다른 일도 했습니다. 서버에서, 운영 권한으로요. 이번 글은 예상치 못한 코드 실행입니다.
문제의 핵심은 만든 코드를 검토 없이 바로 실행하는 구조입니다. OWASP 원문은 에이전트가 실시간으로 만든 코드가 기존 보안 통제를 비켜 갈 수 있다고 지적합니다. 코드 리뷰도, 빌드 검사도, 배포 승인도 거치지 않은 코드가 운영 환경에서 돌기 때문입니다.
인기 있는 바이브 코딩 도구를 포함한 에이전트 시스템은 코드를 만들고 실행하는 일이 많습니다. 예상치 못한 코드 실행(Unexpected Code Execution, RCE)은 공격자가 코드 생성 기능이나 에이전트에 붙은 도구 접근을 이용해 행동을 원격 코드 실행, 로컬 오용, 내부 시스템 악용으로 키우는 위험입니다.

원문은 프롬프트 인젝션, 도구 오용, 안전하지 않은 직렬화가 텍스트를 의도치 않은 실행 동작으로 바꾼다고 설명합니다. 실행되는 것은 스크립트, 바이너리, JIT·WASM 모듈, 역직렬화된 객체, 템플릿 엔진, 메모리 안의 코드 평가까지 다양합니다. 결과는 호스트나 컨테이너 장악, 지속성 확보, 샌드박스 탈출입니다.
코드 실행은 ASI02 도구 오용과 같은 도구 인터페이스로 일어나기도 합니다. 원문은 ASI05를 따로 둔 이유를 이렇게 적습니다. ASI05는 호스트·컨테이너 장악이나 샌드박스 탈출로 이어지는 예상치 못한 또는 적대적인 코드 실행에 초점을 둡니다. 이런 결과는 보통의 도구 사용 통제를 넘어 호스트와 런타임에 맞춘 완화책이 필요합니다.
LLM 목록과의 관계도 분명합니다. 이 항목은 2025판 LLM01 프롬프트 인젝션과 2025판 LLM05 부적절한 출력 처리(2026판 LLM10) 위에 서 있습니다. LLM 쪽이 "조작된 출력 하나가 해석·실행되는 것"이라면, 에이전트에서는 정상 도구 호출 여러 개를 차례로 이어 실행에 이르는 흐름으로 진화했다는 설명입니다.
원문이 드는 여섯 가지입니다.
시나리오를 개념만 추리면 이렇습니다. 자동 "바이브 코딩"이나 자가 수리 작업 중 에이전트가 검토되지 않은 설치·셸 명령을 실행해 운영 데이터를 지웁니다. 평범한 파일 처리 부탁처럼 보이는 요청에 명령이 섞여 들어와 그대로 실행됩니다. 보안 패치를 만들던 에이전트가 정상처럼 보이지만 뒷문이 있는 코드를 환각으로 만듭니다. 파일 업로드, 경로 조작, 동적 코드 로딩처럼 하나하나는 평범한 도구 호출을 이어 붙여 실행에 이릅니다. "빌드 고쳐 줘" 작업 중 고정되지 않은 버전 범위로 잠금 파일을 다시 만들다가 뒷문이 든 버전을 받아 오기도 합니다.

원문의 방어 일곱 가지입니다.
장면의 리포트 에이전트라면, 집계는 미리 만든 안전한 질의 도구로 처리하고, 정말 코드를 생성해야 한다면 읽기 전용 데이터 사본만 보이는 격리 환경에서, root가 아닌 계정으로, 네트워크를 막고 돌렸어야 합니다.
이 글은 OWASP GenAI Security Project – Agentic Security Initiative의 「OWASP Top 10 for Agentic Applications 2026」(CC BY-SA 4.0)을 바탕으로 한국어로 풀어 쓴 글입니다.
이전 글 ASI04 에이전틱 공급망: 실행 중에 조립되는 의존성
다음 글 ASI06 메모리·컨텍스트 오염: 한 번 심은 거짓이 계속 남는다
시리즈 전체 목록 입문자를 위한 OWASP Agentic Top 10 2026 전체 목록