CVE-2026-13201
WysokieCVSS 7.3Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 4 - wyżej niż 4% wszystkich znanych CVE
Streszczenie
W pakiecie safepath projektu KubeVirt, używanym przez komponent virt-handler, wykryto lukę w funkcji OpenAtNoFollow. Funkcja ta używa flag O_PATH|O_NOFOLLOW do uzyskania deskryptora pliku, ale późniejsze operacje rozwijają ścieżkę przez /proc/self/fd/N z użyciem wywołań systemowych podążających za dowiązaniami symbolicznymi. Gdy liść ścieżki jest dowiązaniem symbolicznym, jądro je dereferencjonuje, omijając zamierzoną ochronę przed podążaniem za dowiązaniami.
Ocena ryzyka
Atakujący mający dostęp do podu virt-launcher może wykorzystać tę lukę do przekierowania połączeń gniazd IPC virt-handlera, w tym gniazda notify używanego do zdarzeń cyklu życia domen VM. Może to prowadzić do wstrzyknięcia fałszywych zdarzeń, uszkodzenia stanu VM w API Kubernetes, awarii lub trwałej odmowy usług zarządzania VM na dotkniętym węźle. Ponadto luka umożliwia virt-handlerowi zmianę własności lub uprawnień plików na niezamierzonych ścieżkach hosta.
Rekomendacja
Należy niezwłocznie zaktualizować KubeVirt do wersji zawierającej poprawkę dla CVE-2026-13201. Do czasu aktualizacji ograniczyć dostęp do podów virt-launcher oraz monitorować logi virt-handlera pod kątem podejrzanych zdarzeń.
Inne podatności w KubeVirt
Zobacz wszystkie- CVE-2026-7374Krytyczne
W KubeVirt w komponencie virt-handler stwierdzono podatność polegającą na nieprawidłowej walidacji dowiązań symbolicznych podczas łączenia z konsolami maszyn wirtualnych. Uwierzytelniony użytkownik OpenShift z uprawnieniami edycji w pojedynczej przestrzeni nazw może zastąpić gniazdo konsoli dowiązaniem symbolicznym do gniazda CRI-O hosta, przejmując uprzywilejowane połączenie virt-handlera.
- CVE-2026-13622Wysokie
Podatność polegająca na podążaniu za dowiązaniami symbolicznymi w KubeVirt's virt-handler migration proxy. Podczas migracji na żywo, virt-handler łączy się z gniazdami Unix wewnątrz docelowego poda virt-launcher przez ścieżki /proc/<pid>/root/ bez ochrony przed dowiązaniami symbolicznymi. Atakujący z uprawnieniami do edycji przestrzeni nazw i wykonywania poleceń w podach może podmienić gniazdo proxy migracji na dowiązanie symboliczne do gniazda CRI-O na hoście, co umożliwia pełne przejęcie węzła.
- CVE-2026-13434Średnie
W KubeVirt znaleziono podatność w generatorze adnotacji sieciowych. Brak walidacji wartości networkName pozwala tenantowi z uprawnieniami kubevirt.io:edit na wstrzyknięcie kodu JSON do adnotacji v1.multus-cni.io/default-network. Gdy włączona jest funkcja ExternalNetResourceInjection (domyślnie wyłączona), Multus może podłączyć pod do dowolnej sieci w dowolnej przestrzeni nazw.
- CVE-2026-13322Niskie
W KubeVirt znaleziono podatność w serwerze downward metrics virtio-serial. Serwer odczytuje żądania gościa za pomocą textproto.Reader.ReadLine(), który buforuje dane wejściowe bez ograniczenia długości lub limitu czasu, dopóki nie otrzyma znaku nowej linii. Użytkownik mający dostęp do maszyny wirtualnej z skonfigurowanym urządzeniem downward metrics virtio-serial może wysłać ciągły strumień bajtów, powodując nieograniczoną alokację pamięci w procesie virt-handler, aż do jego zabicia przez OOM.
- CVE-2026-13318Średnie
W KubeVirt znaleziono podatność SSRF w handlerze port-forward virt-api. Podczas przetwarzania żądania port-forward do instancji VMI, virt-api odczytuje docelowy adres IP z vmi.Status.Interfaces[0].IP i przekazuje go bezpośrednio do net.Dial() bez walidacji. Dla VMI używających nie-maskujących wiązań sieciowych (bridge lub secondary-only), ten adres IP jest raportowany przez agenta QEMU działającego wewnątrz VM i jest w pełni kontrolowany przez właściciela VM.
- CVE-2026-13218Średnie
W KubeVirt znaleziono lukę w obsłudze pamięci podręcznej sieci przez virt-handler. Funkcja WriteToCachedFile zapisuje dane do ścieżki w katalogu launcher bez ochrony przed dowiązaniami symbolicznymi, co pozwala użytkownikowi z dostępem do kontenera virt-launcher na nadpisanie dowolnego pliku hosta treścią JSON i zmianę jego właściciela.
- CVE-2026-13208Średnie
W KubeVirt znaleziono lukę w serwerze powiadomień domeny virt-handler. Procedury obsługi gRPC dla HandleDomainEvent i HandleK8SEvent pobierają tożsamość VMI (przestrzeń nazw/nazwa) wyłącznie z treści żądania, bez weryfikacji jej względem źródła połączenia. Każdy proces virt-launcher łączy się przez gniazdo potoku per-VMI, ale żaden znacznik tożsamości nie jest propagowany ze ścieżki potoku do procedur obsługi serwera.
- CVE-2026-9804Wysokie
W KubeVirt w komponencie virt-exportserver wykryto podatność na path traversal. Atakujący z dostępem do przestrzeni nazw może umieścić dowiązanie symboliczne w eksportowanym PVC, wskazujące poza katalog główny montowania, co umożliwia odczyt dowolnych plików z systemu plików poda eksportera.
Oryginalny opis (angielski, źródło NVD)
A flaw was found in KubeVirt's safepath package used by virt-handler. The OpenAtNoFollow function uses O_PATH|O_NOFOLLOW to obtain a file descriptor to a path leaf, but downstream operations resolve the path via /proc/self/fd/N using link-following syscalls. When the leaf is a symlink, the kernel dereferences it, defeating the intended no-follow protection. An attacker with access to a virt-launcher pod can exploit this to redirect virt-handler's IPC socket connections, including the notify socket used for VM domain lifecycle events. By hijacking this socket, the attacker can inject arbitrary domain events into virt-handler, causing it to take incorrect lifecycle actions, corrupt VM state in the Kubernetes API, or crash — resulting in sustained denial of VM management services for all virtual machines on the affected node. Additionally, the same symlink following flaw allows virt-handler to apply file ownership or permission changes to unintended host paths.

