Podatność w podsystemie libceph jądra Linux umożliwia nieprawidłowy odczyt i zapis do składowej unii con->v1 bez weryfikacji, czy jest ona aktywna. Na systemach 64-bitowych może to prowadzić do poważnych konsekwencji związanych z uszkodzeniem danych w pamięci podczas korzystania z protokołu msgr2.
▸ Pokaż oryginał (EN)
In the Linux kernel, the following vulnerability has been resolved: libceph: fix invalid accesses to ceph_connection_v1_info There is a place where generic code in messenger.c is reading and another place where it is writing to con->v1 union member without checking that the union member is active (i.e. msgr1 is in use). On 64-bit systems, con->v1.auth_retry overlaps with con->v2.out_iter, so such a read is almost guaranteed to return a bogus value instead of 0 when msgr2 is in use. This ends up being fairly benign because the side effect is just the invalidation of the authorizer and successive fetching of new tickets. con->v1.connect_seq overlaps with con->v2.conn_bufs and the fact that it's being written to can cause more serious consequences, but luckily it's not something that happens often.
Generyczny kod w pliku messenger.c odczytuje i zapisuje składową unii con->v1 bez uprzedniego sprawdzenia, czy aktywny protokół to msgr1. Na systemach 64-bitowych pole con->v1.auth_retry nakłada się w pamięci z polem con->v2.out_iter, co przy użyciu protokołu msgr2 skutkuje odczytem błędnej wartości. Poważniejszy problem stanowi nakładanie się pola con->v1.connect_seq z con->v2.conn_bufs — zapis do tej lokalizacji może powodować poważne uszkodzenia struktur danych. Błąd klasyfikowany jest jako nieprawidłowa konwersja typów (CWE-704), wynikająca z braku weryfikacji aktywnego wariantu unii.
Atakujący lub wadliwa operacja sieciowa może doprowadzić do uszkodzenia danych w pamięci jądra, potencjalnie skutkując naruszeniem poufności, integralności i dostępności systemu — co odpowiada ocenie CVSS 9.8 (CRITICAL). W łagodniejszych przypadkach dochodzi jedynie do niepotrzebnego unieważnienia autoryzatora i ponownego pobierania biletów.
Należy zastosować patche dostępne u producenta zgodnie z referencjami — commity naprawcze zostały opublikowane w repozytorium stable jądra Linux pod adresami wskazanymi w sekcji referencji (m.in. 23538cfb, 35dbbc3d, 591ea9c3, 6bd8b568, cdbc9836)
Linux Kernel — wersje wskazane w referencjach producenta (łatki dostępne w repozytorium stable jądra Linux)
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HDebian
OSDebian11.0Linux Kernel
OSLinux6.176.2 – 6.6.107 (bez)5.11 – 5.15.194 (bez)6.13 – 6.16.8 (bez)6.7 – 6.12.48 (bez)5.16 – 6.1.153 (bez)
Powiązane podatności
GNU Inetutils telnetd: ominięcie uwierzytelnienia przez zmienną USER
Type confusion w V8 (Google Chrome) — zdalne uszkodzenie sterty
Sudo: eskalacja uprawnień do root poprzez opcję --chroot (CVE-2025-32463)
RCE przez deserializację PHP w Roundcube Webmail (parametr _from)
Commvault Command Center – nieuwierzytelniony RCE przez path traversal w ZIP