CVE-2026-44713
WysokieStreszczenie
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.
Ocena ryzyka
Podatność ta może prowadzić do poważnych naruszeń bezpieczeństwa, umożliwiając atakującym wykonanie dowolnych poleceń w kontekście roota, co zagraża integralności systemu.
Rekomendacja
Zaleca się aktualizację do wersji 0.8.7 lub nowszej, aby usunąć tę podatność oraz przeglądanie i ograniczenie dostępu do zmiennej $TMUX.
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-48981Średnie
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.
- 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-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. Prior to 0.8.7, src/tmux.c reads the user's $TMUX environment variable, splits it on commas, and interpolates the socket-path component directly into a shell command passed to popen(). Because the value is placed inside double-quotes without sanitisation, any value containing " terminates the quoted string and injects arbitrary shell syntax. popen() runs as root inside the PAM stack. This vulnerability is fixed in 0.8.7.

