
Lokaler PoC für CVE-2026-54686, der DCS-Lebenszyklus-Hook-Spoofing im Warp-Terminal demonstriert. Simuliert gespoofte CWD- und SSH-Metadatenakzeptanz in verwundbaren Modellen, mit Ablehnung durch das reparierte Modell.
Dieses Repository ist ein sicherer lokaler PoC für CVE-2026-54686, basierend auf der öffentlichen Sicherheitsempfehlung von Warp GHSA-9w2v-jhww-vm85.
Die ungepatchte Version von Warp hat bei bestimmten Zustandsänderungs-DCS-Lebenszyklus-Hooks, die über den PTY-Stream eintreffen, nicht überprüft, ob der Hook von der Warp-Shell-Integration für die aktuelle Sitzung gesendet wurde. Wenn ein Angreifer ein Opfer dazu bringen kann, angreifergesteuerte Terminalausgaben in Warp anzuzeigen, kann er ausgewählte Lebenszyklus-Metadaten fälschen, was sich auf Metadaten auswirken kann, die mit aktiven Blöcken oder SSH-Sitzungen verbunden sind.
Dieser PoC stellt keine Verbindung zu Warp oder SSH-Servern her und führt keine beliebigen Befehle aus. Er erzeugt und analysiert lokal Warp-ähnliche DCS-JSON-Hooks und zeigt, dass im ungepatchten Modell gefälschte CWD- oder SSH-Metadaten übernommen werden, während im gepatchten Modell Zustandsänderungs-Hooks mit nicht registrierter session_id abgelehnt werden.
Dieses Projekt dient ausschließlich Bildungszwecken und ethischen Sicherheitsüberprüfungen. Verwenden Sie es nicht für Tests oder Angriffe in nicht autorisierten Umgebungen.
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:L)>= v0.2021.04.25.23.05.stable_00v0.2026.05.06.15.42.stable_01Bei erfolgreichem Angriff könnte Warp einen vom Angreifer gewählten Pfad als CWD der aktiven Sitzung behandeln. Dies kann sich auf Funktionen auswirken, die auf Pfaden basieren, die von CWD abhängen, sowie auf Kontext- und Sitzungsverhalten.
Außerdem könnten bei gefälschten SSH-Lebenszyklus-Metadaten die von Warp verwalteten Transportmetadaten der SSH-Sitzung durch vom Angreifer kontrollierte Werte ersetzt werden.
Die Warp-Shell-Integration sendet Lebenszyklus-Hooks wie Precmd, CommandFinished, InputBuffer und SSH über DCS-Sequenzen des Terminals an den Client. In der ungepatchten Implementierung fehlte bei einigen Zustandsänderungs-Hooks die Integritätsprüfung, ob der Hook über eine von Warp generierte und für diese Sitzung registrierte session_id verfügt.
Der Patch injiziert eine vom Client generierte, von Null verschiedene session_id in das Bootstrap-Skript und lehnt DCS-Hooks mit Zustandsänderungen ab, deren session_id nicht registriert ist. Auch der SSH-Wrapper wurde geändert: Er authentifiziert lokale SSH-Hooks, registriert eine vom Client generierte Remote-Sitzungs-ID und injiziert diese in das Remote-Bootstrap-Skript.
Python 3 ist erforderlich.
python3 --version
python3 poc.py
Erwartetes Ergebnis:
[!] VULNERABLE: spoofed cwd was accepted.
[!] VULNERABLE: spoofed ssh metadata was accepted.
python3 poc.py --mode fixed
Erwartetes Ergebnis:
[+] FIXED: spoofed cwd was rejected.
[+] FIXED: spoofed ssh metadata was rejected.
python3 poc.py --case cwd
python3 poc.py --case ssh
Mit --show-stream wird der generierte Warp-ähnliche DCS-Stream in Python-repr()-Form ausgegeben. Es werden keine rohen Steuersequenzen an das Terminal ausgegeben.
Aktualisieren Sie auf v0.2026.05.06.15.42.stable_01 oder höher. Laut der öffentlichen Sicherheitsempfehlung gibt es keine vollständige Problemumgehung außer dem Update.