DEEP DIVE REPORT

CVE-2015-5477: ISC BIND TKEY 쿼리가 named을 종료시키는 지점과 지금 확인할 버전 경계

SecurityDesk
• 2026.11.03 • 조회 4

개요

개요 인포그래픽
CVE-2015-5477은 ISC BIND 9의 TKEY 쿼리 처리 경로에 있는 원격 서비스 거부 취약점입니다. CVE 레코드에 따르면 ISC BIND 9.x 중 9.9.7-P2 이전, 9.10.x 중 9.10.2-P3 이전 버전의 named는 TKEY 쿼리를 통해 REQUIRE 어설션 실패와 데몬 종료를 일으키는 denial of service에 취약합니다. 이 글이 다루는 사실은 그 버전 경계와 named 종료라는 결과, 그리고 공개 PoC의 존재까지입니다.

  • 레코드가 명시한 결과: 원격 공격자가 TKEY 쿼리로 named의 REQUIRE 어설션 실패와 데몬 종료를 유발하는 서비스 거부.
  • 버전 경계: ISC BIND 9.x 계열은 9.9.7-P2, ISC BIND 9.10.x 계열은 9.10.2-P3가 각각 수정 경계로 안내됩니다.
  • 공개 상태: Exploit-DB exploit 37721은 BIND9 TKEY assert Dos, CVE-2015-5477의 PoC를 다루는 자료로 소개되어 있습니다.
  • 이번 근거에서 확인하지 못한 것: 실제 야생 악용 여부, CISA KEV 등재 여부, 배포판별 수정 패키지 버전.

영향 범위

영향 범위는 CVE 레코드가 그은 두 갈래 경계에서 출발합니다. 9.x 계열은 9.9.7-P2, 9.10.x 계열은 9.10.2-P3부터 수정되어 있으므로, 점검의 출발점은 계열별로 다른 이 두 버전 숫자입니다. 같은 BIND 9를 운영하더라도 어느 계열이냐에 따라 비교 대상이 달라지므로, 인벤토리를 하나의 버전 숫자로 묶어 판단하지 않는 편이 안전합니다.

제공된 근거가 명시하는 피해의 형태는 named의 REQUIRE 어설션 실패와 데몬 종료, 그리고 그에 따른 서비스 거부입니다. 이 글은 그 범위를 넓히지 않습니다. DNS 계층의 의존 구조나 장애 확산 반경처럼 이번에 확인되지 않은 시나리오는 제외하고, 레코드가 지목한 결과를 그대로 점검의 기준으로 삼습니다.

판정 범위는 버전 문자열만으로 자동 확정되지 않습니다. 자체 컴파일 여부나 배포판의 백포트 적용 여부에 따라 실제 취약성이 달라질 수 있어, 보유 버전과 그 빌드의 패치 상태를 함께 확인해야 합니다. 운영체제별 세부 패치 번호나 특정 배포판의 지원 버전은 이번에 수집된 근거에 포함되어 있지 않습니다.

기술적 분석

CVE 레코드가 지목한 트리거는 TKEY 쿼리입니다. 취약 버전의 named가 TKEY 쿼리를 처리하는 과정에서 REQUIRE 어설션 실패가 발생하고 데몬이 종료된다는 것이 근거가 명시한 동작입니다. 여기에 Exploit-DB 자료의 패치 설명이 수정의 형태를 하나 더해줍니다. 패치는 두 번째 lookup 전에 해당 변수를 NULL로 설정하는 방식이었다고 설명되어 있습니다.

결함의 구조

확인된 사실은 두 갈래입니다. CVE 레코드는 TKEY 쿼리가 취약 버전의 named에서 REQUIRE 어설션 실패와 데몬 종료를 유발한다고 적시하고, Exploit-DB 자료는 패치가 두 번째 lookup 이전에 변수를 NULL로 설정하는 방식이었다고 설명합니다. 전자는 공격의 입구와 결과를, 후자는 수정이 적용된 지점을 각각 알려줍니다.

다만 이 두 문장이 허용하는 범위는 여기까지입니다. 어떤 변수를 가리키는 설명인지, 그 변수의 어떤 상태가 어설션 실패로 이어지는지 같은 코드 수준의 인과 상세는 제공된 근거에 포함되어 있지 않습니다. 따라서 이 글은 TKEY 쿼리라는 진입점과 named 종료라는 결과, 그리고 두 번째 lookup 전 NULL 초기화라는 패치 방식까지만 사실로 다루고, 그 사이의 메커니즘 추정은 서술하지 않습니다.

