
CVE-2026-102425 の Python PoC: Joomla Balbooa Forms (com_baforms) における、送信後の PHP eval() 内でのフィールドショートコードインジェクションを悪用した未認証 RCE。チェック、エクスプロイト、マスモードに対応。
CVE-2026-102425 の Python 3 PoC — balbooa.com の Balbooa Forms Joomla 拡張機能 — オプションの 送信後 PHP アクション (eval()) における フィールドショートコードインジェクション による 未認証リモートコード実行。
| | |
|---|---|
| PoCbit | https://pocbit.org/pocs/cve-2026-102425 |
| CVE.org | https://www.cve.org/CVERecord?id=CVE-2026-102425 (PUBLISHED 2026-09-29) |
| NVD | https://nvd.nist.gov/vuln/detail/CVE-2026-102425 |
| CNA | Joomla! Project |
| Component | com_baforms |
| Affected | 1.0.0 – 2.4.3.3 |
| Fix | ≥ 2.4.3.4 |
| CWE | CWE-94 (Code Injection) |
| CVSS 4.0 | 9.5 Critical — 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 |
| Finders | Łukasz Rybak, Sergiy Tryzhychynskyi |
Balbooa Forms では、管理者が 公開フォーム送信後に実行される PHP コード を定義できます。その PHP には フォームフィールドショートコード を含めることができます。eval() の前に、コンポーネントは各ショートコードを 訪問者が送信した生の値 に置き換えます (エスケープなし)。
CVE-2026-102425 は、以下の すべて が成立する場合に悪用可能です:
拡張機能のバージョンが < 2.4.3.4。
公開 フォームがオプションの 送信後 PHP アクションを使用している。
その PHP が 二重引用符で囲まれた PHP 文字列内で攻撃者が制御するフィールドショートコードを補間している (古典的なブレイクアウト: ";echo …;//)。
CVSS AT:P (Attack Requirements: Present) は、脆弱な 設定 が存在する必要があることを意味します — コンポーネントをインストールするだけでは不十分です。
これは CVE-2026-67364 ([URL パラメータ = X] クエリショートコード、2.4.3.2 で修正) では ありません。その別の問題を意図的にテストする場合にのみ --include-67364 を使用してください。
同じコンポーネント、同じリリーストレイン: CVE-2026-102424、-101127、-101112、-101126 もパッチを適用してください (mySites.guru を参照)。
| Mode | Behavior |
|------|----------|
| check | com_baforms、マニフェスト version、affected_version (< 2.4.3.4)、loadAjaxForm / embed による public_form_detected |
| check デフォルトヒット | 影響を受ける かつ公開フォーム HTML が読み込まれる場合 のみ hits.txt (エクスプロイトキュー) |
| check --all-affected | 脆弱なバージョンのホストも一覧表示 (ノイズの多い FOFA トリアージ) |
| check --aggressive | より多くのパス、loadAjaxForm ID スキャン、より多くのフォームプローブ |
| exploit | form.message 送信 (モダン) + レガシータスク; フィールドショートコード ペイロード (二重引用符ブレイクアウト) |
| exploit --include-67364 | URL パラメータショートコードの試行を追加 (67364 クラス) |
| exploit --aggressive | 完全スクレイプ + loadAjaxForm ディスカバリ (低速) |
| --lab | ローカルモック: 二重引用符 eval + フィールドインジェクション |
| mass | --list + -j → JSONL、hits.txt、exploited.txt |
JSONL 行には cve_state、cve_record、nvd、cvss_v4_vector、attack_requirements、pocbit_page が含まれます。
exploit では、PoC はまず同じフィールドショートコード RCE を介して file_put_contents を試み、一般的な Joomla パス (images/baforms/uploads/、images/、…) の下にローカルの up.php (マルチパートアップローダー) をドロップし、送信レスポンスで POCBIT-102425-OK を確認します。ファイルが Web から見える場合、shell_url が出力され、exploited.txt に追加されます。
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
インタラクティブな一括 check (hits.txt、12 スレッド、詳細表示):

| Step | Request |
|------|---------|
| フォーム読み込み | GET index.php?option=com_baforms&task=form.loadAjaxForm&id=N |
| 送信 | フォームの action に POST、task=form.message、form-id、フィールド (ba-form.js を参照) |
| 回避 | 多くの J4 サイトのフロントタスクで format=json (無効なコントローラー JSON) |
レガシーサイトでは view=form&form_id=N または form.submitForm を使用する場合があります。
Balbooa Forms を 2.4.3.4+ にアップグレードします。
パッチが適用されるまで、フィールドまたは URL ショートコードを埋め込む 送信後 PHP アクションを削除します。
公開送信で reCAPTCHA を有効にします。
フォーム、管理者ユーザー、および images/baforms/uploads/ を監査します。
許可されたセキュリティテストのみ。
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