Description (CNA)
In the Linux kernel, the following vulnerability has been resolved: bpf: Fix WARNING in bpf_tracing_link_release The trampoline could be corrupted by the blindly 'tr->flags = BPF_TRAMP_F_TAIL_CALL_CTX' in verifier. 1. A fexit attached to a tail_call_reachable prog. 'tr->flags' became 'BPF_TRAMP_F_CALL_ORIG | BPF_TRAMP_F_TAIL_CALL_CTX'. And, the trampoline would poke the target prog's nop insn using jmp insn instead of call insn. 2. Another fexit loaded with the same tail_call_reachable prog target. 'tr->flags' became 'BPF_TRAMP_F_TAIL_CALL_CTX'. 3. Close the first fexit link. Due to no BPF_TRAMP_F_CALL_ORIG in 'tr->flags', the trampoline will fail to restore the prog's nop insn using call insn. [ 3.410719] WARNING: kernel/bpf/syscall.c:3551 at bpf_tracing_link_release+0x53/0x60, CPU#1: test_progs/98 ... [ 3.428793] bpf_link_free+0x58/0x130 [ 3.429293] bpf_link_release+0x23/0x30 Fix the warning by updating 'tr->flags' with '|=' and lock.
Affected (CNA)
| Vendor / product | Versions |
|---|---|
| Linux / Linux | affected 8f873cc3f67f2257493063e57d0caf07ef889ee9 before a5c6316052f0ff1467221ecf2996cbab0a496b1e; affected 2b5dcb31a19a2e0acd869b12c9db9b2d696ef544 before d02035c5eb4955616efc5c6dbe3d98f19d798cb2; affected 2b5dcb31a19a2e0acd869b12c9db9b2d696ef544 before 094f0a895cf97a993d06d5dc4c12e7cb7da845a5; affected 2b5dcb31a19a2e0acd869b12c9db9b2d696ef544 before 48a0209d8da0d90a7b0a0db19d1ff88027b13781; affected 2b5dcb31a19a2e0acd869b12c9db9b2d696ef544 before 61aaa8782bec59ecffd22e030f54ef9351bcabf9; affected 605c8d8f9966fcd2f0b858fabebe416fc83f2209; affected 028480eaf2a1401e914a1fa1a4a21d877cf0ae30; affected 6.6.2 before 6.6.160; affected 6.1.72 before 6.2; affected 6.5.12 before 6.6 |
| Linux / Linux | affected 6.7; unaffected 0 before 6.7; unaffected 6.6.160 through 6.6.*; unaffected 6.12.114 through 6.12.*; unaffected 6.18.57 through 6.18.*; unaffected 7.2.6 through 7.2.*; unaffected 7.3 through * |
CWE
No CWE identifiers supplied.
References
- https://git.kernel.org/stable/c/a5c6316052f0ff1467221ecf2996cbab0a496b1e
- https://git.kernel.org/stable/c/d02035c5eb4955616efc5c6dbe3d98f19d798cb2
- https://git.kernel.org/stable/c/094f0a895cf97a993d06d5dc4c12e7cb7da845a5
- https://git.kernel.org/stable/c/48a0209d8da0d90a7b0a0db19d1ff88027b13781
- https://git.kernel.org/stable/c/61aaa8782bec59ecffd22e030f54ef9351bcabf9