Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2025-40123— bpf: Enforce expected_attach_type for tailcall compatibility

EPSS 0.04% · P13
Get alerts for future matching vulnerabilitiesLog in to subscribe

I. Basic Information for CVE-2025-40123

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
bpf: Enforce expected_attach_type for tailcall compatibility
Source: NVD (National Vulnerability Database)
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: bpf: Enforce expected_attach_type for tailcall compatibility Yinhao et al. recently reported: Our fuzzer tool discovered an uninitialized pointer issue in the bpf_prog_test_run_xdp() function within the Linux kernel's BPF subsystem. This leads to a NULL pointer dereference when a BPF program attempts to deference the txq member of struct xdp_buff object. The test initializes two programs of BPF_PROG_TYPE_XDP: progA acts as the entry point for bpf_prog_test_run_xdp() and its expected_attach_type can neither be of be BPF_XDP_DEVMAP nor BPF_XDP_CPUMAP. progA calls into a slot of a tailcall map it owns. progB's expected_attach_type must be BPF_XDP_DEVMAP to pass xdp_is_valid_access() validation. The program returns struct xdp_md's egress_ifindex, and the latter is only allowed to be accessed under mentioned expected_attach_type. progB is then inserted into the tailcall which progA calls. The underlying issue goes beyond XDP though. Another example are programs of type BPF_PROG_TYPE_CGROUP_SOCK_ADDR. sock_addr_is_valid_access() as well as sock_addr_func_proto() have different logic depending on the programs' expected_attach_type. Similarly, a program attached to BPF_CGROUP_INET4_GETPEERNAME should not be allowed doing a tailcall into a program which calls bpf_bind() out of BPF which is only enabled for BPF_CGROUP_INET4_CONNECT. In short, specifying expected_attach_type allows to open up additional functionality or restrictions beyond what the basic bpf_prog_type enables. The use of tailcalls must not violate these constraints. Fix it by enforcing expected_attach_type in __bpf_prog_map_compatible(). Note that we only enforce this for tailcall maps, but not for BPF devmaps or cpumaps: There, the programs are invoked through dev_map_bpf_prog_run*() and cpu_map_bpf_prog_run*() which set up a new environment / context and therefore these situations are not prone to this issue.
Source: NVD (National Vulnerability Database)
CVSS Information
N/A
Source: NVD (National Vulnerability Database)
Vulnerability Type
N/A
Source: NVD (National Vulnerability Database)
Vulnerability Title
Linux kernel 安全漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于attach类型验证不足,可能导致空指针取消引用。
Source: CNNVD (China National Vulnerability Database)
CVSS Information
N/A
Source: CNNVD (China National Vulnerability Database)
Vulnerability Type
N/A
Source: CNNVD (China National Vulnerability Database)

Affected Products

VendorProductAffected VersionsCPESubscribe
LinuxLinux 5e43f899b03a3492ce5fc44e8900becb04dae9c0 ~ a99de19128aec0913f3d529f529fbbff5edfaff8 -
LinuxLinux 4.17 -

II. Public POCs for CVE-2025-40123

#POC DescriptionSource LinkShenlong Link
AI-Generated POCPremium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2025-40123

登录查看更多情报信息。

Same Patch Batch · Linux · 2025-11-12 · 96 CVEs total

CVE-2025-40176tls: wait for pending async decryptions if tls_strp_msg_hold fails
CVE-2025-40172accel/qaic: Treat remaining == 0 as error in find_and_map_user_pages()
CVE-2025-40169bpf: Reject negative offsets for ALU ops
CVE-2025-40166drm/xe/guc: Check GuC running state before deregistering exec queue
CVE-2025-40167ext4: detect invalid INLINE_DATA + EXTENTS flag combination
CVE-2025-40164usbnet: Fix using smp_processor_id() in preemptible code warnings
CVE-2025-40162ASoC: amd/sdw_utils: avoid NULL deref when devm_kasprintf() fails
CVE-2025-40163sched/deadline: Stop dl_server before CPU goes offline
CVE-2025-40165media: nxp: imx8-isi: m2m: Fix streaming cleanup on release
CVE-2025-40175idpf: cleanup remaining SKBs in PTP flows
CVE-2025-40174x86/mm: Fix SMP ordering in switch_mm_irqs_off()
CVE-2025-40173net/ip6_tunnel: Prevent perpetual tunnel growth
CVE-2025-40177accel/qaic: Fix bootlog initialization ordering
CVE-2025-40178pid: Add a judgment for ns null in pid_nr_ns
CVE-2025-40179ext4: verify orphan file size is not too big
CVE-2025-40180mailbox: zynqmp-ipi: Fix out-of-bounds access in mailbox cleanup loop
CVE-2025-40181x86/kvm: Force legacy PCI hole to UC when overriding MTRRs for TDX/SNP
CVE-2025-40183bpf: Fix metadata_dst leak __bpf_redirect_neigh_v{4,6}
CVE-2025-40182crypto: skcipher - Fix reqsize handling
CVE-2025-40184KVM: arm64: Fix debug checking for np-guests using huge mappings

Showing top 20 of 96 CVEs. View all on vendor page → →

IV. Related Vulnerabilities

V. Comments for CVE-2025-40123

No comments yet


Leave a comment