CVE-2026-7820524 August at 01:16 UTC에 공개됐으며, BentoML의 외부 연결 보호 기능에서 발생한 서버 측 요청 위조(SSRF) 취약점으로 1.4.19 through 1.4.39 버전에 영향을 미칩니다. 이는 2025년의 이전 취약점에 대한 명시적이면서도 불완전한 조치입니다.

공백과, 이를 놓치기 쉬운 이유

이 보호 함수는 사설, 루프백, 링크-로컬 주소를 거부합니다. 그러나 RFC 6598 shared address space, 100.64.0.0/10은 거부하지 않습니다. 이 범위는 통신사업자급 NAT에 사용됩니다. 그 이유는 시사적입니다. Python의 표준 ipaddress 모듈은 해당 블록을 사설로 분류하지 않으므로, "이 주소가 사설인가"라는 기준으로 작성된 검사는 이를 통과시킵니다. 개발자는 그럴듯한 테스트를 작성했고 라이브러리는 정확하게 응답했지만, 그 정의는 위협 모델과 단순히 맞지 않았습니다. 공격자는 멀티파트 파일 처리나 JSON 파싱을 통해 URL을 주입하고, CGNAT 네트워크의 내부 호스트에 도달할 수 있습니다.

일반적인 해석이 잘못 짚는 지점

불완전한 수정은 새로운 취약점 발견과는 다른 성격의 사건이며, 그 구분은 벤더보다 벤더에 불리하게 작용합니다. 원래 취약점은 보고되고 수용된 뒤 패치됐고, 이후 그 패치가 사안을 종결한 것으로 간주됐습니다. 이번 주 공개된 내용은 해당 수정이 보고된 사례에 대해서만 검증됐을 뿐, 취약점의 범주 전체에 대해서는 검증되지 않았음을 보여줍니다. 영향을 받는 버전을 운영하는 이들이 던져야 할 질문은 2025년 수정안을 적용했는지가 아니라, 그 적용 이후 자신들이 충분히 보호받고 있다고 믿게 됐는지 여부입니다.

타임라인

신고자는 이 문제가 2 June에 이메일로 전달됐으나 이후 응답이 없었다고 밝혔습니다. 공개 이슈는 30 June에 열렸으며 현재도 열려 있습니다. 신고자 설명대로라면, 비공개 신고에서 공개 CVE까지 약 83 days가 걸렸고 그 사이 인정은 없었습니다. 이는 조정된 공개가 비조정 공개로 바뀌는 전형적인 과정입니다.

밤사이 드러난 패턴

이번 발표는 llama.cpp RPC 취약점 2건이 공개된 지 2시간 이내에 나왔습니다. 세 건 모두 AI 서비스 인프라와 관련돼 있으며, 세 경우 모두 유지보수자들은 이미 통보를 받은 상태였습니다.