FreeRDP до версии 3.29.0 содержит уязвимость чрезмерного раскрытия буфера в транспортном шлюзе WebSocket (libfreerdp/core/gateway/websocket.c). Ответ Pong клиента повторно использует фиксированный поток ответа длиной 1024 байта, длина которого не привязана к фактической полученной полезной нагрузке Ping, поэтому злоумышленный узел шлюза/WebSocket, отправляющий непустой управляющий кадр Ping, заставляет клиента ответить слишком длинным Pong, который раскрывает байты сверх полученной полезной нагрузки (узел получает ключ маскировки и может демаскировать ответ). Ping нулевой длины достигает утверждения и завершает работу клиента (отказ в обслуживании).
Показать оригинальное описание (EN)
FreeRDP before 3.29.0 contains a buffer over-disclosure vulnerability in the gateway WebSocket transport (libfreerdp/core/gateway/websocket.c). The client's Pong reply reuses a fixed 1024-byte response stream whose length is not sealed to the actual received Ping payload, so a malicious gateway/WebSocket peer sending a non-empty Ping control frame causes the client to reply with an overlong Pong that discloses bytes beyond the received payload (the peer receives the masking key and can unmask the reply). A zero-length Ping reaches an assertion and terminates the client (denial of service).
Характеристики атаки
Последствия
Строка CVSS v4.0