CVE-2026-53284
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 38 - wyżej niż 38% wszystkich znanych CVE
Streszczenie
W jądrze Linux w systemie plików Btrfs wykryto błąd, w którym podczas zapisu transakcji, po nieudanym zapisie, przedwcześnie czyszczono strukturę danych śledzącą brudne strony (dirty_pages io tree). Powodowało to, że brudne bufory extent nie były poprawnie czyszczone podczas odmontowywania, co prowadziło do ostrzeżeń i potencjalnej utraty danych.
Ocena ryzyka
Organizacja ryzykuje niestabilnością systemu plików Btrfs, ostrzeżeniami podczas odmontowywania oraz potencjalną utratą danych w przypadku awarii zapisu transakcji, co może wpłynąć na integralność danych i dostępność usług.
Rekomendacja
Zaleca się natychmiastową aktualizację jądra Linux do wersji zawierającej poprawkę dla CVE-2026-53284. Należy monitorować systemy plików Btrfs pod kątem ostrzeżeń o brudnych buforach extent podczas odmontowywania.
Inne podatności w Linux kernel
Zobacz wszystkie- CVE-2026-99284Nieznane
W jądrze Linux rozwiązano podatność w funkcji skb_zerocopy() w podsystemie sieciowym skbuff. Funkcja nie propaguje znacznika shared-frag do docelowego skb, co łamie niezmiennik używany przez późniejsze zapisy w miejscu. W wyniku tego nieuprzywilejowany użytkownik może zapisywać do pamięci podręcznej stron pliku tylko do odczytu należącego do roota.
- CVE-2026-99283Nieznane
W jądrze Linux w module netfilter conntrack dla TCP wykryto błąd wyboru timeoutu dla pakietów RST. Gdy pakiet RST nie pasuje dokładnie do oczekiwanego numeru sekwencji, wpis conntrack pozostaje w stanie ESTABLISHED, ale mimo to stosowany jest krótki timeout CLOSE (10 sekund). Drugi niedokładny RST może obniżyć timeout, zanim wygaśnie limit challenge ACK, co pozwala wpisowi conntrack wygasnąć, podczas gdy oba punkty końcowe TCP pozostają w stanie established.
- CVE-2026-99282Nieznane
W jądrze Linux w module net/sched: sch_teql występuje podatność use-after-free. Funkcja teql_master_xmit() błędnie interpretuje kod zwrotny NET_XMIT_DROP jako niezużyty pakiet i wykonuje na nim operacje po zwolnieniu pamięci. Problem dotyczy konfiguracji z interfejsem VLAN i qdisc pfifo z limitem 0.
- CVE-2026-99281Nieznane
W jądrze Linux naprawiono lukę w mechanizmie tun/tap, która pozwalała procesom bez uprawnień CAP_NET_ADMIN dołączać się do trwałych urządzeń tun, które nie miały ustawionego właściciela ani grupy. Wystarczał dostęp do węzła /dev/net/tun, aby przechwycić lub wstrzykiwać ruch sieciowy. Poprawka wymaga teraz CAP_NET_ADMIN do dołączenia do urządzenia bez właściciela i grupy.
- CVE-2026-99280Nieznane
W jądrze Linux w module ksmbd rozwiązano podatność polegającą na tym, że niepowodzenie rejestracji sesji i czyszczenie połączenia mogą zwolnić referencję tabeli, gdy wpis procfs sesji jest nadal dostępny. Może to prowadzić do użycia po zwolnieniu (use-after-free) i problemów z współbieżnością.
- CVE-2026-99278Nieznane
W jądrze Linux w module ksmbd rozwiązano podatność polegającą na tym, że limit oczekujących sesji uwzględnia tylko sesje InProgress. Klient może wielokrotnie kończyć uwierzytelnianie i utrzymywać nieograniczoną liczbę sesji Valid na jednym połączeniu.
- CVE-2026-99259Nieznane
W jądrze Linux w sterowniku soc/tegra: pmc występuje problem z niezainicjalizowaną zmienną early_pmc->rate dla starszych 32-bitowych urządzeń Tegra. Zmienna nigdy nie jest ustawiana i pozostaje równa 0, co powoduje wyzwalanie ostrzeżenia w funkcji tegra_pmc_enter_suspend_mode(). Błąd pojawił się po zmianie sterownika PMC na dynamiczne tworzenie kontekstu, gdzie zaktualizowano rate tylko w nowym kontekście.
- CVE-2026-99258Nieznane
W jądrze Linux funkcja hv_apicid_to_vp_index() używa per-CPU stron wejściowych i wyjściowych hiperwywołań. W maszynie wirtualnej SEV-SNP CoCo bez paravisora strona wyjściowa nie jest alokowana, więc hipervisor zapisuje wynikowy indeks VP do niezaalokowanej pamięci gościa. Poprawka polega na użyciu tej samej strony wejściowej również jako wyjściowej.
- CVE-2026-99257Nieznane
W jądrze Linux mechanizm współdzielonych GPIO oparty na tablicach wyszukiwania platformy wymaga powiązanego struct device. Wywołanie wyszukiwania oparte na fwnode bez powiązanego urządzenia powoduje dereferencję wskaźnika NULL. Poprawka dodaje sprawdzenie, które pozwala jąderu łagodnie obsłużyć tę sytuację błędem.
- CVE-2026-99256Nieznane
W jądrze Linux moduł dm cache używał rw_semaphore do blokady background_work_lock, mimo że blokady zapisu rw_semaphore mają ścisłą semantykę właściciela. Proces blokujący nie zawsze był tym samym, który zwalniał blokadę, co przy CONFIG_DEBUG_RWSEMS wyzwalało ostrzeżenie podczas suspend/resume urządzenia cache. Poprawka zastępuje rw_semaphore spinlockiem i kolejką oczekujących.
Oryginalny opis (angielski, źródło NVD)
In the Linux kernel, the following vulnerability has been resolved: btrfs: only release the dirty pages io tree after successful writes [WARNING] With extra warning on dirty extent buffers at umount (aka, the next patch in the series), test case generic/388 can trigger the following warning about dirty extent buffers at unmount time: BTRFS critical (device dm-2 state E): emergency shutdown BTRFS error (device dm-2 state E): error while writing out transaction: -30 BTRFS warning (device dm-2 state E): Skipping commit of aborted transaction. BTRFS error (device dm-2 state EA): Transaction 9 aborted (error -30) BTRFS: error (device dm-2 state EA) in cleanup_transaction:2068: errno=-30 Readonly filesystem BTRFS info (device dm-2 state EA): forced readonly BTRFS info (device dm-2 state EA): last unmount of filesystem 4fbf2e15-f941-49a0-bc7c-716315d2777c ------------[ cut here ]------------ WARNING: disk-io.c:3311 at invalidate_and_check_btree_folios+0xfd/0x1ca [btrfs], CPU#8: umount/914368 CPU: 8 UID: 0 PID: 914368 Comm: umount Tainted: G OE 7.1.0-rc1-custom+ #372 PREEMPT(full) 2de38db8d1deae71fde295430a0ff3ab98ccf596 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS unknown 02/02/2022 RIP: 0010:invalidate_and_check_btree_folios+0xfd/0x1ca [btrfs] Call Trace: <TASK> close_ctree+0x52e/0x574 [btrfs d2f0b1cd330d1287e7a9919d112eadfc0e914efd] generic_shutdown_super+0x89/0x1a0 kill_anon_super+0x16/0x40 btrfs_kill_super+0x16/0x20 [btrfs d2f0b1cd330d1287e7a9919d112eadfc0e914efd] deactivate_locked_super+0x2d/0xb0 cleanup_mnt+0xdc/0x140 task_work_run+0x5a/0xa0 exit_to_user_mode_loop+0x123/0x4b0 do_syscall_64+0x243/0x7c0 entry_SYSCALL_64_after_hwframe+0x4b/0x53 </TASK> ---[ end trace 0000000000000000 ]--- BTRFS warning (device dm-2 state EA): unable to release extent buffer 30539776 owner 9 gen 9 refs 2 flags 0x7 BTRFS warning (device dm-2 state EA): unable to release extent buffer 30621696 owner 257 gen 9 refs 2 flags 0x7 BTRFS warning (device dm-2 state EA): unable to release extent buffer 30638080 owner 258 gen 9 refs 2 flags 0x7 BTRFS warning (device dm-2 state EA): unable to release extent buffer 30654464 owner 7 gen 9 refs 2 flags 0x7 BTRFS warning (device dm-2 state EA): unable to release extent buffer 30703616 owner 2 gen 9 refs 2 flags 0x7 BTRFS warning (device dm-2 state EA): unable to release extent buffer 30720000 owner 10 gen 9 refs 2 flags 0x7 BTRFS warning (device dm-2 state EA): unable to release extent buffer 30736384 owner 4 gen 9 refs 2 flags 0x7 BTRFS warning (device dm-2 state EA): unable to release extent buffer 30752768 owner 11 gen 9 refs 2 flags 0x7 I'm using a stripped down version, which seems to trigger the warning more reliably: _fsstress_pid="" workload() { dmesg -C mkfs.btrfs -f -K $dev > /dev/null echo 1 > /sys/kernel/debug/clear_warn_once mount $dev $mnt $fsstress -w -n 1024 -p 4 -d $mnt & _fsstress_pid=$! sleep 0 $godown $mnt pkill --echo -PIPE fsstress > /dev/null wait $_fsstress_pid unset _fsstress_pid umount $mnt if dmesg | grep -q "WARNING"; then fail fi } for (( i = 0; i < $runtime; i++ )); do echo "=== $i/$runtime ===" workload done [CAUSE] Inside btrfs_write_and_wait_transaction(), we first try to write all dirty ebs, then wait for them to finish. After that we call btrfs_extent_io_tree_release() to free all extent states from dirty_pages io tree. However if we hit an error from btrfs_write_marked_extent(), then we still call btrfs_extent_io_tree_release() to clear that dirty_pages io tree, which may contain dirty records that we haven't yet submitted. Furthermore, the later transaction cleanup path will utilize that dirty_pages io tree to properly cleanup those dirty ebs, but since it's already empty, no dirty ebs are properly cleaned up, thus will later trigger the warnings inside invalidate_btree_folios(). ---truncated---
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

