---
id: CVE-2026-91958
title: >-
  FreeRDP versions before 3.31.0 fail to validate MonitorIds array values when
  parsing RDP connection files, allowing unbounded array indexing in
  xf_detect_monitors
summary: >-
  FreeRDP versions before 3.31.0 fail to validate MonitorIds array values when
  parsing RDP connection files, allowing unbounded array indexing in
  xf_detect_monitors. Attackers can craft a malicious RDP file with an
  out-of-range selectedmon…
severity: medium
cvss: 6.6
cvssVector: 'CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:H'
cwe:
  - CWE-125
  - CWE-787
vendor: freerdp
product: freerdp
affected:
  - 'freerdp >= 3.11.0, < 3.31.0'
patched:
  - freerdp 3.31.0
published: '2026-09-15'
updated: '2026-09-24'
sourceUpdated: '2026-09-24T12:17:14.823'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-91958'
references:
  - url: 'https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-23pf-q83q-x45r'
    label: disclosure@vulncheck.com
  - url: >-
      https://www.vulncheck.com/advisories/freerdp-3.11.0-through-3.30.0-heap-buffer-overflow-via-monitor-index
    label: disclosure@vulncheck.com
  - url: 'https://github.com/FreeRDP/FreeRDP/security/advisories/GHSA-23pf-q83q-x45r'
    label: 134c704f-9b21-4f2e-91b3-4a467353bcc0
  - url: >-
      https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-91958.json
  - url: 'https://access.redhat.com/security/cve/CVE-2026-91958'
  - url: 'https://bugzilla.redhat.com/show_bug.cgi?id=2533958'
  - url: 'https://www.cve.org/CVERecord?id=CVE-2026-91958'
  - url: 'https://nvd.nist.gov/vuln/detail/CVE-2026-91958'
tags:
  - nvd
  - cve.org
  - exploit-available
  - csaf
  - vex
  - red-hat
epss: 0.00152
epssPercentile: 0.03631
exploitAvailable: true
ssvc:
  exploitation: poc
  automatable: 'no'
  technicalImpact: partial
  timestamp: '2026-09-15T15:59:07.176927Z'
ingestedAt: '2026-09-15T15:39:12.918Z'
---

## Overview

FreeRDP versions before 3.31.0 fail to validate MonitorIds array values when parsing RDP connection files, allowing unbounded array indexing in xf_detect_monitors. Attackers can craft a malicious RDP file with an out-of-range selectedmonitors value to trigger out-of-bounds heap read and write operations when opened in xfreerdp.

## Affected

- `freerdp >= 3.11.0, < 3.31.0`

## Remediation

Upgrade past the affected range:

- `freerdp 3.31.0`

## Vendor advisories

- **Red Hat VEX** · Moderate · affected: Red Hat Enterprise Linux 10 · no fix planned: Red Hat Enterprise Linux 10 · updated 2026-09-15 · [vex](https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-91958.json)
