CyberSecBulletin
CVE-2026-64620NVD status: Analyzed

FreeRDP: Heap-based Buffer Overflow

CVE-2026-64620 is a critical-severity heap-based buffer overflow vulnerability in FreeRDP, with a CVSS 3.1 base score of 9.1 out of 10. It can be exploited remotely over the network by an unauthenticated attacker, without any action from a user. The record lists version 3.28.0 as the first without the flaw, so updating FreeRDP to that release or later removes the exposure. There is no confirmed exploitation so far. EPSS estimates a 0.91% chance of exploitation within 30 days, higher than 61% of scored CVEs.

Patch this week

Critical severity: a successful attack would have severe impact.

What to do

  1. Update FreeRDP to 3.28.0 or a later version.
  2. Read the advisory on github.com for workarounds and exact fixed builds.
  3. Until you can update, restrict network access to the affected service so it is not reachable from untrusted networks.

Affected products and versions

VendorProductAffected versionsFixed in
FreeRDPFreeRDPbefore 3.28.03.28.0

Version data comes from the organisation that assigned the CVE. Confirm against the vendor advisory before deciding you are unaffected.

How the severity score breaks down

Attack vector
NetworkCan be exploited remotely over a network, including the internet.
Attack complexity
LowNo special conditions are needed; the attack works reliably.
Privileges required
NoneNo account or login is needed.
User interaction
NoneNo action by a victim is required.
Scope
UnchangedImpact stays within the vulnerable component.
Confidentiality
NoneNo data is disclosed.
Integrity
HighData or code can be modified at will.
Availability
HighThe component can be taken down completely.

Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H. Scored by NVD.

Scoring systemScoreSeverityScored by
CVSS 4.09.3CriticalCNA (vulncheck.com)
CVSS 3.19.8CriticalCNA (vulncheck.com)
CVSS 3.19.1CriticalNVD

Official description

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.

Source: the CVE record as published by its numbering authority, via NVD and CVE.org.

The underlying weakness: Heap-based Buffer Overflow

The product writes past the end of a buffer that was allocated on the heap.

How developers prevent this class of flaw

  • Pre-design: Use a language or compiler that performs automatic bounds checking.
  • Use an abstraction library to abstract away risky APIs. Not a complete solution.
  • Use automatic buffer overflow detection mechanisms that are offered by certain compilers or compiler extensions. Examples include: the Microsoft Visual Studio /GS flag, Fedora/Red Hat FORTIFY_SOURCE GCC flag, StackGuard, and ProPolice, which provide various mechanisms including canary-based detection and range/index checking. D3-SFCV (Stack Frame Canary Validation) from D3FEND discusses canary-based detection in detail.

More Heap-based Buffer Overflow vulnerabilities (CWE-122)

Timeline

  1. CVE record published.
  2. CISA published its SSVC assessment (exploitation: none, automatable: yes, technical impact: total).
  3. Record last changed materially (score, affected products, status or references).

References

Other vulnerabilities in FreeRDP

All FreeRDP vulnerabilities

Recent Heap-based Buffer Overflow vulnerabilities

Spotted an error? Tell us.