{"document":{"aggregate_severity":{"namespace":"https://www.suse.com/support/security/rating/","text":"important"},"category":"csaf_vex","csaf_version":"2.0","distribution":{"text":"Copyright 2024 SUSE LLC. All rights reserved.","tlp":{"label":"WHITE","url":"https://www.first.org/tlp/"}},"lang":"en","notes":[{"category":"summary","text":"SUSE CVE-2025-49847","title":"Title"},{"category":"description","text":"llama.cpp is an inference of several LLM models in C/C++. Prior to version b5662, an attacker‐supplied GGUF model vocabulary can trigger a buffer overflow in llama.cpp's vocabulary‐loading code. Specifically, the helper _try_copy in llama.cpp/src/vocab.cpp: llama_vocab::impl::token_to_piece() casts a very large size_t token length into an int32_t, causing the length check (if (length < (int32_t)size)) to be bypassed. As a result, memcpy is still called with that oversized size, letting a malicious model overwrite memory beyond the intended buffer. This can lead to arbitrary memory corruption and potential code execution. This issue has been patched in version b5662.","title":"Description of the CVE"},{"category":"legal_disclaimer","text":"CSAF 2.0 data is provided by SUSE under the Creative Commons License 4.0 with Attribution (CC-BY-4.0).","title":"Terms of use"}],"publisher":{"category":"vendor","contact_details":"https://www.suse.com/support/security/contact/","name":"SUSE Product Security Team","namespace":"https://www.suse.com/"},"references":[{"category":"external","summary":"CVE-2025-49847","url":"https://www.suse.com/security/cve/CVE-2025-49847"},{"category":"external","summary":"SUSE Security Ratings","url":"https://www.suse.com/support/security/rating/"},{"category":"external","summary":"SUSE Bug 1244714 for CVE-2025-49847","url":"https://bugzilla.suse.com/1244714"}],"title":"SUSE CVE CVE-2025-49847","tracking":{"current_release_date":"2026-01-24T00:32:24Z","generator":{"date":"2026-01-24T00:32:24Z","engine":{"name":"cve-database.git:bin/generate-csaf-vex.pl","version":"1"}},"id":"CVE-2025-49847","initial_release_date":"2026-01-24T00:32:24Z","revision_history":[{"date":"2026-01-24T00:32:24Z","number":"2","summary":"vulnerabilities added,references added,severity changed from  to important"}],"status":"interim","version":"2"}},"product_tree":{"branches":[{"branches":[{"branches":[{"category":"product_name","name":"openSUSE Tumbleweed","product":{"name":"openSUSE Tumbleweed","product_id":"openSUSE Tumbleweed","product_identification_helper":{"cpe":"cpe:/o:opensuse:tumbleweed"}}},{"category":"product_version","name":"ggml-devel-5699-1.1","product":{"name":"ggml-devel-5699-1.1","product_id":"ggml-devel-5699-1.1","product_identification_helper":{"purl":"pkg:rpm/suse/ggml-devel@5699-1.1"}}},{"category":"product_version","name":"libggml-5699-1.1","product":{"name":"libggml-5699-1.1","product_id":"libggml-5699-1.1","product_identification_helper":{"purl":"pkg:rpm/suse/libggml@5699-1.1"}}},{"category":"product_version","name":"libggml-base-5699-1.1","product":{"name":"libggml-base-5699-1.1","product_id":"libggml-base-5699-1.1","product_identification_helper":{"purl":"pkg:rpm/suse/libggml-base@5699-1.1"}}},{"category":"product_version","name":"libggml-cpu-5699-1.1","product":{"name":"libggml-cpu-5699-1.1","product_id":"libggml-cpu-5699-1.1","product_identification_helper":{"purl":"pkg:rpm/suse/libggml-cpu@5699-1.1"}}},{"category":"product_version","name":"libggml-opencl-5699-1.1","product":{"name":"libggml-opencl-5699-1.1","product_id":"libggml-opencl-5699-1.1","product_identification_helper":{"purl":"pkg:rpm/suse/libggml-opencl@5699-1.1"}}},{"category":"product_version","name":"libggml-vulkan-5699-1.1","product":{"name":"libggml-vulkan-5699-1.1","product_id":"libggml-vulkan-5699-1.1","product_identification_helper":{"purl":"pkg:rpm/suse/libggml-vulkan@5699-1.1"}}},{"category":"product_version","name":"libllama-5699-1.1","product":{"name":"libllama-5699-1.1","product_id":"libllama-5699-1.1","product_identification_helper":{"purl":"pkg:rpm/suse/libllama@5699-1.1"}}},{"category":"product_version","name":"libmtmd-5699-1.1","product":{"name":"libmtmd-5699-1.1","product_id":"libmtmd-5699-1.1","product_identification_helper":{"purl":"pkg:rpm/suse/libmtmd@5699-1.1"}}},{"category":"product_version","name":"llamacpp-5699-1.1","product":{"name":"llamacpp-5699-1.1","product_id":"llamacpp-5699-1.1","product_identification_helper":{"purl":"pkg:rpm/suse/llamacpp@5699-1.1"}}},{"category":"product_version","name":"llamacpp-devel-5699-1.1","product":{"name":"llamacpp-devel-5699-1.1","product_id":"llamacpp-devel-5699-1.1","product_identification_helper":{"purl":"pkg:rpm/suse/llamacpp-devel@5699-1.1"}}}],"category":"product_family","name":"SUSE Linux Enterprise"}],"category":"vendor","name":"SUSE"}],"relationships":[{"category":"default_component_of","full_product_name":{"name":"ggml-devel-5699-1.1 as component of openSUSE Tumbleweed","product_id":"openSUSE Tumbleweed:ggml-devel-5699-1.1"},"product_reference":"ggml-devel-5699-1.1","relates_to_product_reference":"openSUSE Tumbleweed"},{"category":"default_component_of","full_product_name":{"name":"libggml-5699-1.1 as component of openSUSE Tumbleweed","product_id":"openSUSE Tumbleweed:libggml-5699-1.1"},"product_reference":"libggml-5699-1.1","relates_to_product_reference":"openSUSE Tumbleweed"},{"category":"default_component_of","full_product_name":{"name":"libggml-base-5699-1.1 as component of openSUSE Tumbleweed","product_id":"openSUSE Tumbleweed:libggml-base-5699-1.1"},"product_reference":"libggml-base-5699-1.1","relates_to_product_reference":"openSUSE Tumbleweed"},{"category":"default_component_of","full_product_name":{"name":"libggml-cpu-5699-1.1 as component of openSUSE Tumbleweed","product_id":"openSUSE Tumbleweed:libggml-cpu-5699-1.1"},"product_reference":"libggml-cpu-5699-1.1","relates_to_product_reference":"openSUSE Tumbleweed"},{"category":"default_component_of","full_product_name":{"name":"libggml-opencl-5699-1.1 as component of openSUSE Tumbleweed","product_id":"openSUSE Tumbleweed:libggml-opencl-5699-1.1"},"product_reference":"libggml-opencl-5699-1.1","relates_to_product_reference":"openSUSE Tumbleweed"},{"category":"default_component_of","full_product_name":{"name":"libggml-vulkan-5699-1.1 as component of openSUSE Tumbleweed","product_id":"openSUSE Tumbleweed:libggml-vulkan-5699-1.1"},"product_reference":"libggml-vulkan-5699-1.1","relates_to_product_reference":"openSUSE Tumbleweed"},{"category":"default_component_of","full_product_name":{"name":"libllama-5699-1.1 as component of openSUSE Tumbleweed","product_id":"openSUSE Tumbleweed:libllama-5699-1.1"},"product_reference":"libllama-5699-1.1","relates_to_product_reference":"openSUSE Tumbleweed"},{"category":"default_component_of","full_product_name":{"name":"libmtmd-5699-1.1 as component of openSUSE Tumbleweed","product_id":"openSUSE Tumbleweed:libmtmd-5699-1.1"},"product_reference":"libmtmd-5699-1.1","relates_to_product_reference":"openSUSE Tumbleweed"},{"category":"default_component_of","full_product_name":{"name":"llamacpp-5699-1.1 as component of openSUSE Tumbleweed","product_id":"openSUSE Tumbleweed:llamacpp-5699-1.1"},"product_reference":"llamacpp-5699-1.1","relates_to_product_reference":"openSUSE Tumbleweed"},{"category":"default_component_of","full_product_name":{"name":"llamacpp-devel-5699-1.1 as component of openSUSE Tumbleweed","product_id":"openSUSE Tumbleweed:llamacpp-devel-5699-1.1"},"product_reference":"llamacpp-devel-5699-1.1","relates_to_product_reference":"openSUSE Tumbleweed"}]},"vulnerabilities":[{"cve":"CVE-2025-49847","ids":[{"system_name":"SUSE CVE Page","text":"https://www.suse.com/security/cve/CVE-2025-49847"}],"notes":[{"category":"general","text":"llama.cpp is an inference of several LLM models in C/C++. Prior to version b5662, an attacker‐supplied GGUF model vocabulary can trigger a buffer overflow in llama.cpp's vocabulary‐loading code. Specifically, the helper _try_copy in llama.cpp/src/vocab.cpp: llama_vocab::impl::token_to_piece() casts a very large size_t token length into an int32_t, causing the length check (if (length < (int32_t)size)) to be bypassed. As a result, memcpy is still called with that oversized size, letting a malicious model overwrite memory beyond the intended buffer. This can lead to arbitrary memory corruption and potential code execution. This issue has been patched in version b5662.","title":"CVE description"}],"product_status":{"recommended":["openSUSE Tumbleweed:ggml-devel-5699-1.1","openSUSE Tumbleweed:libggml-5699-1.1","openSUSE Tumbleweed:libggml-base-5699-1.1","openSUSE Tumbleweed:libggml-cpu-5699-1.1","openSUSE Tumbleweed:libggml-opencl-5699-1.1","openSUSE Tumbleweed:libggml-vulkan-5699-1.1","openSUSE Tumbleweed:libllama-5699-1.1","openSUSE Tumbleweed:libmtmd-5699-1.1","openSUSE Tumbleweed:llamacpp-5699-1.1","openSUSE Tumbleweed:llamacpp-devel-5699-1.1"]},"references":[{"category":"external","summary":"CVE-2025-49847","url":"https://www.suse.com/security/cve/CVE-2025-49847"},{"category":"external","summary":"SUSE Security Ratings","url":"https://www.suse.com/support/security/rating/"},{"category":"external","summary":"SUSE Bug 1244714 for CVE-2025-49847","url":"https://bugzilla.suse.com/1244714"}],"remediations":[{"category":"vendor_fix","details":"To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n","product_ids":["openSUSE Tumbleweed:ggml-devel-5699-1.1","openSUSE Tumbleweed:libggml-5699-1.1","openSUSE Tumbleweed:libggml-base-5699-1.1","openSUSE Tumbleweed:libggml-cpu-5699-1.1","openSUSE Tumbleweed:libggml-opencl-5699-1.1","openSUSE Tumbleweed:libggml-vulkan-5699-1.1","openSUSE Tumbleweed:libllama-5699-1.1","openSUSE Tumbleweed:libmtmd-5699-1.1","openSUSE Tumbleweed:llamacpp-5699-1.1","openSUSE Tumbleweed:llamacpp-devel-5699-1.1"]}],"threats":[{"category":"impact","date":"2025-06-17T22:00:18Z","details":"important"}],"title":"CVE-2025-49847"}]}