CVE-2026-28442
WysokieStreszczenie
ZimaOS, będący forką CasaOS, w wersji 1.5.2-beta3 ma lukę, która pozwala na usuwanie wewnętrznych plików i folderów systemowych poprzez bezpośrednią interakcję z API, mimo że interfejs aplikacji to uniemożliwia. Zmiana parametru ścieżki w żądaniu usunięcia pozwala na obejście tych ograniczeń.
Ocena ryzyka
Luka ta stwarza ryzyko usunięcia krytycznych plików systemowych, co może prowadzić do destabilizacji systemu lub utraty danych. Brak odpowiedniej walidacji wejścia oraz złamane kontrole dostępu mogą być wykorzystane przez atakujących.
Rekomendacja
Zaleca się wprowadzenie odpowiednich mechanizmów walidacji wejścia oraz kontroli dostępu do operacji na systemie plików. Należy również monitorować i ograniczać dostęp do API, aby zminimalizować ryzyko wykorzystania tej luki.
Powiązane podatności
- CVE-2026-90049Krytyczne
W jądrze Linux naprawiono podatność w funkcji skb_zerocopy(), która nieprawidłowo wywoływała skb_tx_error() na źródłowym skb podczas kopiowania fragów. To powodowało zakończenie uarg zerocopy i wyczyszczenie flagi SKBFL_SHARED_FRAG na skb, który nadal był używany przez stos sieciowy. W szczególności na ścieżce OVS_ACTION_ATTR_USERSPACE skb nie był zwalniany po błędzie, co mogło prowadzić do dekryptowania danych ESP w miejscu, gdzie skb nie posiadał prywatnie fragów, co mogło powodować uszkodzenie danych lub inne problemy.
- CVE-2026-90042Krytyczne
W jądrze Linux wykryto podatność w systemie plików Ceph, gdzie funkcja ceph_fname_to_usr() przekazywała bufory z regionu vmalloc() do API kryptograficznego fscrypt, które wymaga buforów w liniowym obszarze pamięci. Może to powodować błędy (oops) systemu, szczególnie na platformach innych niż x86. Poprawka dodaje obsługę buforów vmalloc() poprzez użycie tymczasowego bufora pośredniego.
- CVE-2026-90038Krytyczne
W jądrze Linux funkcja nfsd4_revoke_export_states() zwalnia blokadę nn->client_lock, ale trzymany referencja stateid nie utrzymuje przy życiu klienta. Równoległe zakończenie klienta może zwolnić go, podczas gdy revoke_one_stid() nadal go używa, powodując use-after-free.
- CVE-2026-90037Krytyczne
W jądrze Linux wpis nfs4_openowner pozostawiony na nn->close_lru trzyma tylko surowy wskaźnik do nfs4_client. Gdy laundromat zwalnia wpisy, zwalnia blokadę client_lock i wywołuje nfs4_put_stid(), równoległe force_expire_client() może zwolnić klienta, powodując użycie zwolnionej pamięci.
- CVE-2026-90036Krytyczne
W jądrze Linux właściciel blokady pozostawiony na nn->blocked_locks_lru trzyma tylko surowy wskaźnik do nfs4_client. Gdy laundromat zwalnia taką blokadę, końcowe nfs4_put_stateowner() sięga po cl_lock klienta, którego równoległe force_expire_client() mogło już zwolnić, powodując use-after-free.
- CVE-2026-90012Krytyczne
W jądrze Linux w funkcji __spi_map_msg() występuje błąd w zarządzaniu własnością mapowań DMA przy częściowym niepowodzeniu mapowania. Gdy mapowanie RX lub TX się nie powiedzie, flagi i wskaźniki urządzeń nie są prawidłowo czyszczone, co może prowadzić do ponownego odmapowania lub użycia NULL/starego wskaźnika urządzenia. Może to wywołać oops jądra.
- CVE-2026-90011Krytyczne
W jądrze Linux w podsystemie scsi target iscsi funkcja iscsi_target_check_login_request() nie rezerwuje bajtu terminatora NUL dla bufora logowania. Przy payload_length od 8189 do 8192 cały bufor 8192 bajtów jest wypełniany, a następnie przetwarzany jako string C, co prowadzi do odczytu poza buforem. Podatność jest osiągalna przez nieuwierzytelnionego inicjatora przy konfiguracji CHAP.
- CVE-2026-89990Krytyczne
W jądrze Linux funkcja ceph_mds_check_access() przegląda tablicę s_cap_auths bez trzymania mutexa. Równoczesne ponowne otwarcie sesji MDS może zwolnić tę tablicę w trakcie jej przeglądania, prowadząc do użycia po zwolnieniu (use-after-free).
- CVE-2026-89972Krytyczne
W jądrze Linux w funkcji nvme_alloc_ns() ścieżka błędu usuwa namespace z listy rodzeństwa za pomocą list_del_rcu(), ale nie czeka na zakończenie czytelników SRCU przed zwolnieniem struktury namespace. Współbieżny czytelnik w kodzie multipath może wciąż trzymać referencję do ns w momencie wywołania kfree(ns), co prowadzi do use-after-free.
- CVE-2026-89970Krytyczne
W jądrze Linux funkcja nvmet_auth_sq_free() anuluje zadanie auth_expired_work za pomocą cancel_delayed_work(), które nie czeka na zakończenie już uruchomionego callbacku. W wyniku tego podczas demontażu transportu kolejka zawierająca struct nvmet_sq może zostać zwolniona lub ponownie użyta, gdy nvmet_auth_expired_work() wciąż uzyskuje do niej dostęp.
Oryginalny opis (angielski, źródło NVD)
ZimaOS is a fork of CasaOS, an operating system for Zima devices and x86-64 systems with UEFI. In version 1.5.2-beta3, users are restricted from deleting internal system files or folders through the application interface. However, when interacting directly with the API, these restrictions can be bypassed. By altering the path parameter in the delete request, internal OS files and directories can be removed successfully. The backend processes these manipulated requests without validating whether the targeted path belongs to restricted system locations. This demonstrates improper input validation and broken access control on sensitive filesystem operations. No known public patch is available.

