
# CVE-2026-19089 研究リポジトリ Tyche Softwares 製 WooCommerce Product Input Fields におけるリモートコマンド実行の脆弱性に関する研究リポジトリです。認可されたラボテスト用のドラフト研究スクリプトとメモが含まれています。

Product Input Fields for WooCommerce < 2.0.2 - 未認証の任意ファイルアップロード
Tyche Softwares の Product Input Fields for WooCommerce プラグインは、フィールドの許可タイプ設定が空のままの場合、アップロードされたファイルタイプを検証しません(同プラグインのドキュメントではこれを「すべてのファイルを受け入れる」と宣伝しています)。未認証のゲストは、カートへの追加時に任意のファイルを添付し、チェックアウトを完了し、プラグインのアップロードディレクトリ配下からそのオブジェクトを取得できます。そのディレクトリツリーを PHP として実行するホストでは、同じパスがリモートコード実行となります。
| CVE | CVE-2026-19089 |
| CWE | CWE-434: 危険なタイプのファイルの無制限アップロード |
| CVSS 3.1 | 9.8 Critical (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) |
| ベンダー | Tyche Softwares |
| 製品 | Product Input Fields for WooCommerce (product-input-fields-for-woocommerce) |
| 影響を受けるバージョン | 2.0.0 から 2.0.1 まで(2.0.2 より前のプラグイン) |
| 修正済み | 2.0.2 |
| 関連 | CVE-2024-13359(1.12.0 までの限定的な AFU) |
| CNA | WPScan |
このリポジトリには、認可されたテスト専用の Abraxas Labs による概念実証が含まれています - ベンダーへの開示、ラボでの再現、または評価を書面で許可されたホストに限ります。
私は、Product Input Fields 2.0.1、ゲストチェックアウトと代金引換、および許可タイプが空のグローバル File フィールドを備えたローカルの WooCommerce ショップに対してクライアントを実行しました。このスクリプトはアップロードとチェックアウトを段階的に実行しますが、ウェブシェルは同梱していません。
File タイプの商品入力フィールドは、ストアフロントのカート追加フォームに alg_wc_pif_global_* / alg_wc_pif_local_* として紐付けられます。許可されるファイルタイプが空の場合、プラグインはゲストが送信したものをそのまま保存します。注文が成功すると、ファイルは wp-content/uploads/product_input_fields/ 配下に永続化され、通常は {item_id}_{original_filename} という名前になります。
以下のすべてに該当する場合、サイトは露出します:
これらの条件下では、影響は Web ユーザーとしての任意ファイル書き込みです。アップロードディレクトリが実行可能であれば、それはサイトの乗っ取りとなります。
クライアントはストアフロント上にとどまります。PHP ウェブシェルやリバースシェルは含まれていません。
GET し、PIF ファイルフィールド名と add-to-cart の商品 ID を収集します。image/png)を付けて add-to-cart に POST します。デフォルトのファイル名は pifx.php であるため、ラボではプラグインが危険な拡張子を許可したかどうかを確認できます。このマーカーは実行可能な PHP ではありません。/?wc-ajax=checkout を介した代金引換でのゲストチェックアウト。redirect を追跡し、wp-content/uploads/product_input_fields/{1..499}_{name} をスイープして POST x を行い、SHELL_OK の証拠を探します。[ LIVE ] はその証拠が返ってきた場合にのみ表示されます。CVE-2026-19089-WooCommerce-Tyche-Abraxas-Labs.py は小さな Python 3 クライアントです:カラーの figlet バナー、その後に上記の 4 ステップを実行します。コマンドラインで渡した URL にのみ通信します。
requestsHomebrew Python(PEP 668)を使用する macOS では、システムの pip install ではなく venv を使用してください:
python3 -m venv .venv
.venv/bin/pip install requests
CVE-2026-19089-WooCommerce-Tyche-Abraxas-Labs.py <base_url> <product_url> [shell_name]
.venv/bin/python3 CVE-2026-19089-WooCommerce-Tyche-Abraxas-Labs.py \
https://shop.example \
https://shop.example/product/demo/
3 番目の引数はアップロードするファイル名を設定します。デフォルトは pifx.php です。
引数が 2 つ未満の場合、スクリプトはバナーと使用方法を表示し、1 で終了します。これはクライアントが起動することを確認する安全な方法です。
ゲストチェックアウトと使用可能な決済ゲートウェイを備えた WooCommerce(クライアントは payment_method=cod を送信します)、2.0.2 より前の Product Input Fields、および任意のタイプを受け入れる File フィールドを持つ公開済み商品。2.0.2 以降、または厳格な許可リストを持つフィールドに対しては、オブジェクトは .php アップロードとして配置されないはずです。
所有していないホスト、またはテストする書面による認可を持たないホストに対してこれを実行しないでください。
wp-content/uploads/product_input_fields/(および一部のレイアウトでは woocommerce_uploads/alg_uploads/product_input_fields/)を検査し、予期しないオブジェクトを削除し、wp-admin のシークレットをローテーションしてください。研究および教育目的での使用に限ります。このリポジトリをホストする当事者と対象システムの所有者の両方から明示的な書面による許可を得ていない限り、いかなるホストに対してもこの資料を実行、展開、または使用しないでください。
Abraxas Labs · abraxaslabs.tech · github.com/abraxas · @abraxas_null