🇰🇷 한글 설명
GoBGP는 Go 언어로 작성된 오픈소스 BGP(Border Gateway Protocol) 구현체이다. 4.3.0 이전 버전에서는 잘못된 형식의 BGP UPDATE 메시지를 처리할 때 4바이트 AS 속성 처리 과정의 슬라이스 인덱스 이동이 제대로 검증되지 않아 'index out of range' 런타임 패닉이 발생하며, 이로 인해 원격 서비스 거부(DoS) 공격이 가능하다. 해당 문제는 4.3.0 버전에서 패치되었다.
💡 쉬운 설명
인터넷 라우팅을 담당하는 GoBGP 소프트웨어가 비정상적인 메시지를 받으면 갑자기 종료될 수 있는 취약점입니다. 공격자가 특수하게 조작된 메시지를 보내면 라우팅 서비스가 멈춰 네트워크 연결에 장애가 발생할 수 있습니다.
🇺🇸 원문 (English)
GoBGP is an open source Border Gateway Protocol (BGP) implementation in the Go Programming Language. Prior to version 4.3.0, a remote Denial of Service (DoS) vulnerability exists in GoBGP where a malformed BGP UPDATE message can trigger a runtime error: index out of range panic. This occurs during the processing of 4-byte AS attributes when the message structure causes an internal slice index shift that is not properly handled. This issue has been patched in version 4.3.0.
📍 영향받는 시스템
GoBGP 4.3.0 미만 버전을 사용하는 BGP 라우터 및 네트워크 장비
⚔️ 공격 벡터
원격지의 공격자가 BGP 피어로 연결된 상태에서 잘못된 구조의 BGP UPDATE 메시지를 전송하여 프로세스를 패닉 상태로 만듦
🛡️ 대응 방법
GoBGP를 4.3.0 이상 버전으로 업데이트하고, 신뢰되지 않은 BGP 피어의 접근을 ACL이나 TCP MD5/TCP-AO 인증으로 제한
🔧 검증 코드
출력된 버전이 4.3.0 미만이면 취약하므로 업데이트가 필요하고, 4.3.0 이상이면 패치가 적용된 것이다.
gobgpd --version 2>/dev/null || gobgp --version 2>/dev/null