중대 경고가 pip 패키지 pantheon-agents에 대해 8월 26일 14:36 UTC GitHub Advisory Database에 게시됐다. 이 사건의 근본적인 발생 시점은 2026년 6월이었다. 이 두 날짜 사이의 간격은 72일이며, 이는 이 기록의 문제들 가운데 가장 작은 문제에 불과하다.

공격자들이 한 일

유지관리자의 PyPI 계정은 공급망 공격으로 침해됐고, 버전 0.6.10.6.2가 PyPI에 직접 업로드됐다. 이 릴리스들에는 .pth 파일이 포함돼 있는데, 이는 Python이 인터프리터 시작 시 사용자의 코드가 실행되기 전에 자동으로 실행하는 메커니즘으로, JavaScript 런타임을 내려받고 환경 변수, API 키, SSH 키, 클라우드 자격 증명을 수집한다. 패키지를 import할 필요는 전혀 없었다. 이후 Python이 시작되는 환경에 설치하기만 해도 충분했다.

깨끗한 부분

경고는 범위에 대해 정확히 밝힌다. "PyPI 아티팩트만 영향을 받는다. GitHub 소스 저장소, 그 git 태그, 그리고 다른 모든 배포 경로는 깨끗하다." 소스에서 vendoring했거나 git 태그를 고정해 사용한 사람은 노출되지 않았다. 이는 코드 침해가 아니라 배포 침해이며, 바로 이런 경우를 해시 고정 lockfile이 잡아내도록 설계돼 있고 느슨한 버전 범위는 그렇지 못하다.

흔한 설명이 놓치는 점

패치된 버전 필드가 0.6.4라고 적힌 경고는 모든 스캐너와 의존성 봇에 같은 메시지를 전달한다. 0.6.4로 업그레이드하면 된다는 뜻이다. 그러나 같은 경고 본문은 PyPI 배포가 중단됐으며 "계정 복구와 PyPI Trusted Publishing(OIDC)으로의 이전 이후 재개될 것"이라고 설명하고, 사용자들에게는 대신 GitHub 소스에서 설치하라고 안내한다. 즉, 기계가 읽는 remediation은 현재 레지스트리가 제공하지 않는 릴리스를 가리키고, 사람이 읽는 remediation은 아예 그 레지스트리 사용을 중단하라고 말한다. 자동화 도구는 두 번째가 아니라 첫 번째 필드를 읽는다. 이 경고에 봇이 반응하도록 두는 팀은 해결할 수 없는 pull request를 열게 된다.

그리고 CVE는 없다

이 기록에는 CVE 식별자가 없다. CVE를 기준으로 취약점 관리를 하는 조직들, 즉 형식적인 절차를 갖춘 대부분의 조직은 이 사실을 전혀 보지 못한다. AI 에이전트 프레임워크에 대한 치명적인 자격 증명 탈취 침해가, GitHub 경고를 직접 수집하는 도구에만 보이고, 72일이 지난 뒤에야 드러나며, remediation 필드는 패키지를 가져올 수 없는 곳을 가리키고 있는 셈이다.

노출 기간을 감사해야 한다

악성 아티팩트는 이미 PyPI에서 사라졌다. 따라서 실질적인 질문은 지금도 그것을 설치할 수 있느냐가 아니라, 6월과 제거 시점 사이에 설치했느냐이다. 그 기간에 CI 러너나 개발자 머신이 pantheon-agents 0.6.1 또는 0.6.2를 해석했다면, 해당 환경 변수와 클라우드 자격 증명이 읽혔다고 봐야 한다. 해결책은 업그레이드가 아니라 교체다.