🇰🇷 한글 설명
FIPS 모드에서 작동하는 Libreswan의 add_decoded_cert() 함수가 잘못된 X.509 인증서의 공개 키 추출 실패를 적절히 처리하지 못해 발생합니다. 공격자가 조작된 인증서를 전송하면 pluto 데몬이 중단 및 재시작을 반복하며 서비스 거부(DoS) 상태에 빠질 수 있습니다.
💡 쉬운 설명
해커가 가짜 인증서를 보내면 보안 프로그램이 오류를 일으켜 강제로 꺼지게 만드는 공격입니다. 이로 인해 네트워크 연결 서비스가 중단되어 정상적인 이용이 불가능해질 수 있습니다.
🇺🇸 원문 (English)
In FIPS mode, Libreswan's add_decoded_cert() function calls CERT_ExtractPublicKey() and asserts that the result is not NULL. However, CERT_ExtractPublicKey() returns NULL when public key extraction fails, for example if the RSA exponent is set to 0. A remote attacker can send a malformed X.509 certificate in a CERT payload to trigger the assertion, causing the pluto daemon to abort and restart. Continued exploitation causes a denial of service. No remote code execution is possible. Both IKEv1 and IKEv2 are affected. The vulnerability is only exploitable when both the OS and libreswan are running in FIPS mode and at least one CA certificate is loaded. The CERT payload is processed before peer authentication, so no credentials are needed to exploit this. Configurations using only PreSharedKey (PSK) authentication with no CA certificates loaded in the NSS database are not vulnerable.
📍 영향받는 시스템
FIPS 모드가 활성화된 Libreswan (IKEv1 및 IKEv2 사용 환경)
⚔️ 공격 벡터
인증이 완료되기 전 조작된 X.509 인증서가 포함된 CERT 페이로드를 전송하여 데몬을 중단시킴
🛡️ 대응 방법
Libreswan을 최신 보안 패치가 적용된 버전으로 업데이트하거나, FIPS 모드 사용 시 인증서 검증 로직을 점검하십시오.
🔧 검증 코드
설치된 Libreswan의 버전을 확인하여 취약점이 해결된 패치 버전인지 확인하십시오.
dpkg -l | grep libreswan 2>/dev/null || rpm -q libreswan 2>/dev/null