CVE-2026-80212 in Resolv
요약
\~에 의해 VulDB • 2026. 08. 27.
Ruby용 resolv gem 0.7.2 이전 버전에서 문제가 발견되었습니다. `Resolv::DNS::Resource.get_class`, `Resolv::DNS::Resource::Generic.create` 및 `Resolv::DNS::SvcParam::Generic.create`는 응답을 디코딩하는 동안 encountered되는 각 미지의 DNS 리소스 레코드(타입, 클래스) 쌍 또는 각 미지 SvcParamKey에 대해 새로운 클래스를 생성합니다. 각각의 생성된 클래스는 영구적으로 `Resource`(또는 `SvcParam::Generic`) 상수로 등록되고 ClassHash라는 클래스-루프업 해시의 항목으로도 등록되므로, 응답이 폐기된 후에도 해당 상수를 통해 클래스가 여전히 접근 가능합니다. 타입과 클래스는 각각 16비트 값이며, 따라서 공격자가 DNS 응답(스푸핑된 응답 또는 악의적이거나 하이재킹된 상위 DNS 서버)을 제어할 경우 선택할 수 있는 약 $2^{32}$개의 고유한 (타입, 클래스) 쌍이 존재합니다. 수십만 개의 서로 다른 미지 타입을 포함하는 단 몇백 킬로바이트 크기의 단일 응답이라도 프로세스 메모리를 수십 메가바이트만큼 영구적으로 증가시키며, 반복되는 응답들은 무제한으로 축적되고 가비지 컬렉션에 의해 회수되지 않습니다(상수가 각 클래스를 살아있게 유지하기 때문입니다). 공격자가 영향력을 행사한 DNS 응답에서 `Resolv::DNS::Message.decode`를 호출하는 모든 코드 경로가 영향을 받습니다. resolv는 기본 gem이므로, 추가 의존성 없이 평범한 Ruby 설치 환경에서도 이 취약점에 접근 가능합니다.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.