Skip to content
Heist/ feed
Unrated

bpf: Fix kmemleak warning for percpu hashmap

Type: advisorySource: Official CVE List1 source record

In the Linux kernel, the following vulnerability has been resolved: bpf: Fix kmemleak warning for percpu hashmap Vlad Poenaru reported the following kmemleak issue: unreferenced object 0x606fd7c44ac8 (size 32): backtrace (crc 0): pcpu_alloc_noprof+0x730/0xeb0 bpf_map_alloc_percpu+0x69/0xc0 prealloc_init+0x9d/0x1b0 htab_map_alloc+0x363/0x510 map_create+0x215/0x3a0 __sys_bpf+0x16b/0x3e0 __x64_sys_bpf+0x18/0x20 do_syscall_64+0x7b/0x150 entry_SYSCALL_64_after_hwframe+0x4b/0x53 Further investigation shows the reason is due to not 8-byte aligned store of percpu pointer in htab_elem_set_ptr(): *(void __percpu **)(l->key + key_size) = pptr; Note that the whole htab_elem alignment is 8 (for x86_64). If the key_size is 4, that means pptr is stored in a location which is 4 byte aligned but not 8 byte aligned. In mm/kmemleak.c, scan_block() scans the memory based on 8 byte stride, so it won't detect above pptr, hence reporting the memory leak. In htab_map_alloc(), we already have htab->elem_size = sizeof(struct htab_elem) + round_up(htab->map.key_size, 8); if (percpu) htab->elem_size += sizeof(void *); else htab->elem_size += round_up(htab->map.value_size, 8); So storing pptr with 8-byte alignment won't cause any problem and can fix kmemleak too. The issue can be reproduced with bpf selftest as well: 1. Enable CONFIG_DEBUG_KMEMLEAK config 2. Add a getchar() before skel destroy in test_hash_map() in prog_tests/for_each.c. The purpose is to keep map available so kmemleak can be detected. 3

Announced Source revision 1
Original source ↗

CVE-2025-37807

Primary source · Revision 1

Imported from structured advisory data. Source references identify upstream records or fields; verify affected versions and your deployed configuration.

Security context

Source reference: cve:CVE-2025-37807

Linux

Source reference: /containers/cna/affected/0/product

Affected versions
Not stated in this record
Fixed versions
Not stated in this record
Prerequisites
Not stated in this record

Linux

Source reference: /containers/cna/affected/1/product

Affected versions
Not stated in this record
Fixed versions
Not stated in this record
Prerequisites
Not stated in this record

Structured affected-version data

Original package identities and version rules from this source.

[
  {
    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
    "vendor": "Linux",
    "product": "Linux",
    "versions": [
      {
        "status": "affected",
        "version": "824bd0ce6c7c43a9e1e210abf124958e54d88342",
        "lessThan": "25014e3dfa6d2fb95c920b9e6b2f0b303baa4533",
        "versionType": "git"
      },
      {
        "status": "affected",
        "version": "824bd0ce6c7c43a9e1e210abf124958e54d88342",
        "lessThan": "7758e308aeda1038aba1944f7302d34161b3effe",
        "versionType": "git"
      },
      {
        "status": "affected",
        "version": "824bd0ce6c7c43a9e1e210abf124958e54d88342",
        "lessThan": "1f1c29aa1934177349c17e3c32e68ec38a7a56df",
        "versionType": "git"
      },
      {
        "status": "affected",
        "version": "824bd0ce6c7c43a9e1e210abf124958e54d88342",
        "lessThan": "11ba7ce076e5903e7bdc1fd1498979c331b3c286",
        "versionType": "git"
      }
    ],
    "programFiles": [
      "kernel/bpf/hashtab.c"
    ],
    "defaultStatus": "unaffected"
  },
  {
    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
    "vendor": "Linux",
    "product": "Linux",
    "versions": [
      {
        "status": "affected",
        "version": "4.6"
      },
      {
        "status": "unaffected",
        "version": "0",
        "lessThan": "4.6",
        "versionType": "semver"
      },
      {
        "status": "unaffected",
        "version": "6.6.160",
        "versionType": "semver",
        "lessThanOrEqual": "6.6.*"
      },
      {
        "status": "unaffected",
        "version": "6.12.26",
        "versionType": "semver",
        "lessThanOrEqual": "6.12.*"
      },
      {
        "status": "unaffected",
        "version": "6.14.5",
        "versionType": "semver",
        "lessThanOrEqual": "6.14.*"
      },
      {
        "status": "unaffected",
        "version": "6.15",
        "versionType": "original_commit_for_fix",
        "lessThanOrEqual": "*"
      }
    ],
    "programFiles": [
      "kernel/bpf/hashtab.c"
    ],
    "defaultStatus": "affected"
  }
]
Related CVEs
CVE-2025-37807

Source reference: /cveMetadata/cveId

Publisher severity

No explicit severity was provided.

Event
#45972 · Revision 1
Added to Heist Feed
Publisher date
Read the original announcement