CVE-2026-46727: pthread 기반 getaddrinfo 타임아웃 핸들러의 use-after-free 취약점

작성자: hsbt (2026-05-20)
번역자: shia

Ruby의 pthread 기반 getaddrinfo 타임아웃 핸들러에서 use-after-free 취약점이 발견되었습니다. 이 취약점은 CVE 번호 CVE-2026-46727으로 등록되었습니다. 이 문제는 Ruby 4.0.5에서 수정되었습니다. Ruby 업그레이드를 권장합니다.

세부 내용

Addrinfo.getaddrinfo(..., timeout:)Socket.tcp(..., resolv_timeout:)가 사용하는 rb_getaddrinfo의 타임아웃 취소 경로에 경쟁 조건이 존재합니다. 지정된 타임아웃 부근에서 DNS 응답을 지연시킬 수 있는 원격 공격자는 Ruby 프로세스가 해제된 메모리를 역참조하여 충돌하도록 만들 수 있습니다.

권장 조치

Ruby 4.0.5 이상으로 업데이트해 주세요.

우회 방법

즉시 업그레이드할 수 없는 경우, Addrinfo.getaddrinfotimeout:을 전달하거나 Socket.tcpresolv_timeout:을 전달하는 것을 피해 주세요.

해당 버전

  • Ruby 4.0.0부터 4.0.4까지
  • 수정 전 Ruby 4.1.0-dev (master)

Ruby 3.4 버전대와 이전 버전은 영향을 받지 않습니다.

도움을 준 사람

이 문제를 발견해 준 cantina-security에게 감사를 표합니다. 또한 패치를 작성해 준 shioimm에게도 감사를 표합니다.

수정 이력

  • 2026-05-20 00:00:00 (UTC) 최초 공개

최근 소식

Ruby 3.2.11 릴리스

Ruby 3.2.11이 릴리스되었습니다. 이번 릴리스에는 CVE-2026-27820을 해결하는 zlib gem의 업데이트가 포함되어 있습니다.

작성자: hsbt (2026-03-27)

뉴스 더보기...