„`html
Zusammenfassung
CVE-2026-64621 beschreibt eine Double-Free-Schwachstelle in FreeRDP vor Version 3.28.0. Die Sicherheitslücke befindet sich in der Funktion freerdp_client_rdp_file_apply_to_settings() und wird durch das Parsen des Feldes selectedmonitors in .rdp-Dateien ausgelöst. Ein Angreifer kann durch eine manipulierte RDP-Verbindungsdatei einen Speicherzugriffsfehler verursachen.
Betroffene Systeme
Betroffen sind alle FreeRDP-Versionen der 3.x Serie von 3.0 bis einschließlich 3.27.1. Alle Standard-CLI-Clients sind anfällig:
- xfreerdp
- sdl-freerdp
- wlfreerdp
Die Schwachstelle betrifft Systeme mit lokal gespeicherten oder heruntergeladenen .rdp-Dateien.
Technische Details
Die Vulnerabilität liegt in der Speicherverwaltung des MonitorIds-Arrays. Bei der Verarbeitung des selectedmonitors-Feldes wird das Array über das settings-Objekt allokiert. Im Fehlerfall bei strtoul-Verarbeitung wird ein nicht-owning Pointer auf dieses Array freigegeben, ohne den Zeiger settings->MonitorIds zu löschen.
Dies führt zu einem Dangling Pointer. Während des Teardown-Prozesses versucht freerdp_settings_free(), denselben Speicherbereich erneut freizugeben – eine klassische Double-Free-Bedingung. Ein Angreifer kann durch oversized Monitor-Token in der .rdp-Datei die Größe des Speicherzugriffs kontrollieren.
Empfohlene Massnahmen
- Sofortmassnahmen: FreeRDP auf Version 3.28.0 oder neuer aktualisieren
- Benutzer sollten .rdp-Dateien nur aus vertrauenswürdigen Quellen öffnen
- Deaktivieren Sie FreeRDP-Clients in Umgebungen, wo ein Upgrade nicht sofort möglich ist
- Implementieren Sie File-Type-Beschränkungen für .rdp-Dateien
Bewertung
Schweregrad: High (CVSS 7.3)
Die Schwachstelle ermöglicht lokale Code-Execution durch Speicherkorruption. Der Angriffsvektor ist lokal, erfordert aber nur das Öffnen einer manipulierten Datei. Dies stellt ein erhebliches Risiko dar, insbesondere in Umgebungen mit Benutzer-Zugriffen auf externe Ressourcen.
„`