원문 캡처 · arxiv.org
원문 캡처 · arxiv.org

오랫동안 실행되는 코딩 에이전트는 대화를 요약해 원문을 버리고 요약을 기억으로 이어가는 경우가 있다. 아르샨 다비르시아기(Arshan Dabirsiaghi)의 논문은 일부 에이전트가 이 과정에서 메시지의 출처 정보를 잃어, 공격자가 심어 둔 내용을 사용자 지시처럼 기억하고 실행할 수 있다고 보고했다.

연구진은 대화 메시지를 [User]: 같은 텍스트 표식이 붙은 하나의 문자열로 바꾸는 오픈소스 에이전트 5종(pi, opencode, Cline, Aider, OpenHands)에서 공격자가 위조한 승인이 요약 뒤에도 진짜 지시처럼 남는 비율이 87~100%였다고 밝혔다. 이 결과는 최대 약 908,000토큰의 컨텍스트 창까지 관찰됐다. 반면 메시지 역할을 별도 정보로 유지하는 4종(Codex, Gemini CLI, Qwen Code, Continue)에서는 같은 공격이 성공하지 않았다.

논문은 요약에 남은 승인이 샌드박스에서 공격자가 통제하는 curl | sh 명령을 실행하게 했으며, pi의 실시간 TUI에서는 공격 성공률이 약 50%, 짝을 이룬 정상 대조군에서는 0%였다고 설명한다. 공격자는 같은 방식으로 에이전트의 계획을 특정 파일에서 멀어지게 할 수도 있었다. 논문은 이로 인해 코드 리뷰에서 심어 둔 백도어를 놓칠 수 있다고 지적한다.

다비르시아기는 출처 정보가 요약 전에 코드에서 결정적으로 사라지므로 프롬프트 수준의 방어만으로는 복구할 수 없다고 주장한다. 논문에서 측정한 코드 수준 출처 확인은 이런 오염의 77%를 잡아냈고, 정상적인 요약 내용의 2%를 강등했다. 제안한 수정은 역할 표식을 문자열로 합치기 전에 이스케이프하는 방식이며, 역할 정보를 별도로 유지하는 구조는 문제를 피한다고 설명한다.

논문 PDF · HTML 원문 · arXiv 요약