🇰🇷 한글 설명
odhcpd는 OpenWrt에서 사용하는 DHCPv6, DHCPv4 및 라우터 광고 서버입니다. 25.12 이하 버전에서는 dhcpv6.c:720의 DHCPv6 자기 루프 감지 코드가 네트워크 바이트 순서의 DUID 길이 값을 memcmp() 크기로 직접 사용하여, 리틀엔디언 호스트에서 스택 버퍼를 크게 벗어나 읽기가 발생합니다. 인증되지 않은 단일 DHCPv6 패킷으로 128바이트 버퍼에서 2560바이트 과다 읽기가 유발될 수 있으며, 발행 시점에 공개된 패치는 없습니다.
💡 쉬운 설명
인터넷 주소를 자동으로 나눠주는 OpenWrt 라우터 프로그램에 결함이 있어, 공격자가 특수한 데이터 한 개만 보내도 메모리의 엉뚱한 영역이 읽힙니다. 아직 공식 수정 버전이 나오지 않았으므로 해당 기능을 사용하지 않거나 접근을 차단하는 것이 필요합니다.
🇺🇸 원문 (English)
odhcpd is the DHCPv6, DHCPv4, and router-advertisement server used by OpenWrt. In versions 25.12 and prior, odhcpd's DHCPv6 self-loop detection at dhcpv6.c:720 uses a network-byte-order DUID length value directly as the memcmp() size parameter. On little-endian hosts, this causes memcmp() to read far beyond the stack buffer — a single unauthenticated DHCPv6 packet triggers a 2560-byte overread from a 128-byte buffer. At time of publication, there are no publicly available patches.
📍 영향받는 시스템
OpenWrt의 odhcpd 25.12 이하 버전 (리틀엔디언 호스트)
⚔️ 공격 벡터
네트워크상에서 인증 없이 조작된 DHCPv6 패킷을 odhcpd로 전송하여 스택 메모리 과다 읽기를 유발
🛡️ 대응 방법
공개 패치가 나올 때까지 DHCPv6 서비스를 비활성화하거나 신뢰되지 않은 네트워크에서 DHCPv6 UDP 546 포트를 차단하고, 배포판의 보안 업데이트를 지속 확인
🔧 검증 코드
출력된 버전이 25.12 이하이면 취약 가능성이 있으므로 패키지 업데이트 여부와 DHCPv6 서비스 실행 상태를 함께 확인해야 합니다.
opkg list-installed odhcpd 2>/dev/null | grep -E 'odhcpd'