🇰🇷 한글 설명
OmniAgent의 커밋 12b98c5 이전 버전에서 ReflexionAgent._is_safe_bash_command 함수가 find로 시작하는 모든 명령을 안전하다고 판단하며 -execdir 인자를 검사하지 않습니다. 이로 인해 프롬프트 인젝션을 당한 에이전트가 find -execdir를 통해 dd, nc, perl, openssl 같은 바이너리를 샌드박스 없는 셸에서 실행하여 사용자 승인 없이 파일을 덮어쓰거나 코드를 실행할 수 있습니다.
💡 쉬운 설명
AI 에이전트가 '안전한 명령'으로 잘못 분류한 검색 명령을 이용해 위험한 프로그램을 몰래 실행할 수 있는 문제입니다. 사람의 확인 없이 파일이 손상되거나 악성 코드가 실행될 수 있습니다.
🇺🇸 원문 (English)
OmniAgent through commit 12b98c5 contains an approval bypass vulnerability in ReflexionAgent._is_safe_bash_command that treats any command starting with find as safe without inspecting -execdir arguments. Prompt-injected agents can run find with -execdir to invoke binaries like dd, nc, perl or openssl through an unsandboxed shell, overwriting files or executing code without human approval.
📍 영향받는 시스템
OmniAgent 커밋 12b98c5 및 그 이전 버전을 사용하는 시스템
⚔️ 공격 벡터
프롬프트 인젝션으로 에이전트를 조작해 find -execdir로 dd, nc, perl 등의 명령을 승인 없이 실행
🛡️ 대응 방법
OmniAgent를 해당 커밋 이후의 수정된 버전으로 업데이트하고, -execdir/-exec 등 실행 옵션을 포함한 find 명령을 차단하도록 승인 검사 로직을 보완
🔧 검증 코드
출력된 커밋 해시가 12b98c5 이전이면 취약 버전이므로 업데이트가 필요하며, git 저장소가 없으면 설치된 패키지 버전을 직접 확인해야 합니다.
cd "$(dirname "$(command -v omniagent 2>/dev/null || echo .)")" 2>/dev/null; git -C . log --oneline -1 2>/dev/null || echo 'git 저장소 없음'