FreeRDP — это бесплатная реализация протокола удаленного рабочего стола. До версии 3.23.0 проверка отсутствующих границ в `smartcard_unpack_read_size_align()` (`libfreerdp/utils/smartcard_pack.c:1703`) позволяла злонамеренному серверу RDP аварийно завершать работу клиента FreeRDP через доступный `WINPR_ASSERT` → `abort()`. Сбой происходит в вышестоящих сборках, где `WITH_VERBOSE_WINPR_ASSERT=ON` (по умолчанию во FreeRDP 3.22.0 / текущие настройки WinPR CMake по умолчанию).
Перенаправление смарт-карт должно быть явно разрешено пользователем (например, `xfreerdp /smartcard`; `/smartcard-logon` подразумевает `/smartcard`). Версия 3.23.0 устраняет проблему.
Показать оригинальное описание (EN)
FreeRDP is a free implementation of the Remote Desktop Protocol. Prior to version 3.23.0, a missing bounds check in `smartcard_unpack_read_size_align()` (`libfreerdp/utils/smartcard_pack.c:1703`) allows a malicious RDP server to crash the FreeRDP client via a reachable `WINPR_ASSERT` → `abort()`. The crash occurs in upstream builds where `WITH_VERBOSE_WINPR_ASSERT=ON` (default in FreeRDP 3.22.0 / current WinPR CMake defaults). Smartcard redirection must be explicitly enabled by the user (e.g., `xfreerdp /smartcard`; `/smartcard-logon` implies `/smartcard`). Version 3.23.0 fixes the issue.
Характеристики атаки
Последствия
Строка CVSS v4.0