소식 › 보안·업데이트 · BIND보안CVEDNSSEC

BIND 보안 공지: 포워더 캐시 오염(CVE-2021-25220) 외 3건

ISC가 2022년 3월 16일 BIND 9 취약점 4건을 공개했습니다. 포워더 캐시 오염(Medium), TCP 연결 고갈(Medium), 9.18.0에서 named가 종료되는 문제 2건(High)이며, 9.11.37·9.16.27·9.18.1에서 수정되었습니다.

ISC는 2022년 3월 16일 BIND 9 보안 취약점 4건을 공개했습니다. 포워더(forwarder)를 쓰는 리졸버의 캐시 오염 1건(Medium), keep-response-order 설정 시 TCP 연결 슬롯이 고갈되는 문제 1건(Medium), BIND 9.18.0에서만 named가 비정상 종료되는 문제 2건(High)입니다. 수정 버전은 BIND 9.11.37, 9.16.27, 9.18.1과 지원 프리뷰 에디션(Supported Preview Edition) 9.11.37-S1, 9.16.27-S1입니다. ISC는 4건 모두 실제 악용 사례를 알지 못한다고 밝혔습니다.

한눈에 보기

번호 내용 심각도 영향 버전 수정 버전
CVE-2021-25220 포워더를 사용할 때 위조 NS 레코드가 캐시되어 캐시가 오염될 수 있음 Medium (CVSS 6.2) 9.11.0 – 9.11.36 / 9.12.0 – 9.16.26 / 9.17.0 – 9.18.0 / 9.11.4-S1 – 9.11.36-S1 / 9.16.8-S1 – 9.16.26-S1 9.11.37 / 9.16.27 / 9.18.1 / 9.11.37-S1 / 9.16.27-S1
CVE-2022-0396 조작된 TCP 스트림으로 연결이 CLOSE_WAIT 상태에 무기한 남음 (keep-response-order 사용 시) Medium (CVSS 4.9) 9.16.11 – 9.16.26 / 9.17.0 – 9.18.0 / 9.16.11-S1 – 9.16.26-S1 9.16.27 / 9.18.1 / 9.16.27-S1
CVE-2022-0635 synth-from-dnssec 사용 시 특정 질의가 반복되면 DNAME 처리 중 INSIST 실패로 named 종료 High (CVSS 7.0) 9.18.0 9.18.1
CVE-2022-0667 포워딩되는 DS 조회가 지연될 때 어서션 실패(assertion failure)로 named 종료 High (CVSS 7.0) 9.18.0 9.18.1

건별 내용

CVE-2021-25220: DNS 포워더 캐시 오염

포워더를 사용하는 경우, 포워더가 주었거나 포워더를 거쳐 들어온 위조 NS 레코드가 캐시에 저장될 수 있습니다. named가 어떤 이유로든 재귀 질의를 해야 할 때 이 레코드를 쓰게 되어, 잘못된 서버에 질의하고 클라이언트에 틀린 응답을 돌려줄 수 있습니다. 취약한 구성의 예로 ISC는 세 가지를 들었습니다. 전역 또는 영역별 포워딩을 forward first(기본값)로 쓰는 리졸버, 전역 포워딩 없이 영역별 포워딩만 쓰는 리졸버(forward first와 forward only 모두 해당), 전역 포워딩을 쓰면서 일부 이름공간에서 포워딩을 끈 리졸버입니다. 권한 전용(authoritative-only) 서버는 영향이 없습니다. 표에 적힌 버전보다 오래된 수명 종료(EOL) 버전도 9.1.0까지 영향이 있을 것으로 보이나, ISC는 이를 시험하지 않았습니다.

CVE-2022-0396: 조작된 TCP 패킷으로 인한 서비스 거부(DoS)

클라이언트가 보낸 조작된 TCP 스트림 때문에 TCP 연결 슬롯이 무기한 점유될 수 있습니다. 클라이언트가 연결을 끊은 뒤에도 연결이 CLOSE_WAIT 상태로 남습니다. 이 문제는 기본값이 아닌 keep-response-order를 켠 서버에서만 생기며, 이 ACL에 지정된 호스트라면 누구나 문제를 일으킬 수 있습니다.

CVE-2022-0635: synth-from-dnssec 사용 시 DNAME 처리 중 INSIST 실패

BIND 9.18.0에서는 RFC 8198의 DNSSEC 검증 캐시 적극 활용(Aggressive Use of DNSSEC-Validated Cache, synth-from-dnssec) 기능이 새로 작성되었고, DNSSEC 검증을 하는 리졸버에서는 기본으로 켜지도록 바뀌었습니다. 이 기능이 켜진 서버에 특정 질의가 반복해서 들어오면 query.c:query_dname에서 INSIST 실패가 일어나 named가 종료됩니다. 영향 대상은 dnssec-validation과 synth-from-dnssec이 모두 켜진 9.18.0 리졸버입니다. 따로 설정하지 않았다면 dnssec-validation auto;가 기본값이고, 이때 synth-from-dnssec도 자동으로 켜집니다.

CVE-2022-0667: 지연된 DS 조회 시 어서션 실패

BIND 9.18.0에서는 재귀 클라이언트 코드가 새로 작성되면서 "백스톱 수명 타이머(backstop lifetime timer)"가 들어갔습니다. 포워딩이 필요한 DS 레코드 요청을 처리하다가 이 타이머가 만료되어 resume_dslookup() 함수가 호출되면, 함수는 fetch가 이미 종료되었는지 확인하지 않습니다. 이 때문에 어서션 실패가 일어나 BIND 프로세스가 종료될 수 있습니다. 9.18 브랜치만 영향을 받습니다.

운영자가 할 일

원문을 한국어로 번역·요약한 글입니다. 정확한 내용은 원문을 확인해 주세요. AI의 도움을 받아 작성하고 담당자가 검토했습니다.

목록으로