CRITICAL🇬🇧 English

CVE-2026-63795

Linux kernel 9p: use-after-free w p9_client_walk() przy błędzie ścieżki

CVSS 10.0pub. 2026-07-19upd. 2026-08-17

Podatność w sterowniku protokołu 9P jądra Linux powoduje use-after-free lub underflow licznika referencji przez nieprawidłowe zwolnienie wskaźnika fid aliasującego oldfid w ścieżce błędu funkcji p9_client_walk(). Błąd otrzymał najwyższy możliwy wynik CVSS 10.0, co wskazuje na krytyczne ryzyko.

Pokaż oryginał (EN)

In the Linux kernel, the following vulnerability has been resolved: 9p: avoid putting oldfid in p9_client_walk() error path When p9_client_walk() is called with clone set to false, fid aliases oldfid. If the walk subsequently fails after the request has been sent, the error path jumps to clunk_fid, which currently calls p9_fid_put(fid) unconditionally. This drops a reference to oldfid even though ownership of oldfid remains with the caller. If this is the last reference, oldfid can be clunked and destroyed while the caller still expects it to be valid. A later use or put of oldfid can then trigger a use-after-free or refcount underflow. Fix this by only putting fid in the clunk_fid error path when it does not alias oldfid, matching the existing guard in the error path below. This can be triggered when a multi-component walk is split into multiple p9_client_walk() calls and a later non-cloning walk fails. A reproducer and refcount warning logs are available on request.

🤖 Analiza AI
Jak działa

Gdy funkcja p9_client_walk() jest wywoływana z parametrem clone ustawionym na false, zmienna fid staje się aliasem oldfid — obie wskazują na ten sam obiekt. Jeśli żądanie sieciowe zostanie wysłane, lecz operacja walk zakończy się niepowodzeniem, ścieżka obsługi błędu (etykieta clunk_fid) bezwarunkowo wywołuje p9_fid_put(fid), co zmniejsza licznik referencji obiektu należącego nadal do wywołującego. Gdy jest to ostatnia referencja, obiekt oldfid zostaje zniszczony, mimo że wywołujący nadal spodziewa się jego istnienia. Późniejsze użycie lub zwolnienie oldfid prowadzi do use-after-free bądź underflow licznika referencji. Scenariusz można wywołać, gdy wieloelementowa ścieżka (multi-component walk) jest dzielona na kilka wywołań p9_client_walk(), a późniejsze wywołanie bez klonowania kończy się błędem.

Skutki

Atakujący lub złośliwy serwer 9P może doprowadzić do use-after-free w przestrzeni jądra, co potencjalnie umożliwia eskalację uprawnień, zdalne wykonanie kodu (RCE) lub destabilizację systemu (kernel crash).

Mitygacja

Należy zastosować patche dostępne u producenta zgodnie z referencjami — commity opublikowane w repozytorium linux-stable: 1a3860d46e3e, 6dbe9443d9f5, 99c379ca1e22, a61bdcba4f64, a7656d368265.

Kogo dotyczy

Jądro Linux z obsługą protokołu 9P (moduł 9p/client); konkretne wersje wskazane w referencjach producenta (patche dostępne w repozytorium stable kernel).

Uwagi

Według opisu EN autor podatności dysponuje reproduktorem oraz logami ostrzeżeń licznika referencji, dostępnymi na żądanie. CVE posiada datę publikacji 2026-07-19, co może wskazywać na przyszłą datę lub błąd w metadanych.

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
  • Linux Kernel

    OS
    Linux
    6.0 – 6.1.177 (bez)6.2 – 6.6.144 (bez)6.7 – 6.12.95 (bez)6.13 – 6.18.38 (bez)6.19 – 7.1.3 (bez)
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
Tagi
Memory
CWE
Referencje

Powiązane podatności

CVE-2025-10585CRITICAL9.8⚠ KEVPL ✓ten sam produkt

Type confusion w V8 (Google Chrome) — zdalne uszkodzenie sterty

CVE-2025-34028CRITICAL9.3⚠ KEVPL ✓ten sam produkt

Commvault Command Center – nieuwierzytelniony RCE przez path traversal w ZIP

CVE-2022-47986CRITICAL9.8⚠ KEVPL ✓ten sam produkt

RCE przez YAML deserialization w IBM Aspera Faspex

CVE-2022-22954CRITICAL9.8⚠ KEVPL ✓ten sam produkt

RCE w VMware Workspace ONE Access i Identity Manager poprzez server-side template injection

CVE-2020-4006CRITICAL9.1⚠ KEVPL ✓ten sam produkt

Command Injection w VMware Workspace One Access i Identity Manager