CVE & CISA-KEV Catalog

CVE-2024-43837

MEDIUM
5.5
CVSS v3
NVD

Description

In the Linux kernel, the following vulnerability has been resolved: bpf: Fix null pointer dereference in resolve_prog_type() for BPF_PROG_TYPE_EXT When loading a EXT program without specifying `attr->attach_prog_fd`, the `prog->aux->dst_prog` will be null. At this time, calling resolve_prog_type() anywhere will result in a null pointer dereference. Example stack trace: [ 8.107863] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000004 [ 8.108262] Mem abort info: [ 8.108384] ESR = 0x0000000096000004 [ 8.108547] EC = 0x25: DABT (current EL), IL = 32 bits [ 8.108722] SET = 0, FnV = 0 [ 8.108827] EA = 0, S1PTW = 0 [ 8.108939] FSC = 0x04: level 0 translation fault [ 8.109102] Data abort info: [ 8.109203] ISV = 0, ISS = 0x00000004, ISS2 = 0x00000000 [ 8.109399] CM = 0, WnR = 0, TnD = 0, TagAccess = 0 [ 8.109614] GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0 [ 8.109836] user pgtable: 4k pages, 48-bit VAs, pgdp=0000000101354000 [ 8.110011] [0000000000000004] pgd=0000000000000000, p4d=0000000000000000 [ 8.112624] Internal error: Oops: 0000000096000004 [#1] PREEMPT SMP [ 8.112783] Modules linked in: [ 8.113120] CPU: 0 PID: 99 Comm: may_access_dire Not tainted 6.10.0-rc3-next-20240613-dirty #1 [ 8.113230] Hardware name: linux,dummy-virt (DT) [ 8.113390] pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) [ 8.113429] pc : may_access_direct_pkt_data+0x24/0xa0 [ 8.113746] lr : add_subprog_and_kfunc+0x634/0x8e8 [ 8.113798] sp : ffff80008283b9f0 [ 8.113813] x29: ffff80008283b9f0 x28: ffff800082795048 x27: 0000000000000001 [ 8.113881] x26: ffff0000c0bb2600 x25: 0000000000000000 x24: 0000000000000000 [ 8.113897] x23: ffff0000c1134000 x22: 000000000001864f x21: ffff0000c1138000 [ 8.113912] x20: 0000000000000001 x19: ffff0000c12b8000 x18: ffffffffffffffff [ 8.113929] x17: 0000000000000000 x16: 0000000000000000 x15: 0720072007200720 [ 8.113944] x14: 0720072007200720 x13: 0720072007200720 x12: 0720072007200720 [ 8.113958] x11: 0720072007200720 x10: 0000000000f9fca4 x9 : ffff80008021f4e4 [ 8.113991] x8 : 0101010101010101 x7 : 746f72705f6d656d x6 : 000000001e0e0f5f [ 8.114006] x5 : 000000000001864f x4 : ffff0000c12b8000 x3 : 000000000000001c [ 8.114020] x2 : 0000000000000002 x1 : 0000000000000000 x0 : 0000000000000000 [ 8.114126] Call trace: [ 8.114159] may_access_direct_pkt_data+0x24/0xa0 [ 8.114202] bpf_check+0x3bc/0x28c0 [ 8.114214] bpf_prog_load+0x658/0xa58 [ 8.114227] __sys_bpf+0xc50/0x2250 [ 8.114240] __arm64_sys_bpf+0x28/0x40 [ 8.114254] invoke_syscall.constprop.0+0x54/0xf0 [ 8.114273] do_el0_svc+0x4c/0xd8 [ 8.114289] el0_svc+0x3c/0x140 [ 8.114305] el0t_64_sync_handler+0x134/0x150 [ 8.114331] el0t_64_sync+0x168/0x170 [ 8.114477] Code: 7100707f 54000081 f9401c00 f9403800 (b9400403) [ 8.118672] ---[ end trace 0000000000000000 ]--- One way to fix it is by forcing `attach_prog_fd` non-empty when bpf_prog_load(). But this will lead to `libbpf_probe_bpf_prog_type` API broken which use verifier log to probe prog type and will log nothing if we reject invalid EXT prog before bpf_check(). Another way is by adding null check in resolve_prog_type(). The issue was introduced by commit 4a9c7bbe2ed4 ("bpf: Resolve to prog->aux->dst_prog->type only for BPF_PROG_TYPE_EXT") which wanted to correct type resolution for BPF_PROG_TYPE_TRACING programs. Before that, the type resolution of BPF_PROG_TYPE_EXT prog actually follows the logic below: prog->aux->dst_prog ? prog->aux->dst_prog->type : prog->type; It implies that when EXT program is not yet attached to `dst_prog`, the prog type should be EXT itself. This code worked fine in the past. So just keep using it. Fix this by returning `prog->type` for BPF_PROG_TYPE_EXT if `dst_prog` is not present in resolve_prog_type().

How to fix

Remediation Available
linuxDebian
Fixed in:6.1.106-1CVE-2024-43837
Fixed in:6.10.3-1CVE-2024-43837
Fixed in:6.10.3-1CVE-2024-43837
linuxUbuntu
Fixed in:6.8.0-50.51USN-7154-1
linux-awsUbuntu
Fixed in:6.8.0-1020.22USN-7154-1
linux-aws-6.8Ubuntu
Fixed in:6.8.0-1020.22~22.04.1USN-7154-1
linux-azureUbuntu
Fixed in:6.8.0-1020.23USN-7196-1
linux-azure-6.8Ubuntu
Fixed in:6.8.0-1020.23~22.04.1USN-7196-1
linux-gcpUbuntu
Fixed in:6.8.0-1019.21USN-7154-1
linux-gcp-6.8Ubuntu
Fixed in:6.8.0-1019.21~22.04.1USN-7154-1
linux-gkeUbuntu
Fixed in:6.8.0-1015.19USN-7154-1
linux-gkeopUbuntu
Fixed in:6.8.0-1002.4USN-7156-1
linux-hwe-6.8Ubuntu
Fixed in:6.8.0-50.51~22.04.1USN-7154-2
linux-ibmUbuntu
Fixed in:6.8.0-1017.17USN-7154-1
linux-image-6.8.0-1002-gkeopUbuntu
Fixed in:6.8.0-1002.4USN-7156-1
linux-image-6.8.0-1015-gkeUbuntu
Fixed in:6.8.0-1015.19USN-7154-1
linux-image-6.8.0-1016-raspiUbuntu
Fixed in:6.8.0-1016.18USN-7154-1
linux-image-6.8.0-1017-ibmUbuntu
Fixed in:6.8.0-1017.17USN-7154-1
linux-image-6.8.0-1017-oracleUbuntu
Fixed in:6.8.0-1017.18~22.04.1USN-7154-1
Fixed in:6.8.0-1017.18USN-7154-1
linux-image-6.8.0-1017-oracle-64kUbuntu
Fixed in:6.8.0-1017.18~22.04.1USN-7154-1
Fixed in:6.8.0-1017.18USN-7154-1
linux-image-6.8.0-1018-oemUbuntu
Fixed in:6.8.0-1018.18USN-7154-1
linux-image-6.8.0-1019-gcpUbuntu
Fixed in:6.8.0-1019.21~22.04.1USN-7154-1
Fixed in:6.8.0-1019.21USN-7154-1
linux-image-6.8.0-1019-nvidiaUbuntu
Fixed in:6.8.0-1019.21~22.04.1USN-7155-1
Fixed in:6.8.0-1019.21USN-7155-1
linux-image-6.8.0-1019-nvidia-64kUbuntu
Fixed in:6.8.0-1019.21~22.04.1USN-7155-1
Fixed in:6.8.0-1019.21USN-7155-1
linux-image-6.8.0-1019-nvidia-lowlatencyUbuntu
Fixed in:6.8.0-1019.21.1USN-7155-1
linux-image-6.8.0-1019-nvidia-lowlatency-64kUbuntu
Fixed in:6.8.0-1019.21.1USN-7155-1
linux-image-6.8.0-1020-awsUbuntu
Fixed in:6.8.0-1020.22~22.04.1USN-7154-1
Fixed in:6.8.0-1020.22USN-7154-1
linux-image-6.8.0-1020-azureUbuntu
Fixed in:6.8.0-1020.23~22.04.1USN-7196-1
Fixed in:6.8.0-1020.23USN-7196-1
linux-image-6.8.0-1020-azure-fdeUbuntu
Fixed in:6.8.0-1020.23~22.04.1USN-7196-1
Fixed in:6.8.0-1020.23USN-7196-1
linux-image-6.8.0-50-genericUbuntu
Fixed in:6.8.0-50.51~22.04.1USN-7154-2
Fixed in:6.8.0-50.51USN-7154-1
linux-image-6.8.0-50-generic-64kUbuntu
Fixed in:6.8.0-50.51~22.04.1USN-7154-2
Fixed in:6.8.0-50.51USN-7154-1
linux-image-6.8.0-50-lowlatencyUbuntu
Fixed in:6.8.0-50.51.1~22.04.1USN-7154-1
Fixed in:6.8.0-50.51.1USN-7154-1
linux-image-6.8.0-50-lowlatency-64kUbuntu
Fixed in:6.8.0-50.51.1~22.04.1USN-7154-1
Fixed in:6.8.0-50.51.1USN-7154-1
linux-image-awsUbuntu
Fixed in:6.8.0-1020.22~22.04.1USN-7154-1
Fixed in:6.8.0-1020.22USN-7154-1
linux-image-azureUbuntu
Fixed in:6.8.0-1020.23~22.04.1USN-7196-1
Fixed in:6.8.0-1020.23USN-7196-1
linux-image-azure-fdeUbuntu
Fixed in:6.8.0-1020.23~22.04.1USN-7196-1
Fixed in:6.8.0-1020.23USN-7196-1
linux-image-gcpUbuntu
Fixed in:6.8.0-1019.21~22.04.1USN-7154-1
Fixed in:6.8.0-1019.21USN-7154-1
linux-image-genericUbuntu
Fixed in:6.8.0-50.51USN-7154-1
linux-image-generic-64kUbuntu
Fixed in:6.8.0-50.51USN-7154-1
linux-image-generic-64k-hwe-22.04Ubuntu
Fixed in:6.8.0-50.51~22.04.1USN-7154-2
linux-image-generic-64k-hwe-24.04Ubuntu
Fixed in:6.8.0-50.51USN-7154-1
linux-image-generic-hwe-22.04Ubuntu
Fixed in:6.8.0-50.51~22.04.1USN-7154-2
linux-image-generic-hwe-24.04Ubuntu
Fixed in:6.8.0-50.51USN-7154-1
linux-image-generic-lpaeUbuntu
Fixed in:6.8.0-50.51USN-7154-1
linux-image-gkeUbuntu
Fixed in:6.8.0-1015.19USN-7154-1
linux-image-gkeopUbuntu
Fixed in:6.8.0-1002.4USN-7156-1
linux-image-gkeop-6.8Ubuntu
Fixed in:6.8.0-1002.4USN-7156-1
linux-image-ibmUbuntu
Fixed in:6.8.0-1017.17USN-7154-1
linux-image-ibm-classicUbuntu
Fixed in:6.8.0-1017.17USN-7154-1
linux-image-ibm-lts-24.04Ubuntu
Fixed in:6.8.0-1017.17USN-7154-1
linux-image-kvmUbuntu
Fixed in:6.8.0-50.51USN-7154-1
linux-image-lowlatencyUbuntu
Fixed in:6.8.0-50.51.1USN-7154-1
linux-image-lowlatency-64kUbuntu
Fixed in:6.8.0-50.51.1USN-7154-1
linux-image-lowlatency-64k-hwe-22.04Ubuntu
Fixed in:6.8.0-50.51.1~22.04.1USN-7154-1
linux-image-lowlatency-64k-hwe-24.04Ubuntu
Fixed in:6.8.0-50.51.1USN-7154-1
linux-image-lowlatency-hwe-22.04Ubuntu
Fixed in:6.8.0-50.51.1~22.04.1USN-7154-1
linux-image-lowlatency-hwe-24.04Ubuntu
Fixed in:6.8.0-50.51.1USN-7154-1
linux-image-nvidiaUbuntu
Fixed in:6.8.0-1019.21USN-7155-1
linux-image-nvidia-6.8Ubuntu
Fixed in:6.8.0-1019.21~22.04.1USN-7155-1
linux-image-nvidia-64kUbuntu
Fixed in:6.8.0-1019.21USN-7155-1
linux-image-nvidia-64k-6.8Ubuntu
Fixed in:6.8.0-1019.21~22.04.1USN-7155-1
linux-image-nvidia-64k-hwe-22.04Ubuntu
Fixed in:6.8.0-1019.21~22.04.1USN-7155-1
linux-image-nvidia-hwe-22.04Ubuntu
Fixed in:6.8.0-1019.21~22.04.1USN-7155-1
linux-image-nvidia-lowlatencyUbuntu
Fixed in:6.8.0-1019.21.1USN-7155-1
linux-image-nvidia-lowlatency-64kUbuntu
Fixed in:6.8.0-1019.21.1USN-7155-1
linux-image-oem-22.04Ubuntu
Fixed in:6.8.0-50.51~22.04.1USN-7154-2
linux-image-oem-22.04aUbuntu
Fixed in:6.8.0-50.51~22.04.1USN-7154-2
linux-image-oem-22.04bUbuntu
Fixed in:6.8.0-50.51~22.04.1USN-7154-2
linux-image-oem-22.04cUbuntu
Fixed in:6.8.0-50.51~22.04.1USN-7154-2
linux-image-oem-22.04dUbuntu
Fixed in:6.8.0-50.51~22.04.1USN-7154-2
linux-image-oem-24.04Ubuntu
Fixed in:6.8.0-1018.18USN-7154-1
linux-image-oem-24.04aUbuntu
Fixed in:6.8.0-1018.18USN-7154-1
linux-image-oracleUbuntu
Fixed in:6.8.0-1017.18~22.04.1USN-7154-1
Fixed in:6.8.0-1017.18USN-7154-1
linux-image-oracle-64kUbuntu
Fixed in:6.8.0-1017.18~22.04.1USN-7154-1
Fixed in:6.8.0-1017.18USN-7154-1
linux-image-raspiUbuntu
Fixed in:6.8.0-1016.18USN-7154-1
linux-image-virtualUbuntu
Fixed in:6.8.0-50.51USN-7154-1
linux-image-virtual-hwe-22.04Ubuntu
Fixed in:6.8.0-50.51~22.04.1USN-7154-2
linux-image-virtual-hwe-24.04Ubuntu
Fixed in:6.8.0-50.51USN-7154-1
linux-lowlatencyUbuntu
Fixed in:6.8.0-50.51.1USN-7154-1
linux-lowlatency-hwe-6.8Ubuntu
Fixed in:6.8.0-50.51.1~22.04.1USN-7154-1
linux-nvidiaUbuntu
Fixed in:6.8.0-1019.21USN-7155-1
linux-nvidia-6.8Ubuntu
Fixed in:6.8.0-1019.21~22.04.1USN-7155-1
linux-nvidia-lowlatencyUbuntu
Fixed in:6.8.0-1019.21.1USN-7155-1
linux-oem-6.8Ubuntu
Fixed in:6.8.0-1018.18USN-7154-1
linux-oracleUbuntu
Fixed in:6.8.0-1017.18USN-7154-1
linux-oracle-6.8Ubuntu
Fixed in:6.8.0-1017.18~22.04.1USN-7154-1
linux-raspiUbuntu
Fixed in:6.8.0-1016.18USN-7154-1

Remediation is compiled from vendor and distribution security advisories. Always confirm against the linked source for your exact version and platform.

CVSS v3 Vector

Exploitability

Attack VectorLocal
Attack ComplexityLow
Privileges RequiredLow
User InteractionNone
ScopeUnchanged

Impact

ConfidentialityNone
IntegrityNone
AvailabilityHigh

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

Exploit Intelligence

0.21%probability of exploitation in 30 days
11thpercentile

Low risk: more likely to be exploited than 11% of all known CVEs.

References

Related Vulnerabilities

Other CWE-476 (NULL Pointer Dereference) vulnerabilities, ordered by exploit likelihood. View all

CVESeverityCVSSEPSSExploitedFix
CVE-2023-21758High7.592%-Fix
CVE-2023-21547High7.588%-Fix
CVE-2014-3470Medium4.386%-Fix
CVE-2021-44224High8.282%-Fix
CVE-2016-0742High7.582%-Fix
CVE-2009-1386Medium5.080%-Fix
Embed a live status badge for CVE-2024-43837
CVE-2024-43837 severity badge

Markdown

[![CVE-2024-43837](https://tridentstack.com/cve/badge/CVE-2024-43837.svg)](https://tridentstack.com/cve/CVE-2024-43837)

HTML

<a href="https://tridentstack.com/cve/CVE-2024-43837"><img src="https://tridentstack.com/cve/badge/CVE-2024-43837.svg" alt="CVE-2024-43837"></a>

Find and fix vulnerabilities across your fleet

TridentStack Control continuously scans your Windows, macOS, and Linux fleet for known vulnerabilities, prioritizes them by severity and active exploitation, and patches them automatically.

Start free

This product uses NVD data but is not endorsed or certified by the NVD. EPSS scores courtesy of FIRST.org (https://www.first.org/epss). Source: CISA KEV Catalog. Data as of 2025-11-03.