21일 저녁 4시간 동안 미국 국가 취약점 피드는 AI, 머신러닝, 에이전트 도구화 프로젝트 8개를 대상으로 한 12개 CVE 기록을 공개했다. 그러나 이 가운데 새로운 공개는 하나도 없다. 모든 경우에 패치는 이미 배포됐고 벤더 권고문도 이미 공개된 상태였으며, 시차는 11일에서 118일에 이르렀다.

가장 큰 공백은 가장 심각한 버그다

가장 긴 지연은 가장 높은 점수에 붙는다. 모델 서빙 프레임워크 XinferenceCVSS 10.0 원격 코드 실행 취약점은 한 줄, 즉 모델 자신의 도구 호출 출력에 적용된 eval()로 귀결된다. 따라서 모델이 OS 호출을 내보내도록 유도하는 프롬프트는 이를 서버에서 실행시킨다. 수정본은 4월 25일에 배포됐고, 유지관리자는 7월 13일에 권고문을 공개했으며, CVE는 패치 후 118일이 지난 8월 21일에 등록됐다. 이 프로젝트는 현재 수정 이후 여섯 차례의 마이너 릴리스를 더 거쳤다. 또한 10.0 점수는 기본 배포 설정, 즉 인증이 꺼져 있는 상태를 전제로 한다. 권고문도 이를 명시한다.

한 에이전트 하니스에서 네 개가 한꺼번에

12개 중 4개는 Databricks와 연계된 메타 하니스 Omnigent에 속한다. 이 하니스는 다른 코딩 에이전트들을 조율한다. 가장 흥미로운 취약점은 fail open 방식의 가드레일이다. 셸 명령 파서가 명령을 파싱하지 못하면 아무것도 반환하지 않는데, 여기에 결합된 인터프리터 플래그, timeout, nice, setsid, stdbuf 래퍼, 명령 치환, 그리고 단 하나의 백그라운드 연산자까지 더해지면 모두 "no parsed operation"으로 처리된다. 그러면 저장소 허용목록과 작업공간 격리 정책은 개입을 중단하고 이를 허용한다. 권고문은 인증된 또는 프롬프트 주입된 에이전트가 이를 이용해 비승인 저장소로 푸시하거나 작업공간을 탈출할 수 있다고 밝힌다. 보고자는 자율 보안 에이전트로 그대로 표기됐다. 별도의 항목인 Microsoft의 UFO 프레임워크에서는 로컬 에이전트 서버가 Host도 Origin도 검증하지 않는 포트에 바인딩돼 있어, 어떤 웹페이지든 이를 다시 바인딩해 명령을 실행할 수 있다. 수정 커밋은 릴리스가 사용자에게 전달되기 45일 전부터 저장소에 머물러 있었다.

통상적인 프레이밍이 놓치는 것

월요일부터 이들 취약점은 AI 인프라의 새로 공개된 치명적 결함으로 보도될 것이다. 하지만 실제로는 피드가 뒤늦게 따라잡는 것에 불과하다. 확인 과정에서도 주의가 필요하다. GitHub Advisory API는 저장소 페이지에는 7월로 표시된 권고문에 대해 8월 21일의 게시 시각을 반환한다. API 필드는 유지관리자가 권고문을 공개한 시점이 아니라, GitHub의 글로벌 데이터베이스가 해당 권고문을 검토한 시점을 기록한다. 따라서 API 날짜를 인용한 보도는 흔적을 남기지 않는 방식으로 잘못될 수 있다.

그 아래에 있는 패턴

12개를 걷어내면 하나의 실패가 반복된다. 에이전트 프레임워크가 모델 출력, 설정값 또는 인증되지 않은 로컬 포트를 신뢰된 입력으로 취급하는 것이다. 한편 수정 배포와 CVE 등록 사이의 중앙값 격차는 대략 55일이다. 그 기간 동안 패치는 공개 git 기록에 남아 있어, 단순한 diff만으로도 익스플로잇으로 바뀔 수 있는데도 하위 사용자를 업그레이드하라고 알리는 신호는 없다.