Skip to content

Commit 0060faa

Browse files
committed
Translate CVE-2026-46727 and Ruby 4.0.5
1 parent 14d59e4 commit 0060faa

2 files changed

Lines changed: 93 additions & 0 deletions

File tree

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
---
2+
layout: news_post
3+
title: "CVE-2026-46727: 基于 pthread 的 getaddrinfo 超时处理中存在释放后使用(Use-after-free)漏洞"
4+
author: "hsbt"
5+
translator: "GAO Jun"
6+
date: 2026-05-20 00:00:00 +0000
7+
tags: security
8+
lang: zh_cn
9+
---
10+
11+
我们发现 Ruby 中基于 pthread 的 `getaddrinfo` 在超时处理中存在释放后使用(Use-after-free)漏洞。
12+
此漏洞的 CVE 标号为 [CVE-2026-46727](https://www.cve.org/CVERecord?id=CVE-2026-46727)。Ruby 4.0.5 已经修复了此漏洞。我们建议您升级 Ruby。
13+
14+
## 详情
15+
16+
`rb_getaddrinfo` 的超时取消逻辑中存在竞争条件,该函数被 `Addrinfo.getaddrinfo(..., timeout:)``Socket.tcp(..., resolv_timeout:)` 调用。
17+
如果远程攻击者可以延迟 DNS 响应到指定超时时间附近,可能会导致 Ruby 进程引用已释放的内存并崩溃。
18+
19+
## 推荐操作
20+
21+
请将 Ruby 升级到 4.0.5 或更高版本。
22+
23+
## 变通方案
24+
25+
如果您无法立即升级,请避免向 `Addrinfo.getaddrinfo` 传递 `timeout:` 参数,避免向 `Socket.tcp` 传递 `resolv_timeout:` 参数。
26+
27+
## 受影响版本
28+
29+
* Ruby 4.0.0 至 4.0.4
30+
* 在此修复之前的 Ruby 4.1.0-dev (master)
31+
32+
Ruby 3.4 系列及更早版本不受影响。
33+
34+
## 致谢
35+
36+
感谢 [cantina-security](https://hackerone.com/cantina-security) 发现此漏洞。同样感谢 [shioimm](https://github.com/shioimm) 修补了此漏洞。
37+
38+
## 历史
39+
40+
* 最初发布于 2026-05-20 00:00:00 (UTC)
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
---
2+
layout: news_post
3+
title: "Ruby 4.0.5 已发布"
4+
author: k0kubun
5+
translator: "GAO Jun"
6+
date: 2026-05-20 00:12:20 +0000
7+
lang: zh_cn
8+
---
9+
10+
Ruby 4.0.5 已发布。
11+
12+
此版本仅包含漏洞补丁
13+
[CVE-2026-46727: 基于 pthread 的 getaddrinfo 超时处理中存在释放后使用(Use-after-free)漏洞](/zh_cn/news/2026/05/20/getaddrinfo-cve-2026-46727/)
14+
以及 C 程序在特定区域设置下的构建问题 [[Bug #22065]](https://bugs.ruby-lang.org/issues/22065)
15+
16+
详情可参考 [GitHub 发布说明](https://github.com/ruby/ruby/releases/tag/v4.0.5)
17+
18+
## 发布计划
19+
20+
我们计划在每次 **常规** 发布后的 2 个月为最新的 Ruby 稳定版本(目前是 Ruby 4.0)发布更新。
21+
Ruby 4.0.6 将于七月发布,4.0.7 将于九月发布,4.0.8 将于十一月发布。
22+
23+
如果存在会影响到大量用户的重大变更,我们也可能会提前发布新版本,后续版本的发布计划也将进行相应调整。
24+
25+
## 下载
26+
27+
{% assign release = site.data.releases | where: "version", "4.0.5" | first %}
28+
29+
* <{{ release.url.gz }}>
30+
31+
文件大小: {{ release.size.gz }}
32+
SHA1: {{ release.sha1.gz }}
33+
SHA256: {{ release.sha256.gz }}
34+
SHA512: {{ release.sha512.gz }}
35+
36+
* <{{ release.url.xz }}>
37+
38+
文件大小: {{ release.size.xz }}
39+
SHA1: {{ release.sha1.xz }}
40+
SHA256: {{ release.sha256.xz }}
41+
SHA512: {{ release.sha512.xz }}
42+
43+
* <{{ release.url.zip }}>
44+
45+
文件大小: {{ release.size.zip }}
46+
SHA1: {{ release.sha1.zip }}
47+
SHA256: {{ release.sha256.zip }}
48+
SHA512: {{ release.sha512.zip }}
49+
50+
## 发布说明
51+
52+
许多提交者、开发人员以及用户提供了问题报告,帮助我们完成了此版本。
53+
感谢他们的贡献。

0 commit comments

Comments
 (0)