개요
llama.cpp <=b5693(commit 97f06e9)은 common/json-schema-to-grammar.cpp의 무제어 재귀로 인해 서비스 거부(DoS)에 취약합니다. 깊게 중첩된 JSON 스키마를 json_schema 필드로 전달하면 재귀 스택이 소진되어 서버가 크래시됩니다.
세부 정보
- 취약 함수:
SchemaConverter::visit(839행),_generate_union_rule(339행) - 진입점:
tools/server/server-task.cpp(373행) - 영향 경로:
POST /completions만 영향.POST /v1/chat/completions는json_schema를 jinja 엔진으로 라우팅하므로 취약하지 않음. - 재현성: 재귀 깊이 >= 7000에서 100% 재현. 기본 8 MB 스레드 스택 x86-64 Linux에서 확인.
NVD 세부 정보
- CVSS: 7.5(높음)
- 벡터: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
- CWE: CWE-674 (무제어 재귀)
- 공격 유형: 원격(Network)
- 발행일: 2026-08-12
패치 상태
- 미패치 (최신 릴리스 b10405 / 2026-08-13 기준).
SchemaConverter::visit·_generate_union_rule·get_recursive_refs에 재귀 깊이 제한 인자가 없어 무제어 재귀가 유지됨. 기준(b5693) 이후 해당 파일 변경은 파싱 정렬(PR #24835)뿐으로 재귀 제어와 무관.