MetaGPT에 두 건의 경고가 내려졌습니다. GitHub 스타가 70,148개에 달하는, 가장 자주 인용되는 멀티 에이전트 프레임워크 가운데 하나입니다. CVE-2026-79408은 metagpt/repo_parser.py의 RepoParser.rebuild_class_views()에서 path 인자를 통해 발생하는 OS 명령 주입입니다. CVE-2026-79407은 metagpt/ext/spo/utils/load.py의 FILE_NAME 값을 통해 발생하는 경로 탐색으로, 임의 파일 읽기를 허용합니다. 두 취약점 모두 버전 0.8.1을 대상으로 표시돼 있습니다.
"0.8.1에 영향을 준다"는 의미와, 이 경우 왜 잘못된 설명인지
경고에서의 버전 범위는 보통 업그레이드가 가능하다는 뜻입니다. 그러나 이 경우에는 그렇지 않습니다. 두 기록 모두 패치된 버전 항목이 없습니다. 취약한 코드는 여전히 기본 브랜치에 남아 있습니다. repo_parser.py는 여전히 f"pyreverse {str(path)} -o dot"를 만든 뒤 이를 subprocess.run(..., shell=True)에 넘기고 있으며, load.py도 여전히 정규화 없이 FILE_NAME을 설정 경로에 결합합니다. 최신 릴리스인 버전 0.8.2도 이를 고치지 못했습니다. 이 버전은 2025년 3월에 공개됐고, 저장소의 마지막 푸시는 2026년 1월 21일이었습니다. 아카이브된 것은 아니며, 단지 더 이상 움직이지 않을 뿐입니다.
스캐너 문제
두 경고 모두 공급업체나 NVD 어느 쪽에서도 CVSS 점수가 없습니다. 심각도는 알 수 없음으로 표시됩니다. 대부분의 의존성 스캐너는 높음 이상 또는 중간 이상처럼 심각도 기준선을 설정해 둡니다. 점수가 없는 항목은 기준선을 넘지 못합니다. 많은 파이프라인에서는 이 두 건이 아예 아무 경고도 띄우지 않게 되며, 그것이 공개된 취약점과 눈에 보이는 취약점의 실질적인 차이입니다.
취약한 동작이 위치한 곳
명령 주입 경로는 저장소 파싱 안에 있습니다. 에이전트가 사용자가 제공한 코드베이스에 대해 호출하는 함수입니다. 이는 자율 코딩 에이전트가 설계상 신뢰되지 않은 입력을 향해 지점을 두는 바로 그 표면입니다.
구조적 의미
경고는 반대편에 유지관리자가 있다는 것을 전제로 합니다. 널리 의존되는 프로젝트가 커밋 수락을 멈추면, 공개는 고칠 수 없는 결함에 대한 영구적인 공개 기록을 남기게 되고, 책임은 이를 벤더링한 쪽으로 완전히 넘어갑니다. 그들 대부분은 이 경고를 결코 보지 못할 것입니다.
