
strongSwan VPN 서버가 CVE-2026-25075에 취약한지 중단을 유발하지 않고 안전하게 탐지합니다. 전체 분석 글은 Bishop Fox 블로그에서 확인하세요.
CVE-2026-25075는 strongSwan의 EAP-TTLS 플러그인에 존재하는 정수 언더플로(integer underflow) 취약점으로, 원격의 인증되지 않은 공격자가 특수하게 조작된 EAP-TTLS 메시지를 통해 IKE 데몬을 충돌시킬 수 있습니다. 이 취약점은 4.5.0부터 6.0.4까지의 모든 strongSwan 버전에 영향을 미치며, 15년 이상의 릴리스에 걸쳐 있습니다.
이 도구는 다음 단계를 통해 비파괴적(non-destructive) 취약점 테스트를 수행합니다:
length=1이지만 데이터 페이로드가 없는 테스트 AVP(Attribute-Value Pair) 전송잘못된 길이 필드를 가졌지만 데이터가 수반되지 않는 AVP 헤더를 전송하면 탐지를 위해 정수 언더플로가 트리거되지만, memcpy(ptr, data, 0)은 no-op이므로 힙 손상(heap corruption)은 발생하지 않습니다. 서버는 안정적인 상태를 유지하며 연결 처리를 계속할 수 있습니다.
git clone https://github.com/BishopFox/CVE-2026-25075-check
cd CVE-2026-25075-check
python3 -m pip install pycryptodome tlslite-ng
<TARGET>:<PORT>에 있는 strongSwan 서버를 테스트합니다. 기본 IKE 포트는 500/UDP입니다.
python3 CVE-2026-25075-check.py <TARGET> [PORT]
$ python3 CVE-2026-25075-check.py 192.168.1.100 500
======================================================================
strongSwan CVE-2026-25075 Vulnerability Scanner
Non-Destructive Detection
======================================================================
[*] Target: 192.168.1.100:500
[*] Testing for CVE-2026-25075 (non-destructive)
[1] IKE_SA_INIT... OK
[2] IKE_AUTH... OK
[3] EAP Identity... OK
[4] TLS handshake... OK
[5] Sending test AVP with length=1 (header only, no data)... SENT
[*] Analyzing server response...
[+] Server sent EAP-TTLS ACK (waiting for more data)
[!] Server accepted AVP with length < 8
[!] Integer underflow vulnerability confirmed
======================================================================
RESULT: VULNERABLE to CVE-2026-25075
Server version likely: 4.5.0 - 6.0.4
Recommendation: Upgrade to strongSwan 6.0.5+
======================================================================
$ python3 CVE-2026-25075-check.py 192.168.1.200 500
======================================================================
strongSwan CVE-2026-25075 Vulnerability Scanner
Non-Destructive Detection
======================================================================
[*] Target: 192.168.1.200:500
[*] Testing for CVE-2026-25075 (non-destructive)
[1] IKE_SA_INIT... OK
[2] IKE_AUTH... OK
[3] EAP Identity... OK
[4] TLS handshake... OK
[5] Sending test AVP with length=1 (header only, no data)... SENT
[*] Analyzing server response...
[!] No response from server
[-] Connection likely closed (AVP rejected)
======================================================================
RESULT: NOT VULNERABLE (or patched)
Server rejected AVP with invalid length
======================================================================
이 도구는 다음 조건이 모두 충족되는 경우에만 취약점을 탐지할 수 있습니다:
조건이 하나라도 충족되지 않으면 도구는 해당 단계에서 정상적으로(gracefully) 실패하고 INCONCLUSIVE 결과를 보고합니다. 예를 들어:
이 코드는 MIT 라이선스에 따라 배포됩니다.
사전 상호 동의 없이 대상을 공격하기 위해 이 도구를 사용하는 것은 불법입니다. 모든 관련 지방, 주, 연방 법률을 준수할 책임은 최종 사용자에게 있습니다. 개발자는 이 프로그램으로 인해 발생하는 오용이나 피해에 대해 어떠한 책임도 지지 않습니다.