bpf: Disallow bpf_skb_pull_data() for LWT_SEG6LOCAL
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 5.10.271, 5.15.222, 6.1.189, 6.6.158, 6.12.112, and 2 more
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
In the Linux kernel, the following vulnerability has been resolved: bpf: Disallow bpf_skb_pull_data() for LWT_SEG6LOCAL An LWT_SEG6LOCAL program can invalidate its cached SRH with bpf_lwt_seg6_adjust_srh() and then call bpf_skb_pull_data(). The latter may reallocate skb->head, leaving the per-CPU SRH pointer dangling. Post-program SRH validation then writes through that pointer. Disallow bpf_skb_pull_data() for LWT_SEG6LOCAL programs so the verifier rejects this unsafe helper combination. Other LWT program types continue to expose the helper through lwt_out_func_proto().
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 004d4b274e2a1a895a0e5dc66158b90a7d463d44 · fixed in 0f38472a2aa8704a6b514c0dfa9c32f3672b8f32; From 004d4b274e2a1a895a0e5dc66158b90a7d463d44 · fixed in cae8674489f26edf7553fdd660599466cbb4c32f; From 004d4b274e2a1a895a0e5dc66158b90a7d463d44 · fixed in 9f9e57b5a3a033f95f49ef9d541340cdbcb80abb; From 004d4b274e2a1a895a0e5dc66158b90a7d463d44 · fixed in df0072be6fc373cb22f9ea854d458b04e32a03cf; From 004d4b274e2a1a895a0e5dc66158b90a7d463d44 · fixed in b9bb0e735460751b620156f800a4279a28573392; From 004d4b274e2a1a895a0e5dc66158b90a7d463d44 · fixed in 37b18688cd18fd86d2f35c212df1611862a26cd5; From 004d4b274e2a1a895a0e5dc66158b90a7d463d44 · fixed in fca71ead7a20290af1e2046983eeafae43d21af1; From 004d4b274e2a1a895a0e5dc66158b90a7d463d44 · fixed in e4a62833adff6ef0fe7c0b90393204fe3c26b5c5
- Linux Linux
4.18
- KernelLinux
From 4.18.0 · fixed in 5.10.271; From 5.11.0 · fixed in 5.15.222; From 5.16.0 · fixed in 6.1.189; From 6.2.0 · fixed in 6.6.158; From 6.7.0 · fixed in 6.12.112; From 6.13.0 · fixed in 6.18.55; From 6.19.0 · fixed in 7.2.9
References 8
git.kernel.org
- stable/c/0f38472a2aa8704a6b514c0dfa9c32f3672b8f32
- stable/c/cae8674489f26edf7553fdd660599466cbb4c32f
- stable/c/9f9e57b5a3a033f95f49ef9d541340cdbcb80abb
- stable/c/df0072be6fc373cb22f9ea854d458b04e32a03cf
- stable/c/b9bb0e735460751b620156f800a4279a28573392
- stable/c/37b18688cd18fd86d2f35c212df1611862a26cd5
- stable/c/fca71ead7a20290af1e2046983eeafae43d21af1
- stable/c/e4a62833adff6ef0fe7c0b90393204fe3c26b5c5