CVE-2026-7830
WysokieCVSS 7.4Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 12 - wyżej niż 12% wszystkich znanych CVE
Streszczenie
UltraVNC do wersji 1.8.2.2 używa słabej kryptografii w schemacie uwierzytelniania MS-Logon II. Wymiana kluczy Diffie-Hellmana opiera się na parametrach 64-bitowych, które można złamać w ułamku sekundy, a generator liczb losowych oparty na funkcji rand() z ziarnem czasowym pozwala na odzyskanie klucza prywatnego w minutę.
Ocena ryzyka
Atakujący sieciowo może przechwycić uzgodniony klucz DH i odszyfrować nazwę użytkownika oraz hasło, co prowadzi do pełnego ujawnienia danych uwierzytelniających i potencjalnego przejęcia kontroli nad systemem.
Rekomendacja
Należy natychmiast zaktualizować UltraVNC do wersji nowszej niż 1.8.2.2 lub przełączyć się na schemat MS-Logon III (X25519 + AES-256-GCM), który nie jest podatny na to zagrożenie.
Inne podatności w UltraVNC
Zobacz wszystkie- CVE-2026-7838Wysokie
W UltraVNC viewer do wersji 1.8.2.2 wykryto przepełnienie liczby całkowitej prowadzące do przepełnienia bufora sterty w ścieżce parsowania odpowiedzi błędu protokołu RFB. Pole reasonLen o rozmiarze 4 bajtów (typ CARD32) jest przekazywane jako reasonLen+1 do funkcji CheckBufferSize(), a przy wartości 0xFFFFFFFF dochodzi do przepełnienia do 0, co powoduje alokację tylko 256 bajtów. Następnie funkcja ReadString() odczytuje oryginalne 4 GiB danych do tego małego bufora, co prowadzi do przepełnienia.
- CVE-2026-7831Wysokie
UltraVNC viewer do wersji 1.8.2.2 zawiera przepełnienie bufora stosu o jeden bajt w obsłudze wiadomości ServerInit protokołu RFB. Gdy serwer poda nazwę pulpitu o długości dokładnie 2024 bajtów, funkcja ReadString zapisuje znak null poza przydzielonym buforem, co może prowadzić do uszkodzenia danych na stosie.
- CVE-2026-7828Średnie
W repeaterze UltraVNC do wersji 1.8.2.2 występuje przepełnienie liczby całkowitej w funkcji win_log() podczas alokacji pamięci dla listy węzłów. Atakujący może wysłać odpowiednio długi URI HTTP, co prowadzi do przepełnienia bufora sterty, potencjalnie umożliwiając częściowy zapis poza przydzielonym obszarem.
- CVE-2026-44041Średnie
Podatność w UltraVNC do wersji 1.8.2.2 powoduje odczyt poza zakresem w funkcji konwersji szerokich znaków na wielobajtowe. Funkcja vncWc2Mb() wywołuje wcslen() na buforze dostarczonym przez wywołującego bez wcześniejszego sprawdzenia granic, co może prowadzić do odczytu poza przydzieloną pamięcią.
- CVE-2026-44040Średnie
UltraVNC do wersji 1.8.2.2 używa kryptograficznie słabego generatora liczb pseudolosowych do tworzenia bajtów wyzwania uwierzytelniania VNC. Funkcja vncRandomBytes() inicjuje libc rand() wartościami time(0) + getpid() + rand(), co daje przestrzeń seeda około 31 bitów, całkowicie determinowaną przez publicznie obserwowalne wartości (czas i PID). Atakujący może przewidzieć wyzwanie w ciągu sekund, co umożliwia fałszowanie lub brute-force odpowiedzi.
Oryginalny opis (angielski, źródło NVD)
UltraVNC through 1.8.2.2 uses inadequate cryptography in the MS-Logon II authentication scheme (rfbUltraVNC_MsLogonIIAuth). In rfb/dh.cpp the Diffie-Hellman key exchange is performed with parameters that fit in an unsigned 64-bit integer (DH_MAX_BITS controls the prime size). A 64-bit DH key can be broken by Pollard's rho algorithm in under one second on current hardware. Additionally, the private exponent is generated by the rng() function, which multiplies three libc rand() values seeded from time(NULL). With approximately 31 bits of internal state and a time-based seed, the private exponent is recoverable in under a minute by a passive observer. A network attacker who can observe the MS-Logon II handshake (via sniffing, recording, or man-in-the-middle) can derive the shared DH key and decrypt the encapsulated username and password, resulting in full credential disclosure. This affects legacy MS-Logon II connections; MS-Logon III (X25519 + AES-256-GCM) is unaffected.