공개 PoC·익스플로잇 분석

  • 출처: Exploit-DB exploit 37721(Robert David Graham). 이 자료는 BIND9 TKEY assert Dos, CVE-2015-5477의 PoC라고 소개되어 있고, 같은 페이지에 패치가 두 번째 lookup 전에 변수를 NULL로 설정하는 방식이었다는 설명이 함께 실려 있습니다. 제공된 근거에서 이 자료는 PoC 그 자체와 패치 방식 설명의 출처로만 확인할 수 있습니다.
  • 전제조건: CVE 레코드가 지목한 조건은 두 가지입니다. 대상이 9.x 계열에서는 9.9.7-P2 이전, 9.10.x 계열에서는 9.10.2-P3 이전 버전의 named여야 하고, 원격에서 그 named에 TKEY 쿼리가 전달되어야 합니다. 레코드가 명시한 원인의 입구는 이 TKEY 쿼리입니다.
  • 입증 범위: 공개 자료로 존재한다고 확인된 것은 TKEY 어설션 실패를 다루는 PoC 코드와 패치 방식에 대한 설명입니다. 반대로 PoC의 코드 품질이나 자동화 수준, 무기화 정도, 대규모 실전 사용 여부는 이번에 수집된 근거에 나타나지 않습니다. 따라서 이 섹션의 결론은 재현 코드가 공개되어 있다는 사실까지입니다.
  • 운영 의미: 확인되는 사실은 공개 PoC가 존재한다는 점이고, 실제 야생에서의 악용 여부는 제공된 근거에서 확인되지 않았습니다. 이 섹션은 그 두 가지를 구분해 기록하는 데까지만 다루며, PoC 존재로부터 악용 난이도나 공격 성행을 추정하지는 않습니다.

근거에서 확인되지 않은 사항

CISA KEV 등재 여부와 등재 시점은 제공된 자료에 없으므로, 이 글은 KEV 등재를 전제로 하지 않습니다. 실제 야생 악용 사례 역시 확인되지 않았는데, 이는 공격이 없었다는 확정이 아니라 수집된 근거에서 확인되지 않았다는 뜻입니다. ISC 공식 보안 권고 원문과 배포판별 수정 패키지 버전도 확보되지 않아, 이 글은 CVE 레코드가 제시한 버전 경계까지만 안내합니다.

대응 방안

버전 경계 확인

  • 운영 중인 BIND의 버전 문자열을 확인해 9.9.7-P2 미만 또는 9.10.2-P3 미만인지 판정합니다.
  • 9.x 계열과 9.10.x 계열의 경계가 다르므로, 인벤토리를 계열별로 정리해 비교 기준을 분리합니다.
  • 자체 컴파일 빌드나 배포판 패키지는 백포트 적용 여부를 함께 확인해 실제 취약성을 판단합니다.

업그레이드

  • 버전이 경계 미만이라면 9.9.7-P2 이상 또는 9.10.2-P3 이상으로의 업그레이드를 조치의 중심으로 둡니다. 제공된 근거에서 확인되는 대응은 버전 경계를 넘는 것입니다.
  • 대상 버전은 운영 중인 계열에 맞춰 정합니다. 9.x 계열의 기준선은 9.9.7-P2, 9.10.x 계열의 기준선은 9.10.2-P3입니다.
  • 설정 변경이나 기능 차단처럼 이번 근거가 뒷받침하지 않는 우회 지침은 이 글에서 제시하지 않습니다. ISC 공식 권고와 배포판별 패키지 버전이 확보되지 않았으므로, 실제 적용 절차는 보유 환경의 공식 문서를 기준으로 확인해야 합니다.

판단은 조건으로 정리할 수 있습니다. 버전이 경계 미만이라면 레코드가 명시한 원격 서비스 거부 취약점에 해당하므로 버전 교치를 다루는 것이 근거에 맞는 조치이고, 이미 경계 이상이라면 그 확인 결과를 기록으로 남기는 것이 이 글의 근거 범위에 맞는 대응입니다. KEV 등재와 실전 악용 여부가 확인되지 않았다는 한계는 판단의 근거를 대체하지 않으며, 확인 가능한 기준은 CVE 레코드가 제시한 버전 경계라는 점을 그대로 유지해야 합니다.

참고자료

함께 읽으면 좋은 글

본 콘텐츠는 AI 기술로 작성된 분석 리포트를 포함하고 있습니다. 내용 중 사실과 다르거나 보완이 필요한 정보를 발견하셨으면 댓글을 통해 의견을 부탁드립니다. 여러분의 피드백은 더 정확한 보안 정보 공유에 큰 도움이 됩니다.

댓글 (0)

댓글을 작성하려면 로그인이 필요합니다.

로그인

아직 댓글이 없습니다.

첫 번째 댓글을 작성해보세요!

IT 도구 서랍

→ Unix: 2025-01-15T09:30:00
→ 날짜: 1736934600

→ ASCII: ABC
→ 문자: 65 66 67

ASCII 코드표 — 클릭하면 입력란에 추가

DecHex약어설명
DecHex문자
DecHex문자

→ 유니코드: 홍길동
→ 문자: \ud64d\uae38\ub3d9