CVE-2024-44973

Source
https://nvd.nist.gov/vuln/detail/CVE-2024-44973
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2024-44973.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2024-44973
Downstream
Published
2024-09-04T19:00:23Z
Modified
2025-10-15T13:59:57.437809Z
Summary
mm, slub: do not call do_slab_free for kfence object
Details

In the Linux kernel, the following vulnerability has been resolved:

mm, slub: do not call doslabfree for kfence object

In 782f8906f805 the freeing of kfence objects was moved from deep inside doslabfree to the wrapper functions outside. This is a nice change, but unfortunately it missed one spot in _kmemcachefreebulk.

This results in a crash like this:

BUG skbuffheadcache (Tainted: G S B E ): Padding overwritten. 0xffff88907fea0f00-0xffff88907fea0fff @offset=3840

slaberr (mm/slub.c:1129) freetopartiallist (mm/slub.c:? mm/slub.c:4036) slabpadcheck (mm/slub.c:864 mm/slub.c:1290) checkslab (mm/slub.c:?) freetopartiallist (mm/slub.c:3171 mm/slub.c:4036) kmemcacheallocbulk (mm/slub.c:? mm/slub.c:4495 mm/slub.c:4586 mm/slub.c:4635) napibuild_skb (net/core/skbuff.c:348 net/core/skbuff.c:527 net/core/skbuff.c:549)

All the other callers to doslabfree appear to be ok.

Add a kfencefree check in _kmemcachefree_bulk to avoid the crash.

References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
782f8906f8057efc7151b4b98b0a0280a71d005f
Fixed
b35cd7f1e969aaa63e6716d82480f6b8a3230949
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
782f8906f8057efc7151b4b98b0a0280a71d005f
Fixed
a371d558e6f3aed977a8a7346350557de5d25190

Affected versions

v6.*

v6.10
v6.10-rc1
v6.10-rc2
v6.10-rc3
v6.10-rc4
v6.10-rc5
v6.10-rc6
v6.10-rc7
v6.10.1
v6.10.2
v6.10.3
v6.10.4
v6.11-rc1
v6.7
v6.7-rc2
v6.7-rc3
v6.7-rc4
v6.7-rc5
v6.7-rc6
v6.7-rc7
v6.7-rc8
v6.8
v6.8-rc1
v6.8-rc2
v6.8-rc3
v6.8-rc4
v6.8-rc5
v6.8-rc6
v6.8-rc7
v6.9
v6.9-rc1
v6.9-rc2
v6.9-rc3
v6.9-rc4
v6.9-rc5
v6.9-rc6
v6.9-rc7

Database specific

{
    "vanir_signatures": [
        {
            "signature_version": "v1",
            "target": {
                "file": "mm/slub.c"
            },
            "signature_type": "Line",
            "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a371d558e6f3aed977a8a7346350557de5d25190",
            "deprecated": false,
            "digest": {
                "line_hashes": [
                    "313962731866920444231132140212047270061",
                    "119820150823630960250499902687824590621",
                    "248225784813638780709339266791010191600"
                ],
                "threshold": 0.9
            },
            "id": "CVE-2024-44973-283c2dbf"
        },
        {
            "signature_version": "v1",
            "target": {
                "function": "__kmem_cache_free_bulk",
                "file": "mm/slub.c"
            },
            "signature_type": "Function",
            "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a371d558e6f3aed977a8a7346350557de5d25190",
            "deprecated": false,
            "digest": {
                "length": 326.0,
                "function_hash": "11416989238723569750487132065917155946"
            },
            "id": "CVE-2024-44973-37fc57e9"
        },
        {
            "signature_version": "v1",
            "target": {
                "file": "mm/slub.c"
            },
            "signature_type": "Line",
            "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b35cd7f1e969aaa63e6716d82480f6b8a3230949",
            "deprecated": false,
            "digest": {
                "line_hashes": [
                    "313962731866920444231132140212047270061",
                    "119820150823630960250499902687824590621",
                    "248225784813638780709339266791010191600"
                ],
                "threshold": 0.9
            },
            "id": "CVE-2024-44973-4df90a06"
        },
        {
            "signature_version": "v1",
            "target": {
                "function": "__kmem_cache_free_bulk",
                "file": "mm/slub.c"
            },
            "signature_type": "Function",
            "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b35cd7f1e969aaa63e6716d82480f6b8a3230949",
            "deprecated": false,
            "digest": {
                "length": 326.0,
                "function_hash": "11416989238723569750487132065917155946"
            },
            "id": "CVE-2024-44973-f074444d"
        }
    ]
}

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
6.8.0
Fixed
6.10.5