CVE-2026-93050
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
ipack: ipoctal: napraw UAF, null-ptr-deref i użyj po zwolnieniu podczas czyszczenia po usunięciu
W przypadku usunięcia urządzenia w trakcie sesji tty pojawiają się trzy problemy
nadal aktywny:
1. UAF struktury ipoctal: wywołanie zwrotne usuwania zwalnia ipoctal via
kfree(), podczas gdy operatorzy TTY nadal mają do niej dostęp. Napraw poprzez wprowadzenie
zarządzanie czasem życia oparte na kref — kref jest pobierany w install() kiedy
tty jest otwierany i wypuszczany w funkcji cleanup(), gdy tty jest już gotowy
zniszczone; Remove() używa kref_put() zamiast kfree().
2. Dereferencja NULL w ipoctal_write_tty(): __ipoctal_remove()
zwalnia xmit_buf poprzez tty_port_free_xmit_buf() w przestrzeni użytkownika
proces może nadal przechowywać tty fd i wywoływać funkcję write(). Napraw przez
sprawdzanie NULL xmit_buf w ipoctal_write_tty().
3. UAF w ipoctal_cleanup(): ipack_put_carrier(ipoctal->dev)
dereferuje ipoctal->dev po zwolnieniu urządzenia ipack_device
przez ipack_device_del(). Napraw, buforując ipoctal->carrier_owner
podczas sondy() i wywoływania module_put() na wskaźniku w pamięci podręcznej
bezpośrednio w cleanup(), unikając dostępu do ipoctal->dev.
Wprowadź także flagę „usuniętą” w strukturze ipoctal, ustawioną na początku
__ipoctal_remove() i sprawdzałem każdą operację tty, która uzyskuje dostęp
zasoby sprzętowe (port_activate, write_tty, set_termios, rozłączenie,
wyłączenie). Zapobiega to błędom stron podczas regionów devm_ioremap().
nie są mapowane po powrocie funkcji Remove().
>_ Referencje
- https://git.kernel.org/stable/c/1a3258e105f711538201bdd2ac2a05b11554eabc
- https://git.kernel.org/stable/c/4a6518be316029650301f2a5e8f0def229b895d9
- https://git.kernel.org/stable/c/a4613140f01bd0fb9980e2746ed9aaa65a29b5d6
- https://git.kernel.org/stable/c/ab5f5b27a340004b92252c6a5f23bf1c6cf3b02a
- https://git.kernel.org/stable/c/b6b5d64cb161a28347d64dc3168a636c4abb68d5
- https://git.kernel.org/stable/c/c92ef8fd834521f0b788e0511976c689fe57c63c
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