Логотип exploitDog
Консоль
Логотип exploitDog

exploitDog

redhat логотип

CVE-2026-64620

Опубликовано: 20 июл. 2026
Источник: redhat
CVSS3: 8.1

Описание

FreeRDP before 3.28.0 (affected <=3.27.1) contains a heap-based buffer overflow in crypto_rsa_common() (libfreerdp/crypto/crypto.c). The function writes the modular-exponentiation result into the caller's output buffer via BN_bn2bin() and only afterward checks output_length > out_length, so out-of-bounds bytes are written before the bounds check. On the server side, when a client selects RDP Standard Security, the encrypted client random is decrypted into a fixed 32-byte buffer. Because the server publishes its RSA public key, an unauthenticated attacker can forge a ciphertext whose decrypted value is up to the full modulus length (e.g. 256 bytes for RSA-2048), overflowing the 32-byte heap buffer by up to ~224 attacker-controlled bytes pre-authentication, resulting in denial of service.

A heap-based buffer overflow in FreeRDP's crypto_rsa_common() allows an unauthenticated remote attacker to trigger a denial of service or potential remote code execution. By sending a crafted ciphertext during RDP Standard Security key establishment, the attacker can force a data write before the size is validated, resulting in memory corruption.

Отчет

An unauthenticated remote attacker can trigger a heap buffer overflow in FreeRDP by sending a crafted ciphertext during key establishment. Red Hat rates this vulnerability as Important rather than Critical due to inherent mitigations in Red Hat environments. Specifically, RHEL's built-in memory defenses (such as glibc heap hardening) reliably reduce the threat of remote code execution down to a localized service crash (Denial of Service). Furthermore, the flaw is only reachable if an administrator explicitly configures the server to use the non-default, legacy "RDP Standard Security.

Меры по смягчению последствий

To mitigate, explicitly disable legacy RDP Standard Security and enforce Network Level Authentication (NLA/TLS) on the server. Additionally, restrict network access to trusted clients via firewalls, or disable the FreeRDP service entirely if not needed, remembering to restart the service to apply any configuration changes.

Затронутые пакеты

ПлатформаПакетСостояниеРекомендацияРелиз
Red Hat Enterprise Linux 10freerdpAffected
Red Hat Enterprise Linux 6freerdpOut of support scope
Red Hat Enterprise Linux 7freerdpAffected
Red Hat Enterprise Linux 8freerdpAffected
Red Hat Enterprise Linux 9freerdpAffected

Показывать по

Дополнительная информация

Статус:

Important
Дефект:
CWE-120
https://bugzilla.redhat.com/show_bug.cgi?id=2502752FreeRDP: FreeRDP: Remote code execution or denial of service via heap-based buffer overflow

8.1 High

CVSS3

Связанные уязвимости

CVSS3: 9.8
ubuntu
12 дней назад

FreeRDP before 3.28.0 (affected <=3.27.1) contains a heap-based buffer overflow in crypto_rsa_common() (libfreerdp/crypto/crypto.c). The function writes the modular-exponentiation result into the caller's output buffer via BN_bn2bin() and only afterward checks output_length > out_length, so out-of-bounds bytes are written before the bounds check. On the server side, when a client selects RDP Standard Security, the encrypted client random is decrypted into a fixed 32-byte buffer. Because the server publishes its RSA public key, an unauthenticated attacker can forge a ciphertext whose decrypted value is up to the full modulus length (e.g. 256 bytes for RSA-2048), overflowing the 32-byte heap buffer by up to ~224 attacker-controlled bytes pre-authentication, resulting in denial of service.

CVSS3: 9.8
nvd
12 дней назад

FreeRDP before 3.28.0 (affected <=3.27.1) contains a heap-based buffer overflow in crypto_rsa_common() (libfreerdp/crypto/crypto.c). The function writes the modular-exponentiation result into the caller's output buffer via BN_bn2bin() and only afterward checks output_length > out_length, so out-of-bounds bytes are written before the bounds check. On the server side, when a client selects RDP Standard Security, the encrypted client random is decrypted into a fixed 32-byte buffer. Because the server publishes its RSA public key, an unauthenticated attacker can forge a ciphertext whose decrypted value is up to the full modulus length (e.g. 256 bytes for RSA-2048), overflowing the 32-byte heap buffer by up to ~224 attacker-controlled bytes pre-authentication, resulting in denial of service.

CVSS3: 9.8
debian
12 дней назад

FreeRDP before 3.28.0 (affected <=3.27.1) contains a heap-based buffer ...

CVSS3: 9.8
github
12 дней назад

FreeRDP before 3.28.0 (affected <=3.27.1) contains a heap-based buffer overflow in crypto_rsa_common() (libfreerdp/crypto/crypto.c). The function writes the modular-exponentiation result into the caller's output buffer via BN_bn2bin() and only afterward checks output_length > out_length, so out-of-bounds bytes are written before the bounds check. On the server side, when a client selects RDP Standard Security, the encrypted client random is decrypted into a fixed 32-byte buffer. Because the server publishes its RSA public key, an unauthenticated attacker can forge a ciphertext whose decrypted value is up to the full modulus length (e.g. 256 bytes for RSA-2048), overflowing the 32-byte heap buffer by up to ~224 attacker-controlled bytes pre-authentication, resulting in denial of service.

CVSS3: 9.8
fstec
26 дней назад

Уязвимость функции crypto_rsa_common() файла libfreerdp/crypto/crypto.c RDP-клиента FreeRDP, позволяющая нарушителю выполнить произвольный код или вызвать отказ в обслуживании

8.1 High

CVSS3