🇰🇷 한글 설명
NLnet Labs Unbound 1.25.0부터 1.25.1까지의 버전에서, respip 및 dns64 모듈을 함께 동작하도록 한 수정 과정에서 뷰 이름을 얕은 복사(shallow copy)하는 문제가 발생합니다. Unbound에 부하가 걸려 원본 뷰 이름의 소유 쿼리가 밀려날 경우 메모리 손상이 일어날 수 있으며, 충돌 가능성은 메모리 할당기와 메모리 배치에 크게 의존하여 낮은 편입니다.
💡 쉬운 설명
DNS 서버 Unbound가 과부하 상태일 때 내부 메모리가 잘못 처리되어 서버가 비정상 종료되거나 불안정해질 수 있습니다. 다만 특정 설정 조합과 높은 부하가 동시에 있어야 하고, 실제 충돌 가능성은 낮습니다.
🇺🇸 원문 (English)
In NLnet Labs Unbound 1.25.0 up to and including 1.25.1, a fix that makes the 'respip' and 'dns64' modules work together, creates a shallow copy of the view name in effect that could lead to memory corruption if the owner of the original view name is jostled out when Unbound is under pressure. Unbound needs to be configured with one of 'respip'/'rpz' modules, together with a module that can attach subqueries (respip CNAME redirection, dns64, subnetcache) and a configured 'access-control-view' while Unbound is under pressure so that joslte logic kicks in and starts dropping slow queries. The subquery is getting a shallow copy of the view name and if the super query which owns the view name is jostled out, memory corruption can occur. Likelihood of a crash is low, since it relies heavily on the underlying memory allocator and the memory layout. Debug memory builds (e.g., ASAN) that catch the free terminate the server.
📍 영향받는 시스템
NLnet Labs Unbound 1.25.0 ~ 1.25.1 (1.25.1 포함)
⚔️ 공격 벡터
respip/rpz 및 dns64 등 서브쿼리 모듈과 access-control-view가 설정된 상태에서 서버에 부하를 가해 느린 쿼리가 제거되도록 유도
🛡️ 대응 방법
Unbound를 1.25.2 이상 버전으로 업데이트하고 배포판의 보안 패치를 적용
🔧 검증 코드
출력된 버전이 1.25.0 또는 1.25.1이면 취약하며, 1.25.2 이상이면 패치된 것입니다.
unbound -V 2>/dev/null | head -1