Description
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 products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
605c8d8f9966fcd2f0b858fabebe416fc83f2209 to < 1757598b3804f7cb35b5b5e02558f6d8b9c2f254affected8f873cc3f67f2257493063e57d0caf07ef889ee9 to < a5c6316052f0ff1467221ecf2996cbab0a496b1eaffected2b5dcb31a19a2e0acd869b12c9db9b2d696ef544 to < d02035c5eb4955616efc5c6dbe3d98f19d798cb2affected2b5dcb31a19a2e0acd869b12c9db9b2d696ef544 to < 094f0a895cf97a993d06d5dc4c12e7cb7da845a5affected2b5dcb31a19a2e0acd869b12c9db9b2d696ef544 to < 48a0209d8da0d90a7b0a0db19d1ff88027b13781affected2b5dcb31a19a2e0acd869b12c9db9b2d696ef544 to < 61aaa8782bec59ecffd22e030f54ef9351bcabf9affected028480eaf2a1401e914a1fa1a4a21d877cf0ae30affected6.1.72 to < 6.1.191affected6.6.2 to < 6.6.160affected6.5.12 to < 6.6affected
Linux Linux
Default version status: affected
6.7affected0 to < 6.7unaffected6.1.191 to ≤ 6.1.*unaffected6.6.160 to ≤ 6.6.*unaffected6.12.114 to ≤ 6.12.*unaffected6.18.57 to ≤ 6.18.*unaffected7.2.6 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/1757598b3804f7cb35b5b5e02558f6d8b9c2f254 ↗
- 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 ↗