VYPR
Unrated severityNVD Advisory· Published Jul 22, 2024· Updated Aug 2, 2024

llama.cpp null pointer dereference in gguf_init_from_file

CVE-2024-41130

Description

llama.cpp provides LLM inference in C/C++. Prior to b3427, llama.cpp contains a null pointer dereference in gguf_init_from_file. This vulnerability is fixed in b3427.

Affected products

1

Patches

2
07283b1a90e1

gguf : handle null name during init (#8587)

https://github.com/ggerganov/llama.cppGeorgi GerganovJul 20, 2024via osv
2 files changed · +6 1
  • examples/gguf/gguf.cpp+5 0 modified
    @@ -92,6 +92,11 @@ static bool gguf_ex_read_0(const std::string & fname) {
     
         struct gguf_context * ctx = gguf_init_from_file(fname.c_str(), params);
     
    +    if (!ctx) {
    +        fprintf(stderr, "%s: failed to load '%s'\n", __func__, fname.c_str());
    +        return false;
    +    }
    +
         printf("%s: version:      %d\n", __func__, gguf_get_version(ctx));
         printf("%s: alignment:   %zu\n", __func__, gguf_get_alignment(ctx));
         printf("%s: data offset: %zu\n", __func__, gguf_get_data_offset(ctx));
    
  • ggml/src/ggml.c+1 1 modified
    @@ -21015,7 +21015,7 @@ struct gguf_context * gguf_init_from_file(const char * fname, struct gguf_init_p
                 gguf_tensor_info_sanitize(info);
     
                 // make sure there is no duplicated tensor names
    -            for (uint64_t j = 0; j < i; ++j) {
    +            for (uint64_t j = 0; j < i && ok; ++j) {
                     if (strcmp(info->name.data, ctx->infos[j].name.data) == 0) {
                         fprintf(stderr, "%s: duplicated tensor name %s\n", __func__, info->name.data);
                         ok = false;
    
07283b1a90e1

gguf : handle null name during init (#8587)

https://github.com/ggml-org/llama.cppGeorgi GerganovJul 20, 2024via osv
2 files changed · +6 1
  • examples/gguf/gguf.cpp+5 0 modified
    @@ -92,6 +92,11 @@ static bool gguf_ex_read_0(const std::string & fname) {
     
         struct gguf_context * ctx = gguf_init_from_file(fname.c_str(), params);
     
    +    if (!ctx) {
    +        fprintf(stderr, "%s: failed to load '%s'\n", __func__, fname.c_str());
    +        return false;
    +    }
    +
         printf("%s: version:      %d\n", __func__, gguf_get_version(ctx));
         printf("%s: alignment:   %zu\n", __func__, gguf_get_alignment(ctx));
         printf("%s: data offset: %zu\n", __func__, gguf_get_data_offset(ctx));
    
  • ggml/src/ggml.c+1 1 modified
    @@ -21015,7 +21015,7 @@ struct gguf_context * gguf_init_from_file(const char * fname, struct gguf_init_p
                 gguf_tensor_info_sanitize(info);
     
                 // make sure there is no duplicated tensor names
    -            for (uint64_t j = 0; j < i; ++j) {
    +            for (uint64_t j = 0; j < i && ok; ++j) {
                     if (strcmp(info->name.data, ctx->infos[j].name.data) == 0) {
                         fprintf(stderr, "%s: duplicated tensor name %s\n", __func__, info->name.data);
                         ok = false;
    

Vulnerability mechanics

Generated by null/stub on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.

References

2

News mentions

0

No linked articles in our index yet.