Bug 2503156 - CVE-2026-64620 freerdp2: FreeRDP: Remote code execution or denial of service via heap-based buffer overflow [fedora-all]
Summary: CVE-2026-64620 freerdp2: FreeRDP: Remote code execution or denial of service ...
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Fedora
Classification: Fedora
Component: freerdp2
Version: rawhide
Hardware: Unspecified
OS: Unspecified
high
high
Target Milestone: ---
Assignee: Neal Gompa
QA Contact:
URL:
Whiteboard: {"flaws": ["3393576c-0c99-4999-a24e-1...
Depends On:
Blocks: CVE-2026-64620
TreeView+ depends on / blocked
 
Reported: 2026-07-21 10:11 UTC by Srikanth Balasubramanian
Modified: 2026-07-23 11:58 UTC (History)
4 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2026-07-23 11:58:17 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Srikanth Balasubramanian 2026-07-21 10:11:55 UTC
Disclaimer: Community trackers are created by Red Hat Product Security team on a best effort basis. Package maintainers are required to ascertain if the flaw indeed affects their package, before starting the update process.

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.

Comment 1 Ondrej Holy 2026-07-23 11:58:17 UTC
FreeRDP 2.x does not contain the out_length parameter or the fixed 32-byte server buffer pattern introduced in 3.x refactoring.


Note You need to log in before you can comment on or make changes to this bug.