ISC가 2024년 2월 13일 BIND 9 보안 취약점 7건을 공개했습니다. 7건 모두 원격에서 악용할 수 있습니다. 공격자는 메모리·CPU를 고갈시키거나 named를 비정상 종료시켜 서비스 거부(DoS) 상태를 만들 수 있습니다. 6건은 심각도 High(CVSS 7.5), 1건은 Medium(CVSS 5.3)입니다. 이 중 4건은 DNSSEC 검증, nxdomain-redirect, DNS64와 serve-stale 동시 사용, ECS처럼 특정 기능을 켠 경우에만 해당합니다. 수정 버전은 BIND 9.16.48, 9.18.24, 9.19.21이며, BIND Supported Preview Edition(-S1)은 9.16.48-S1과 9.18.24-S1입니다. 모든 건에 대해 ISC는 현재 알려진 실제 공격 사례가 없다고 밝혔습니다.
BIND Supported Preview Edition은 ISC가 자격을 갖춘 지원 고객에게 제공하는 특수 기능 프리뷰 브랜치입니다. 아래 표에서는 -S1이 붙은 버전으로 표기합니다.
한눈에 보기
| 번호 | 내용 | 심각도 | 영향 버전 | 수정 버전 |
|---|---|---|---|---|
| CVE-2023-6516 | 특정 재귀 질의 패턴으로 메모리 부족 발생 가능 | High (CVSS 7.5) | 9.16.0 ~ 9.16.45 / 9.16.8-S1 ~ 9.16.45-S1 | 9.16.48 / 9.16.48-S1 |
| CVE-2023-4408 | 대용량 DNS 메시지 파싱 시 과도한 CPU 부하 | High (CVSS 7.5) | 9.0.0 ~ 9.16.45, 9.18.0 ~ 9.18.21, 9.19.0 ~ 9.19.19 / 9.9.3-S1 ~ 9.11.37-S1, 9.16.8-S1 ~ 9.16.45-S1, 9.18.11-S1 ~ 9.18.21-S1 / (9.11.37, 9.11.37-S1 이전 버전은 평가하지 않음) | 9.16.48, 9.18.24, 9.19.21 / 9.16.48-S1, 9.18.24-S1 |
| CVE-2023-50387 | KeyTrap: DNSSEC 검증기의 극심한 CPU 소모 | High (CVSS 7.5) | 9.0.0 ~ 9.16.46, 9.18.0 ~ 9.18.22, 9.19.0 ~ 9.19.20 / 9.9.3-S1 ~ 9.16.46-S1, 9.18.11-S1 ~ 9.18.22-S1 / (9.11.37, 9.11.37-S1 이전 버전은 평가하지 않음) | 9.16.48, 9.18.24, 9.19.21 / 9.16.48-S1, 9.18.24-S1 |
| CVE-2023-50868 | NSEC3 최근접 상위 증명 생성 시 CPU 고갈 | High (CVSS 7.5) | 9.0.0 ~ 9.16.46, 9.18.0 ~ 9.18.22, 9.19.0 ~ 9.19.20 / 9.9.3-S1 ~ 9.16.46-S1, 9.18.11-S1 ~ 9.18.22-S1 / (9.11.37, 9.11.37-S1 이전 버전은 평가하지 않음) | 9.16.48, 9.18.24, 9.19.21 / 9.16.48-S1, 9.18.24-S1 |
| CVE-2023-5517 | nxdomain-redirect 사용 시 RFC 1918 역방향 질의로 어서션 실패 | High (CVSS 7.5) | 9.12.0 ~ 9.16.45, 9.18.0 ~ 9.18.21, 9.19.0 ~ 9.19.19 / 9.16.8-S1 ~ 9.16.45-S1, 9.18.11-S1 ~ 9.18.21-S1 | 9.16.48, 9.18.24, 9.19.21 / 9.16.48-S1, 9.18.24-S1 |
| CVE-2023-5679 | DNS64와 serve-stale 동시 사용 시 어서션 실패 | High (CVSS 7.5) | 9.16.12 ~ 9.16.45, 9.18.0 ~ 9.18.21, 9.19.0 ~ 9.19.19 / 9.16.12-S1 ~ 9.16.45-S1, 9.18.11-S1 ~ 9.18.21-S1 | 9.16.48, 9.18.24, 9.19.21 / 9.16.48-S1, 9.18.24-S1 |
| CVE-2023-5680 | ECS 활성화 캐시 정리 시 과도한 CPU 부하 | Medium (CVSS 5.3) | Supported Preview Edition만 해당 / 9.11.3-S1 ~ 9.11.37-S1, 9.16.8-S1 ~ 9.16.45-S1, 9.18.11-S1 ~ 9.18.21-S1 / (9.11.37-S1 이전 버전은 평가하지 않음) | 9.16.48-S1, 9.18.24-S1 |
건별 내용
CVE-2023-6516: 특정 재귀 질의 패턴으로 메모리 부족 발생 가능
재귀 리졸버(recursive resolver)로 동작하는 named는 캐시 데이터베이스 정리 작업 일부를 비동기로 처리합니다. 정리 대상을 가리키는 작은 메모리를 할당해 큐에 쌓아 두었다가 나중에 처리하는 방식입니다. 이런 정리 작업을 일으키는 질의 패턴이 계속 들어오면 named가 정리 이벤트를 제때 처리하지 못합니다. 그러면 큐가 끝없이 커져 설정한 max-cache-size를 크게 넘어설 수 있습니다. 최악의 경우 호스트의 메모리가 모두 소진되어 서비스 거부로 이어집니다. 알려진 우회 방법은 없습니다.
CVE-2023-4408: 대용량 DNS 메시지 파싱 시 과도한 CPU 부하
named의 DNS 메시지 파싱 코드 일부는 계산 복잡도가 지나치게 높습니다. 일반 트래픽에서는 문제가 없지만, 조작된 질의나 응답을 대량으로 보내면 CPU 부하가 크게 올라가 정상 클라이언트가 서비스를 받지 못할 수 있습니다. 권한 서버(authoritative server)와 재귀 리졸버 모두 영향을 받습니다. 알려진 우회 방법은 없습니다.
CVE-2023-50387: KeyTrap, DNSSEC 검증기의 극심한 CPU 소모
특수하게 조작된 DNSSEC 서명 영역에서 오는 응답을 처리하다가 DNSSEC 검증 리졸버(DNSSEC-validating resolver)의 CPU가 고갈될 수 있습니다. 공격자는 이런 질의를 대량으로 보내 리졸버 성능을 크게 떨어뜨릴 수 있습니다. DNSSEC 검증을 완전히 끄면 취약점은 사라지지만 ISC는 이를 권장하지 않습니다. 대신 수정 버전 설치를 강하게 권고합니다. 수정 버전에서는 매우 복잡한 DNSSEC 검증이 있더라도 서버의 다른 작업을 방해하지 않습니다.
CVE-2023-50868: NSEC3 최근접 상위 증명 생성 시 CPU 고갈
NSEC3를 쓰는 DNSSEC 서명 영역에서 오는 응답을 처리하다가 DNSSEC 검증 리졸버의 CPU가 고갈될 수 있습니다. ISC 내부 시험에서 발견된 건입니다. 우회 방법과 권고는 CVE-2023-50387과 같습니다. ISC는 이와 별도로, 권한 서버 운영자에게 RFC 9276("Guidance for NSEC3 Parameter Settings")의 NSEC3 매개변수 지침을 따를 것을 권고했습니다. 이 지침을 따르지 않으면 앞으로 리졸버들이 권고를 더 엄격하게 적용할 때 문제가 생길 수 있다고 덧붙였습니다.
CVE-2023-5517: nxdomain-redirect 사용 시 RFC 1918 역방향 질의로 어서션 실패
두 조건이 모두 충족되면 질의 하나로 named가 어서션 실패(assertion failure)로 종료됩니다. 첫째는 nxdomain-redirect <domain>;이 설정된 경우이고, 둘째는 원래 권한 있는 NXDOMAIN 응답이 나갈 RFC 1918 주소의 PTR 질의를 받은 경우입니다. nxdomain-redirect 기능을 끄면 문제가 되는 코드 경로에 도달하지 않습니다.
CVE-2023-5679: DNS64와 serve-stale 동시 사용 시 어서션 실패
DNS64와 서브 스테일(serve-stale)을 함께 켜 둔 상태에서는 재귀 질의 처리 중 named가 어서션 실패로 종료될 수 있습니다. 공격자는 DNS64가 켜진 리졸버에 serve-stale을 유발하는 도메인을 질의해 이 문제를 일으킬 수 있습니다. serve-stale을 끄거나(stale-cache-enable no;, stale-answer-enable no;), dns64를 끄거나, 둘 다 끄면 문제가 되는 코드 경로에 도달하지 않습니다.
CVE-2023-5680: ECS 활성화 캐시 정리 시 과도한 CPU 부하
이 건은 BIND Supported Preview Edition에만 해당합니다. 리졸버 캐시에 같은 이름의 ECS(EDNS Client Subnet) 레코드가 매우 많이 쌓이면, 그 이름의 캐시 노드를 정리하는 동안 질의 처리 성능이 크게 떨어질 수 있습니다. 공격자는 특정 질의를 보내 성능을 떨어뜨릴 수 있고, 최악의 경우 리졸버가 전혀 응답하지 않게 됩니다. ECS 기능을 완전히 끄는 것 말고는 우회 방법이 없습니다.
운영자가 할 일
- 버전 확인 및 업그레이드: 운영 중인 BIND 버전이 위 영향 범위에 드는지 확인합니다. 해당하면 지금 쓰는 버전과 가장 가까운 수정 버전(9.16.48, 9.18.24, 9.19.21, 또는 9.16.48-S1, 9.18.24-S1)으로 올립니다. KeyTrap(CVE-2023-50387)과 CVE-2023-50868은 9.16.46, 9.18.22, 9.19.20까지 영향을 받으므로, 그보다 낮은 수정 버전을 이미 적용했더라도 다시 확인해야 합니다.
- DNSSEC 검증 리졸버 우선 점검: CVE-2023-50387과 CVE-2023-50868은 DNSSEC 검증을 켠 리졸버가 대상입니다. 검증을 끄는 우회는 ISC가 권장하지 않으므로 업그레이드로 대응합니다.
- 즉시 업그레이드가 어려울 때의 임시 조치: 기능별 우회가 가능한 건만 해당합니다.
- CVE-2023-5517: nxdomain-redirect 비활성화
- CVE-2023-5679: serve-stale(
stale-cache-enable no;,stale-answer-enable no;) 또는 dns64 비활성화 - CVE-2023-5680: ECS 기능 비활성화
- CVE-2023-6516과 CVE-2023-4408은 알려진 우회 방법이 없으므로 업그레이드가 유일한 대응입니다.
- 권한 서버의 NSEC3 설정 점검: NSEC3로 서명한 영역을 운영한다면 RFC 9276 지침에 맞는지 확인합니다.
- 지원 대상 버전 확인: ISC는 현재 지원 중인 버전에만 패치를 제공합니다. 운영 버전이 지원 대상인지 https://www.isc.org/download/ 에서 확인합니다.
- 자원 사용량 모니터링: 업그레이드 전까지는 리졸버의 메모리와 CPU 사용량, named 비정상 종료 여부를 평소보다 자주 확인합니다.
원문을 한국어로 번역·요약한 글입니다. 정확한 내용은 원문을 확인해 주세요. AI의 도움을 받아 작성하고 담당자가 검토했습니다.