Odebrany

CVE-2026-99281

opublikowano:
modyfikacja:
Ocena CVSS
n/a
Brak oceny

>_ Opis

Tłumaczenie automatyczne – może zawierać nieścisłości.

W jądrze Linuksa usunięto następującą lukę:

tun: wymagaj połączenia CAP_NET_ADMIN z urządzeniem bez właściciela

Dwadzieścia lat temu stworzyłem urządzenie tuntap wymagające CAP_NET_ADMIN
w zatwierdzeniu ca6bb5d7ab22 („[NET]: Wymagaj CAP_NET_ADMIN, aby utworzyć tuntap
urządzenia.”)

Pomysł polegał na tym, aby pozwolić na złagodzenie uprawnień w /dev/net/tun
0666 i w ten sposób umożliwić właścicielom urządzeń tun przypisanych do TUNSETOWNER
faktycznie go otwórz i dostań się do swoich urządzeń.

To, czego wtedy nam brakowało, to trwałe urządzenia, które *nie* mają właściciela
w zasadzie nadawały się już do spożycia na całym świecie i każdy, kto mógł je otworzyć
węzeł urządzenia może również zostać do nich podłączony.

Nawet wtedy używanie trwałych urządzeń bez wyraźnie ustawionego właściciela — włączone
(fałszywe) założenie, że do otwarcia wymagane będzie CAP_NET_ADMIN
nich — nie był to rażący błąd w przestrzeni użytkownika. Są przypadki, że tak
sensowne jest oddzielenie tworzenia/konfiguracji urządzenia sieciowego od
proces, który ładuje do niego pakiety.

Od tego czasu TUNSETGROUP został dodany rok później w zatwierdzeniu 8c644623fe7e
(„[NET]: Zezwól na grupową własność urządzeń TUN/TAP.”). Komunikat o zatwierdzeniu
zauważył, że jeśli ustawione są zarówno uid, jak i gid, oba muszą pasować (sam w sobie a
dziwaczny wybór) — ale wciąż nie tak z ustawionym *ani*, bez pozwolenia
w ogóle było wymagane.

Następnie w 2012 roku zatwierdzono c8d68e6be1c3 („tuntap: obsługa wielu kolejek”).
nowe kolejki do dołączenia do urządzenia od momentu jego utworzenia,
bez możliwości, aby przestrzeń użytkownika zakończyła wyścig pomiędzy stworzeniem a
kolejny TUNSET{WŁAŚCICIEL,GRUPA}.

W 2024 r. wypróbowano zatwierdzenie 3ca459eaba1bf („tun: napraw sprawdzanie uprawnień grupy”)
aby wszystko było rozsądniejsze: wymagaj tylko od użytkownika *lub* grupy
dopasuj, zgodnie ze standardowymi uprawnieniami POSIX i wymagaj
CAP_NET_ADMIN jeśli ani użytkownik, ani grupa nie autoryzowała dostępu
(chociaż najpierw umieścił sprawdzenie CAP_NET_ADMIN i błędnie to zrobił
zgłosiło, że zdolność została wykorzystana, nawet jeśli tak nie było).

Ta poprawka została przywrócona w zatwierdzeniu a70c7b3cbc06 („tun: przywróć grupę poprawek
sprawdzanie uprawnień”) z powodu rzekomego powodowania regresji w selinuxie
zestaw testów, który *oczekiwał*, że załącznik powiedzie się po autoryzacji
przez żadnego użytkownika, grupę ani CAP_NET_ADMIN:
https://lore.kernel.org/netdev/CAFqZXNtkCBT4f+PwyVRmQGoT3p1eVa01fCG_aNtpt6dakXncUg@mail.gmail.com/

Nie powinniśmy łamać UAPI. Ale nie musimy rozważać testu Selinux
przypadek, który celowo wykorzystuje lukę w zabezpieczeniach, aby była warta UAPI
zachowując albo. W tym celu naprawiłem to w selinux-testsuite
zatwierdzenie b2f894f0016b („tests/tun_tap: ustaw właściciela urządzenia dla
testy ponownego oznakowania”).

Zatem: napraw brak kontroli CAP_NET_ADMIN na urządzeniach, na których *nie* było
przypisano właściciela lub grupę, pozostawiając dziwny model własności tunelu
tak jak było (użytkownik *i* grupa muszą być zgodne, jeśli oba są ustawione). Jeśli ktoś
nadal chce naprawić to drugie (co nie było właściwie powodem
poprzednia próba została cofnięta), mogą to zrobić pod osobną osłoną.

Zezwalaj na dołączanie do istniejącego urządzenia tylko wtedy, gdy był to właściciel i/lub grupa
set i wywołujący pasuje do wszystkiego, co zostało ustawione, lub jeśli wywołujący ma
CAP_NET_ADMIN. Jedyną zmianą w zachowaniu jest to, że urządzenie bez
właściciel lub grupa wymaga teraz dołączenia CAP_NET_ADMIN — dokładnie
lukę, którą chcemy załatać.

I tym razem umieść czek CAP_NET_ADMIN we właściwym miejscu.

>_ Referencje

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