
Python-PoC für CVE-2026-102425: nicht authentifizierte RCE in Joomla Balbooa Forms (com_baforms) über Field-Shortcode-Injection in PHP eval() nach dem Absenden. Check-, Exploit- und Mass-Modus.
Python 3 PoC für CVE-2026-102425 — balbooa.com Balbooa Forms Joomla-Erweiterung — nicht authentifizierte Remote-Code-Ausführung über Feld-Shortcode-Injection in optionalen PHP-nach-Übermittlung-Aktionen (eval()).
| | |
|---|---|
| PoCbit | https://pocbit.org/pocs/cve-2026-102425 |
| CVE.org | https://www.cve.org/CVERecord?id=CVE-2026-102425 (VERÖFFENTLICHT 2026-09-29) |
| NVD | https://nvd.nist.gov/vuln/detail/CVE-2026-102425 |
| CNA | Joomla! Project |
| Komponente | com_baforms |
| Betroffen | 1.0.0 – 2.4.3.3 |
| Fix | ≥ 2.4.3.4 |
| CWE | CWE-94 (Code Injection) |
| CVSS 4.0 | 9.5 Kritisch — CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H |
| Finder | Łukasz Rybak, Sergiy Tryzhychynskyi |
Balbooa Forms ermöglicht Administratoren, PHP-Code zu definieren, der nach einer öffentlichen Formularübermittlung ausgeführt wird. Dieses PHP kann Formularfeld-Shortcodes enthalten. Vor eval() ersetzt die Komponente jeden Shortcode durch den rohen Wert, der vom Besucher übermittelt wurde (keine Escapierung).
CVE-2026-102425 ist ausnutzbar, wenn alle folgenden Bedingungen erfüllt sind:
Erweiterungsversion < 2.4.3.4.
Ein öffentliches Formular verwendet die optionale PHP-nach-Übermittlung-Aktion.
Dieses PHP interpoliert einen angreiferkontrollierten Feld-Shortcode innerhalb eines doppelt-quotierten PHP-Strings (klassischer Ausbruch: ";echo …;//).
CVSS AT:P (Attack Requirements: Present) bedeutet, dass die verwundbare Konfiguration vorhanden sein muss — die alleinige Installation der Komponente reicht nicht aus.
Dies ist nicht CVE-2026-67364 ([URL-Parameter = X] Query-Shortcode, behoben in 2.4.3.2). Verwenden Sie --include-67364 nur, wenn Sie dieses separate Problem absichtlich testen.
Gleiche Komponente, gleicher Release-Zug: ebenfalls patchen CVE-2026-102424, -101127, -101112, -101126 (siehe mySites.guru).
| Modus | Verhalten |
|------|----------|
| check | com_baforms, Manifest-Version, affected_version (< 2.4.3.4), public_form_detected via loadAjaxForm / Embed |
| check Standard-Treffer | hits.txt nur wenn betroffen und ein öffentliches Formular-HTML geladen wird (Exploit-Warteschlange) |
| check --all-affected | Listet auch jeden Host mit verwundbarer Version auf (lautstarke FOFA-Triage) |
| check --aggressive | Mehr Pfade, loadAjaxForm-ID-Scan, mehr Formular-Probes |
| exploit | form.message-Übermittlung (modern) + Legacy-Tasks; Feld-Shortcode-Payloads (Doppelquote-Ausbruch) |
| exploit --include-67364 | Fügt URL-Parameter-Shortcode-Versuche hinzu (67364-Klasse) |
| exploit --aggressive | Vollständiges Scraping + loadAjaxForm-Erkennung (langsamer) |
| --lab | Lokaler Mock: doppelt-quotiertes eval + Feld-Injection |
| mass | --list + -j → JSONL, hits.txt, exploited.txt |
JSONL-Zeilen enthalten cve_state, cve_record, nvd, cvss_v4_vector, attack_requirements, pocbit_page.
Bei exploit versucht der PoC zunächst file_put_contents über dieselbe Feld-Shortcode-RCE, um eine lokale up.php (Multipart-Uploader) unter gängigen Joomla-Pfaden (images/baforms/uploads/, images/, …) abzulegen, und bestätigt dann POCBIT-102425-OK in der Submit-Antwort. Wenn die Datei web-sichtbar ist, wird shell_url ausgegeben und an exploited.txt angehängt.
Python 3.9+
pip install requests urllib3 colorama
cd CVE-2026-102425
python poc.py # interactive
python poc.py hits.txt # mass exploit
python poc.py --check fofa_hosts.txt # mass scan → hits.txt
python poc.py -u https://site.tld
python poc.py --lab
python poc.py --help
# Full CLI / JSONL: python _engine.py --help
Interaktiver Massen-check (hits.txt, 12 Threads, verbose):

| Schritt | Anfrage |
|------|---------|
| Formular laden | GET index.php?option=com_baforms&task=form.loadAjaxForm&id=N |
| Übermitteln | POST an Formular-action mit task=form.message, form-id, Feldern (siehe ba-form.js) |
| Vermeiden | format=json bei Front-Tasks auf vielen J4-Seiten (ungültiges Controller-JSON) |
Legacy-Seiten verwenden möglicherweise view=form&form_id=N oder form.submitForm.
Aktualisieren Sie Balbooa Forms auf 2.4.3.4+.
Entfernen Sie PHP-nach-Übermittlung-Aktionen, die Feld- oder URL-Shortcodes einbetten, bis gepatcht.
Aktivieren Sie reCAPTCHA bei öffentlichen Übermittlungen.
Prüfen Sie Formulare, Admin-Benutzer und images/baforms/uploads/.
Nur autorisiertes Sicherheitstesting.
CVE-2026-102425 PoC (PoCbit) — Joomla Balbooa Forms (com_baforms) 1.0.0–2.4.3.3: unauth RCE via field shortcode in PHP-after-submission eval() (CVSS 4.0 9.5 AT:P). check + exploit + mass. https://pocbit.org/pocs/cve-2026-102425