CVE-2026-98925
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
bpf, sockmap: Napraw podwójne liczenie copy_seq podczas samodzielnego przekierowania
Gdy program BPF stream_verdict przekierowuje skb z powrotem do tego samego
gniazdo (samodzielne przekierowanie za pomocą BPF_F_INGRESS), sk_psock_verdict_apply()
wywołuje tcp_eat_skb(), która przesuwa tcp_sk->copied_seq. Jednakże,
skb jest następnie dostarczany do kolejki wejściowej psock gniazda i później
czytane przez tcp_bpf_recvmsg_parser(), co również przyspiesza copy_seq poprzez
ścieżka rozliczeniowa skopiowana_od_siebie. To podwójne liczenie powoduje
copy_seq, aby przesunąć się o 2x rzeczywistą długość danych, wyzwalając:
TCP recvmsg seq # błąd 2: skopiowano BF2E806, seq BF2E7FD, \
rcvnxt BF2E806, fl 0
OSTRZEŻENIE: net/ipv4/tcp.c:2745 w tcp_recvmsg_locked+0x72b/0x2640
Zadzwoń do śledzenia:
tcp_recvmsg+0x10a/0x500
skarpetka_recvmsg+0x168/0x1d0
__sys_recvod+0x19a/0x2a0
__x64_sys_recvod+0xe4/0x1f0
do_syscall_64+0xf7/0x530
wpis_SYSCALL_64_after_hwframe+0x77/0x7f
błąd czyszczenia rbuf: skopiowano BF2E806 seq BF2E806 rcvnxt BF2E806
OSTRZEŻENIE: net/ipv4/tcp.c:1609 w tcp_cleanup_rbuf+0xf2/0x1c0
Zadzwoń do śledzenia:
tcp_recvmsg_locked+0x8d1/0x2640
tcp_recvmsg+0x10a/0x500
skarpetka_recvmsg+0x168/0x1d0
__sys_recvod+0x19a/0x2a0
__x64_sys_recvod+0xe4/0x1f0
do_syscall_64+0xf7/0x530
wpis_SYSCALL_64_after_hwframe+0x77/0x7f
Napraw ten problem, konwertując werdykt samodzielnego przekierowania na __SK_PASS w
początek sk_psock_verdict_apply(). To omija
__SK_REDIRECT sprawa w całości (która wywołuje sk_psock_eat_skb), let
ścieżka __SK_PASS kolejkuje skb do kolejki wejściowej psock. The
dane są następnie odczytywane za pomocą tcp_bpf_recvmsg_parser(), co powoduje postęp
copy_seq dokładnie raz przez copy_from_self. Gniazdo krzyżowe
przekierowania są kontynuowane przez __SK_REDIRECT za pomocą sk_psock_eat_skb()
niezmienione.
>_ Referencje
- https://git.kernel.org/stable/c/490a83d6386eec1d29f470c8d7331677fb46c3b7
- https://git.kernel.org/stable/c/88942054191185c6f8bea5568cbb5614d1e99af9
- https://git.kernel.org/stable/c/ae1ffd04e98beefbe5d83335d506b0bcd5c2a6b3
- https://git.kernel.org/stable/c/cf9aefb26a071cb8b6fdd761c27e022a1184946d
- https://git.kernel.org/stable/c/dc98def81e3c629e25fcdd5753b1db93aab27ce9
- https://git.kernel.org/stable/c/ef6f2182fee6b9721c005ccfc6aec0a47f79bbfa
Dane podatności pochodzą z oficjalnych źródeł (CVE® List / NVD). Opisy po polsku są tłumaczone automatycznie i mogą zawierać nieścisłości – na stronie rekordu można wyświetlić wersję angielską.
This product uses the NVD API but is not endorsed or certified by the NVD.
Copyright © 1999–2026, The MITRE Corporation. CVE is a registered trademark and the CVE logo is a registered trademark of The MITRE Corporation.
CVE Usage: MITRE hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Common Vulnerabilities and Exposures (CVE®). Any copy you make for such purposes is authorized provided that you reproduce MITRE's copyright designation and this license in any such copy. ALL DOCUMENTS AND THE INFORMATION CONTAINED THEREIN PROVIDED BY MITRE ARE PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND.
NVD Terms of Use / CVE® Terms of Use / nvd.nist.gov / cve.org