CVE-2026-76840
KrytyczneCVSS 9.6Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 23 - wyżej niż 23% wszystkich znanych CVE
Streszczenie
Przekierowanie schowka w RustDesk dla Windows kopiuje długość dostarczoną przez peera do bufora o stałym rozmiarze bez górnej granicy. Gdy konsument wklejania OLE, taki jak explorer.exe, wywołuje IStream::Read z buforem o rozmiarze cb, funkcja CliprdrStream_Read w libs/clipboard/src/windows/wf_cliprdr.c żąda tej liczby bajtów zdalnego pliku przez cliprdr_send_request_filecontents, a następnie wykonuje CopyMemory(pv, clipboard->req_fdata, clipboard->req_fsize), gdzie req_fsize jest pobierane dosłownie z odpowiedzi CLIPRDR FileContentsResponse od peera i nigdy nie jest ograniczane do cb w całym łańcuchu. Jedyne porównanie długości w funkcji, req_fsize < cb, obsługuje przypadek krótkiego odczytu i jest oceniane po już wykonanym kopiowaniu. Złośliwy lub skompromitowany peer, który odpowiada na mały odczyt zawartości pliku z nadmiernie dużą odpowiedzią, zapisuje dane wybrane przez atakującego poza końcem bufora sterty konsumenta wklejania, gdy lokalny użytkownik wkleja zawartość pliku ze schowka oferowaną przez zdalną stronę.
Ocena ryzyka
Ryzyko obejmuje zdalne wykonanie kodu lub awarię aplikacji konsumenta wklejania (np. explorer.exe) w kontekście lokalnego użytkownika, co może prowadzić do naruszenia integralności systemu i potencjalnej eskalacji uprawnień.
Rekomendacja
Zaleca się aktualizację RustDesk do wersji zawierającej poprawkę, która ogranicza req_fsize do rozmiaru bufora cb, oraz unikanie wklejania zawartości schowka z niezaufanych źródeł zdalnych.
Inne podatności w RustDesk
Zobacz wszystkie- CVE-2026-100417Niskie
RustDesk przed wersją 1.5.0 w systemie Windows nie egzekwuje opcji jednokierunkowego transferu plików w przypadku żądań plików ze schowka od partnera, co pozwala uwierzytelnionym partnerom na odczyt plików ze schowka hosta. Atakujący mogą wysyłać komunikaty FormatDataRequest i FileContentsRequest, aby pobrać skopiowane pliki, zgadując identyfikator formatu FileGroupDescriptorW.
- CVE-2026-100388Średnie
RustDesk w wersjach przed 1.5.0 nieprawidłowo weryfikuje uprawnienia do transferu plików w przychodzących wiadomościach schowka plików w handlerze Cliprdr na Linuksie i macOS. Uwierzytelnieni zdalni peerzy z wyłączonymi uprawnieniami do transferu plików mogą umieszczać pliki w schowku hosta i pobierać skopiowane pliki oraz zawartość z ogólnoprocesowego bufora schowka.
- CVE-2026-73108Wysokie
RustDesk przed wersją 1.4.7 ma podatność na niekontrolowaną alokację pamięci w BytesCodec. Przed uwierzytelnieniem dekoder ufa długości ładunku w nagłówku ramki i rezerwuje pamięć przed otrzymaniem danych, co pozwala na wyczerpanie pamięci przez wiele połączeń TCP.
- CVE-2026-73102Średnie
RustDesk w wersjach od 1.3.9 do 1.4.9 zawiera podatność typu path traversal w kodzie obsługi wklejania plików na macOS. Zdalny peer może zapisywać pliki poza zamierzonym katalogiem docelowym, używając komponentów ścieżki nadrzędnej lub ścieżek bezwzględnych.
- CVE-2026-57850Wysokie
RustDesk przed wersją 1.4.9 nie egzekwuje po stronie serwera zakresu autoryzowanego połączenia sesji. Uwierzytelniony zdalny peer z ograniczonym typem sesji (FileTransfer, PortForward, ViewCamera lub Terminal) może wysyłać komunikaty sterujące i opcje logowania zarezerwowane dla pełnej sesji zdalnej.
- CVE-2026-58056Wysokie
Podatność w RustDesk umożliwia użytkownikowi posiadającemu jedynie autoryzację do transferu plików na wysyłanie zdarzeń klawiatury i myszy oraz dostęp do niechronionych funkcji przechwytywania ekranu. Dzieje się tak, ponieważ komunikaty sterujące są filtrowane na podstawie flag per-capability, a sesja transferu plików nie czyści tych flag po zakończeniu.
Oryginalny opis (angielski, źródło NVD)
RustDesk's Windows clipboard redirection copies a peer-supplied length into a fixed-size caller buffer without an upper bound check. When an OLE paste consumer such as explorer.exe calls IStream::Read with a buffer of cb bytes, CliprdrStream_Read in libs/clipboard/src/windows/wf_cliprdr.c requests that many bytes of a remote file through cliprdr_send_request_filecontents and then executes CopyMemory(pv, clipboard->req_fdata, clipboard->req_fsize), where req_fsize is taken verbatim from the peer's CLIPRDR FileContentsResponse by wf_cliprdr_server_file_contents_response (req_fsize = fileContentsResponse->cbRequested) and is never clamped to cb anywhere in the chain. The function's only length comparison, req_fsize < cb, handles the short-read case and is evaluated after the copy has already occurred. A malicious or compromised peer that answers a small file-contents read with an oversized response therefore writes attacker-chosen data past the end of the paste consumer's heap buffer when the local user pastes clipboard file contents offered by the remote side. The file is a fork of FreeRDP's client/Windows/wf_cliprdr.c, where the same defect is CVE-2026-68579, fixed in FreeRDP 3.30.0.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

