CVE-2024-47728
Linux Kernel 5.2 – 6.1.113
Raw vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:HSummary
CVE-2024-47728 is a medium-severity Incomplete Cleanup (CWE-459) vulnerability in Linux Linux Kernel. Its CVSS base score is 5.5 (Medium).
Operationally, exploitation aligns with the MITRE ATT&CK technique Data from Local System (T1005); ranked at the 15th percentile by exploit likelihood (below the median); it is not currently listed in the CISA KEV catalog.
The strongest mitigations our analysis identified map to SA-11 (Developer Testing and Evaluation) and SI-14 (Non-persistence) — see the control section below for these in your framework.
EU & UK References
- 🇪🇺 ENISA EUVD: EUVD-2024-42647
Vulnerability Data
In the Linux kernel, the following vulnerability has been resolved: bpf: Zero former ARG_PTR_TO_{LONG,INT} args in case of error For all non-tracing helpers which formerly had ARG_PTR_TO_{LONG,INT} as input arguments, zero the value for the case of an error as…
more
otherwise it could leak memory. For tracing, it is not needed given CAP_PERFMON can already read all kernel memory anyway hence bpf_get_func_arg() and bpf_get_func_ret() is skipped in here. Also, the MTU helpers mtu_len pointer value is being written but also read. Technically, the MEM_UNINIT should not be there in order to always force init. Removing MEM_UNINIT needs more verifier rework though: MEM_UNINIT right now implies two things actually: i) write into memory, ii) memory does not have to be initialized. If we lift MEM_UNINIT, it then becomes: i) read into memory, ii) memory must be initialized. This means that for bpf_*_check_mtu() we're readding the issue we're trying to fix, that is, it would then be able to write back into things like .rodata BPF maps. Follow-up work will rework the MEM_UNINIT semantics such that the intent can be better expressed. For now just clear the *mtu_len on error path which can be lifted later again.
- CWE(s)
Related Threats
MITRE ATT&CK Enterprise Techniques
CVEs Like This One
Affected Assets
Mitigating Controls
Control response
—
—
—
V6.4.1
Mitigating Controls (NIST 800-53 r5) AI
Developer testing and evaluation can discover incomplete cleanup through dynamic analysis or resource-leak testing.
Non-persistence mechanisms explicitly initiate resources in a known state and terminate them, directly enforcing cleanup.
Session termination forces explicit release of session-related temporary resources.
Preventing unintended information transfer through shared resources requires complete cleanup of those resources.
Mitigating Controls (NIST CSF 2.0) AI
Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→CSF cross-walk (authority under review) — links open the control.
Secure-development practices and coding standards normally require proper resource release and cleanup.
Life-cycle management encompasses disposal of temporary resources but does not specifically target runtime cleanup bugs.
Explicitly calls for removing sensitive data after use, directly addressing one class of incomplete cleanup.
Mitigating Controls (ISO/IEC 27001:2022 Annex A) AI
Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→ISO cross-walk (authority under review) — links open the control.
Explicitly requires secure deletion of temporary or residual data, directly addressing incomplete cleanup.
SDLC practices include cleanup steps, yet the weakness can still occur if those steps are omitted.
Secure-coding rules can mandate explicit cleanup of temporary resources, but do not guarantee it.
Change-management processes may require cleanup verification, but the control itself does not address the weakness.