llama.cpp는 공개 버전 태그 b11871에서 PR #30242를 합치며, JSON 요청의 중첩 깊이에 대한 적극적인 보호 메커니즘을 정식으로 도입했습니다. 이는 재귀적으로 파싱하기 전에 중첩 레벨을 사전 검사하여, 128레벨을 초과하면 처리를 거부하고 HTTP 400 Bad Request를 반환합니다. 이러한 조치는 악의적이거나 비정상적으로 깊게 중첩된 JSON(예: 과도하게 긴 도구 스키마)로 인해 발생할 수 있는 스택 오버플로우를 방지하기 위한 것입니다. macOS에서는 수백 레벨만으로도 SIGBUS가 발생하며, Linux에서는 약 만 레벨에 달하면 SIGSEGV가 발생해 결국 llama-server 프로세스가 크래시됩니다.
이 제한은 여러 핵심 경로에 걸쳐 적용됩니다: chat 인터페이스의 tools 정의, tool-call 매개변수, chat_template_kwargs 및 json_schema 필드; /completion 인터페이스의 json_schema 매개변수; 그리고 /v1/systemone 요청 본문 전체입니다. 주목할 점은, Gemma-4 모델이 생성한 지나치게 깊은 tool result에 대해서는 시스템이 이를 순수 텍스트 출력으로 되돌려 보낼 뿐, 더 이상 심층 분석에 포함하지 않는다는 것입니다. 프로젝트 측에서는 이것이 ‘호출 측이 아닌 근본 원인을 수정하는 것’이며, 단순히 호출 측에서만 방어 조치를 취하는 것이 아니라고 강조합니다.
b11871 버전은 macOS(애플 실리콘/인텔), iOS, Linux(Ubuntu 다중 아키텍처 및 Vulkan/CUDA/ROCm/OpenVINO/SYCL/Snapdragon 백엔드), Android(arm64 및 Snapdragon), Windows(x64/arm64, CUDA 12.4/13.4, Vulkan, OpenCL, OpenVINO, SYCL, ROCm 10.0 지원) 등을 포함한 모든 플랫폼용 바이너리 배포 패키지를 동시에 제공합니다. openEuler 빌드는 현재 DISABLED로 표시되어 있습니다. 모든 변경 사항은 GitHub 리포지토리 ggml-org/llama.cpp에서 가져왔으며, 출시 정보는 원본 태그 페이지를 기준으로 합니다.