CVE-2026-48981
ŚrednieCVSS 6.7Streszczenie
W wersjach przed 0.9.2, pam_usb wywołuje xmlReadFile() z flagami=0 podczas ładowania pliku konfiguracyjnego, co pozwala libxml2 na przetwarzanie zewnętrznych odniesień do encji (XXE). Może to prowadzić do nawiązywania połączeń sieciowych lub odczytu lokalnych plików w czasie analizy XML z kontekstu procesu uwierzytelniającego.
Ocena ryzyka
Wymagana jest modyfikacja pliku konfiguracyjnego, co ogranicza bezpośrednie wykorzystanie podatności, jednak jej wpływ na bezpieczeństwo jest znaczący, ponieważ pam_usb.so działa w kontekstach setuid (sudo, su).
Rekomendacja
Zaleca się aktualizację do wersji 0.9.2 lub nowszej, aby usunąć tę podatność. Dodatkowo, należy ograniczyć dostęp do pliku konfiguracyjnego pam_usb.conf.
Inne podatności w pam_usb
Zobacz wszystkie- CVE-2026-48983Średnie
W wersjach przed 0.9.2 pam_usb zawiera lukę w postaci warunku wyścigu przy tworzeniu katalogów pad dla poszczególnych urządzeń i użytkowników. Atakujący lokalny może wykorzystać tę lukę, aby zastąpić docelową ścieżkę symlinkiem do katalogu, który kontroluje.
- CVE-2026-48980Średnie
W wersjach przed 0.9.2 moduł pam_usb, odpowiedzialny za uwierzytelnianie sprzętowe w systemie Linux, jest podatny na wstrzykiwanie zmiennych środowiskowych. Zmienne XRDP_SESSION, DISPLAY i TMUX mogą być manipulowane przez lokalnego użytkownika, co wpływa na logikę sprawdzania sesji lokalnych i zdalnych.
- CVE-2026-48986Średnie
W wersjach pam_usb 0.9.1 i wcześniejszych występuje błąd, który może prowadzić do nieskończonej pętli DoS z powodu nieprawidłowej inicjalizacji zmiennej *ppid. W funkcji pusb_local_login() ta sama zmienna jest używana jako wejście i wyjście w pętli, co może prowadzić do zablokowania procesu uwierzytelniającego.
- CVE-2026-48985Średnie
W wersjach 0.9.1 i poniżej moduł pam_usb może powodować awarię z powodu dereferencji NULL podczas analizy wyjścia loginctl. Funkcja pusb_is_loginctl_local() wywołuje popen() i odczytuje wynik, co może prowadzić do nieokreślonego zachowania i awarii modułu PAM.
- CVE-2026-48984Średnie
W wersjach 0.9.1 i poniżej, funkcja xfree() w pam_usb zwalnia pamięć bez wcześniejszego wyzerowania zawartości bufora, co prowadzi do ujawnienia wrażliwych danych w zwolnionej pamięci. Może to umożliwić odzyskanie wartości padów lub innych materiałów uwierzytelniających z obszarów pamięci, które zostały zwolnione.
- CVE-2026-47269Wysokie
W wersjach przed 0.9.0, funkcja deny_remote w pam_usb nieprawidłowo sprawdzała, czy żądanie uwierzytelnienia pochodzi z sesji zdalnej, co pozwalało na ominięcie zabezpieczeń. Atakujący z fizycznym dostępem do zarejestrowanego urządzenia USB mógł uwierzytelnić się przez SSH, jakby był lokalnie podłączony.
- CVE-2026-44713Wysokie
W wersjach przed 0.8.7, pam_usb odczytuje zmienną środowiskową $TMUX użytkownika i interpoluje jej wartość bez odpowiedniego oczyszczania, co pozwala na wstrzyknięcie dowolnej składni powłoki. To stwarza ryzyko wykonania nieautoryzowanych poleceń jako root.
- CVE-2026-44712Wysokie
pam_usb przed wersją 0.8.7 umożliwia zdalne wykonanie kodu (RCE) z poziomu roota poprzez spreparowany UUID w konfiguracji. Wykonanie polecenia pamusb-conf --reset-pads z takim UUID prowadzi do wykorzystania podatności.
- CVE-2026-44711Wysokie
pam_usb przed wersją 0.8.7 jest podatny na ataki symlinkowe, które umożliwiają obejście uwierzytelniania oraz uszkodzenie plików systemowych. Wersja 0.8.7 zawiera poprawkę tej podatności.
- CVE-2026-47272Wysokie
W wersjach przed 0.9.0, funkcja pusb_pad_compare() w pam_usb nie wymuszała obecności i czytelności pliku pad na urządzeniu USB, co pozwalało użytkownikom na autoryzację bez fizycznego urządzenia. Użytkownik mógł usunąć swój plik ~/.pamusb/device.pad, co skutkowało pomyślną autoryzacją bez wymaganego urządzenia USB.
Oryginalny opis (angielski, źródło NVD)
pam_usb provides hardware authentication for Linux using ordinary removable media. In versions prior to 0.9.2, pam_usb calls xmlReadFile() with flags=0 when loading the configuration file, allowing libxml2 to process external entity references (XXE), potentially making outbound network connections or local file reads at XML parse time from the context of the authenticating process. The vulnerability requires the configuration file to contain crafted XML entity references. Since pam_usb.conf is root-owned, direct exploitation requires prior write access to the config, but the defence-in-depth impact is significant given that pam_usb.so runs in setuid contexts (sudo, su). This issue has been fixed in version 0.9.2.

