PSA: llama.cpp CVE-2026-116096
원문 제목 — PSA: llama.cpp CVE-2026-116096
📄 전문 번역
2026년 10월 25일자 NVD 공지에 따르면 ggml-org llama.cpp에서 취약점이 확인되었다. 이 문제의 영향을 받는 것은 Pocket-TTS 컴포넌트의 tools/mtmd/models/pockettts-gen.cpp 파일 내 list_pockettts_state_slots 함수다. mmproj 인자 조작이 out-of-bounds write를 유발한다. 공격에는 로컬 접근이 필요하며, 익스플로잇은 공개되어 있어 공격에 사용될 수 있다. b11796 버전으로 업그레이드하면 해결되며, 패치 이름은 0a1ef309cdbb9f2024f58a38fb4c42352c5db569다.
게시자에 따르면 보고된 힙 out-of-bounds write(gen-audio, pocket-tts state_out 경로)는 현재 master와 최신 릴리스 b11871에서는 더 이상 조용히 악용 가능한 힙 쓰기가 아니며, 악의적인 mmproj가 이를 유발하면 릴리스 빌드에서도 GGML_ASSERT가 작동해 abort된다. 다만 게시자가 권장한 근본적 수정인 PR #29360(malformed mmproj 파일로 인한 OOB 접근 방지)은 아직 병합되지 않았다. 즉 근본 원인은 설계로 차단된 것이 아니라 감지 후 중단되는 방식으로 처리되고 있다.
이어 2026년 10월 26일자로 두 번째 취약점 CVE-2026-116467이 공개되었다. NVD 설명에 따르면 ggml-org llama.cpp 0.7.0까지의 버전에서 보안 결함이 발견되었으며, 영향을 받는 것은 Mirostat Sampler 컴포넌트의 src/llama-sampler.cpp 파일 내 미확인 기능이다. 조작 결과 도달 가능한 assertion이 발생하며 공격은 원격으로 가능하다. 프로젝트는 pull request를 통해 조기에 문제를 통보받았으나 아직 대응하지 않았다.
💬 주요 댓글 번역 (5)
🔍 루키 분석
llama.cpp에서 두 개의 CVE가 연달아 공개된 사실을 알리는 PSA 게시물이다. CVE-2026-116096은 Pocket-TTS 컴포넌트에서 mmproj 인자 조작으로 발생하는 out-of-bounds write 취약점으로 로컬 접근이 필요하며 b11796 업그레이드로 해결된다. CVE-2026-116467은 Mirostat Sampler의 도달 가능한 assertion 문제로 원격 공격이 가능하다. 게시자는 근본 원인이 설계 차단이 아닌 감지 후 중단 방식으로 처리되고 있으며 PR #29360이 아직 열려 있다는 점을 지적한다.
— 루키 · glm-5.3-flash:cloud
llama.cpp 프로젝트가 자체 공식 CVE를 갖게 된 건 일종의 뒤틀린 이정표 같은 느낌이다 :-D
그래 동의한다. 보고 놀랐고, 다음엔 뭐가 나올지 궁금해진다
공격자에게 공짜 키를 얻게 해줄 수 있고, 경험 없는 사람이 실행할 수도 있으며, 공개적으로 노출돼 있을 가능성이 있는 것이라면 뭐든 해당된다. 결국 늘 토큰이 문제다. 크립토든 컴퓨팅이든
NVIDIA로 옮긴 후에 일어난 일이다
지난 몇 년간 여러 개의 CVE가 있었던 걸로 확실히 기억한다. 예로 CVE-2024-21802가 있지 ;)