🇰🇷 한글 설명
OpenSSL의 DTLS 핸드셰이크 처리 과정에서 순서가 맞지 않는 메시지에 대해 부적절하게 처리하여 NULL 포인터 역참조가 발생합니다. 이를 악용한 원격 공격자는 특수 조작된 DTLS 메시지를 전송하여 데몬의 서비스 거부 상태를 유발할 수 있습니다.
💡 쉬운 설명
OpenSSL이 DTLS 암호화 통신에서 순서대로 오지 않은 메시지를 받으면 프로그램이 충돌합니다. 원격 공격자는 이를 악용해 서버를 먹통으로 만들 수 있습니다.
🇺🇸 원문 (English)
The dtls1_retrieve_buffered_fragment function in ssl/d1_both.c in OpenSSL before 1.0.0 Beta 2 allows remote attackers to cause a denial of service (NULL pointer dereference and daemon crash) via an out-of-sequence DTLS handshake message, related to a "fragment bug."
📍 영향받는 시스템
OpenSSL 1.0.0 Beta 2 이전 버전 (특히 DTLS 지원 빌드)
⚔️ 공격 벡터
UDP 기반 DTLS 채널에 순서가 뒤섞인 또는 조작된 핸드셰이크 메시지 전송
🛡️ 대응 방법
OpenSSL을 1.0.0 Beta 2 이상으로 업그레이드하거나 DTLS 기능을 비활성화
🔧 검증 코드
VULNERABLE이 출력되면 패치되지 않은 버전, PATCHED가 출력되면 안전한 버전입니다. 또는 openssl version으로 버전을 직접 확인하여 1.0.0 Beta 2 미만이면 위험합니다.
openssl version | grep -oE '1\.0\.[0-9]|0\.[0-9]\.[0-9]' | awk -F. '{if($1<1 || ($1==1 && $2==0 && $3<0)) print "VULNERABLE"; else print "PATCHED"}'