Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions zh_tw/news/_posts/2026-05-20-getaddrinfo-cve-2026-46727.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
---
layout: news_post
title: "CVE-2026-46727: 基於 pthread 的 getaddrinfo 逾時處理常式中的 Use-after-free 漏洞"
author: "hsbt"
translator: "Bear Su"
date: 2026-05-20 00:00:00 +0000
tags: security
lang: zh_tw
---

在 Ruby 基於 pthread 的 `getaddrinfo` 逾時處理常式中,發現了一個 use-after-free 漏洞。
該漏洞的 CVE 編號為 [CVE-2026-46727](https://www.cve.org/CVERecord?id=CVE-2026-46727)
此漏洞已在 Ruby 4.0.5 修復。我們建議您升級 Ruby 版本。

## 風險細節

`Addrinfo.getaddrinfo(..., timeout:)``Socket.tcp(..., resolv_timeout:)` 使用的 `rb_getaddrinfo`,在逾時取消路徑中存在一個競爭條件。
能夠將 DNS 回應延遲至接近指定逾時時間的遠端攻擊者,可能導致 Ruby 行程 dereference 已釋放的記憶體並崩潰。

## 建議行動

請更新至 Ruby 4.0.5 或更新版本。

## 暫時解決方法

如果您不能立即升級,請避免傳遞 `timeout:``Addrinfo.getaddrinfo``resolv_timeout:``Socket.tcp`

## 受影響版本

* Ruby 4.0.0 至 4.0.4
* 在修復之前的 Ruby 4.1.0-dev (master)

Ruby 3.4 系列與之前的版本不受影響。

## 致謝

感謝 [cantina-security](https://hackerone.com/cantina-security) 發現此問題。
感謝 [shioimm](https://github.com/shioimm) 協助修復此風險漏洞。

## 歷史

* 最初發布於 2026-05-20 00:00:00 (UTC)