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.getaddrinfo에 timeout:을 전달하거나 Socket.tcp에 resolv_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 4.0.5 릴리스
Ruby 4.0.5가 릴리스되었습니다.
작성자: k0kubun (2026-05-20)
Ruby 4.0.4 릴리스
Ruby 4.0.4가 릴리스되었습니다.
작성자: k0kubun (2026-05-11)
Ruby 4.0.3 릴리스
Ruby 4.0.3이 릴리스되었습니다.
작성자: k0kubun (2026-04-21)
Ruby 3.2.11 릴리스
Ruby 3.2.11이 릴리스되었습니다. 이번 릴리스에는 CVE-2026-27820을 해결하는 zlib gem의 업데이트가 포함되어 있습니다.
작성자: hsbt (2026-03-27)