Skip to content

Commit dd11d25

Browse files
authored
Translate CVE-2024-35176, Ruby 3.4.0 preview1 (zh_cn) (#3248)
1 parent 142b0a6 commit dd11d25

File tree

2 files changed

+154
-0
lines changed

2 files changed

+154
-0
lines changed
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
---
2+
layout: news_post
3+
title: "CVE-2024-35176: REXML 中的 DoS 漏洞"
4+
author: "kou"
5+
translator: "GAO Jun"
6+
date: 2024-05-16 05:00:00 +0000
7+
tags: security
8+
lang: zh_cn
9+
---
10+
11+
REXML gem 中存在一个 DoS 漏洞。此漏洞的 CVE 编号为 [CVE-2024-35176](https://www.cve.org/CVERecord?id=CVE-2024-35176)。我们强烈建议您更新 REXML gem。
12+
13+
## 详情
14+
15+
当 XML 文档中的一个属性值包含很多 `<` 时,REXML gem 在解析时可能会花费很长时间。
16+
17+
请更新 REXML gem 至 3.2.7 或后续版本。
18+
19+
## 受影响版本
20+
21+
* REXML gem 3.2.6 或更低版本
22+
23+
## 致谢
24+
25+
感谢 [mprogrammer](https://hackerone.com/mprogrammer) 发现此问题。
26+
27+
## 历史
28+
29+
* 最初发布于 2024-05-16 05:00:00 (UTC)
Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
---
2+
layout: news_post
3+
title: "Ruby 3.4.0 preview1 已发布"
4+
author: "naruse"
5+
translator: "GAO Jun"
6+
date: 2024-05-16 00:00:00 +0000
7+
lang: zh_cn
8+
---
9+
10+
{% assign release = site.data.releases | where: "version", "3.4.0-preview1" | first %}
11+
我们很高兴地宣布 {{ release.version }} 发布。
12+
13+
## 语言变化
14+
15+
* 在没有 `frozen_string_literal` 注释的文件中的字符串将表现为已被冻结。
16+
如果它们被修改,将发出弃用警告。
17+
这些警告可以使用 `-W:deprecated` 或者通过设置 `Warning[:deprecated] = true` 来启用。
18+
如要禁用此变化,您可以使用 `--disable-frozen-string-literal` 命令行参数运行 Ruby。 [[Feature #20205]]
19+
20+
* 增加了 `it` 来引用块参数。 [[Feature #18980]]
21+
22+
* 现在支持在调用方法时使用 `nil` 作为关键字展开。
23+
`**nil` 类似于 `**{}`,不传递关键字,也不调用任何转换方法。 [[Bug #20064]]
24+
25+
* 索引不再接受块传递。 [[Bug #19918]]
26+
27+
* 索引不再接受关键字参数。 [[Bug #20218]]
28+
29+
## 核心类更新
30+
31+
注意:我们只列出了重要的类更新。
32+
33+
* Exception
34+
35+
* Exception#set_backtrace 现在接受 `Thread::Backtrace::Location` 数组。
36+
`Kernel#raise``Thread#raise``Fiber#raise` 也接受这个新格式。 [[Feature #13557]]
37+
38+
* Range
39+
40+
* Range#size 在 range 不可枚举时,将抛出 TypeError。 [[Misc #18984]]
41+
42+
## 兼容性问题
43+
44+
注意:不包括问题补丁。
45+
46+
* 修改了错误信息和错误栈的显示。
47+
* 使用单引号(`'`)代替反勾号(`` ` ``)作为错误消息的起始引号。 [[Feature #16495]]
48+
* 在方法名前显示类名(仅当类具有永久名称时)。 [[Feature #19117]]
49+
* `Kernel#caller``Thread::Backtrace::Location` 等的方法等也相应更改。
50+
51+
```
52+
此前:
53+
test.rb:1:in `foo': undefined method `time' for an instance of Integer
54+
from test.rb:2:in `<main>'
55+
56+
现在:
57+
test.rb:1:in 'Object#foo': undefined method 'time' for an instance of Integer
58+
from test.rb:2:in `<main>'
59+
```
60+
61+
## C API 更新
62+
63+
* 移除 `rb_newobj``rb_newobj_of` (以及相关的宏 `RB_NEWOBJ``RB_NEWOBJ_OF``NEWOBJ``NEWOBJ_OF`)。 [[Feature #20265]]
64+
* 移除废除的函数 `rb_gc_force_recycle`[[Feature #18290]]
65+
66+
## 实现改进
67+
68+
* `Array#each` 用 Ruby 重写,以提供更好的性能 [[Feature #20182]]
69+
70+
## 其他变化
71+
72+
* 如果传递了一个块给不使用块的方法时,在详细模式(`-w`)中将显示警告。 [[Feature #15554]]
73+
74+
* Ruby 对一些核心方法通过解释器和 JIT 进行了优化,诸如 `String.freeze``Integer#+`
75+
当这些方法被重定义时,解释器将发出性能警告(`-W:performance``Warning[:performance] = true`)。 [[Feature #20429]]
76+
77+
有关默认 gems 和 绑定 gems 的细节,可以参考 GitHub 上的发布,例如 [logger gem](https://github.com/ruby/logger/releases) 或相应的变更日志。
78+
79+
更多详情,可参见 [NEWS](https://github.com/ruby/ruby/blob/{{ release.tag }}/NEWS.md)
80+
[提交日志](https://github.com/ruby/ruby/compare/v3_3_0...{{ release.tag }})。
81+
82+
自 Ruby 3.3.0 以来,这些变化共导致 [{{ release.stats.files_changed }} 个文件被更改,新增 {{ release.stats.insertions }} 行(+),删除 {{ release.stats.deletions }} 行(-)](https://github.com/ruby/ruby/compare/v3_3_0...{{ release.tag }}#file_bucket)!
83+
84+
## 下载
85+
86+
* <{{ release.url.gz }}>
87+
88+
文件大小: {{ release.size.gz }}
89+
SHA1: {{ release.sha1.gz }}
90+
SHA256: {{ release.sha256.gz }}
91+
SHA512: {{ release.sha512.gz }}
92+
93+
* <{{ release.url.xz }}>
94+
95+
文件大小: {{ release.size.xz }}
96+
SHA1: {{ release.sha1.xz }}
97+
SHA256: {{ release.sha256.xz }}
98+
SHA512: {{ release.sha512.xz }}
99+
100+
* <{{ release.url.zip }}>
101+
102+
文件大小: {{ release.size.zip }}
103+
SHA1: {{ release.sha1.zip }}
104+
SHA256: {{ release.sha256.zip }}
105+
SHA512: {{ release.sha512.zip }}
106+
107+
## Ruby 是什么
108+
109+
Ruby 最初由 Matz (松本行弘,Yukihiro Matsumoto) 于 1993 年开发,现在以开源软件的形式开发。它可以在多个平台上运行,并在全球得到广泛使用,尤其是 Web 开发领域。
110+
111+
112+
[Feature #13557]: https://bugs.ruby-lang.org/issues/13557
113+
[Feature #15554]: https://bugs.ruby-lang.org/issues/15554
114+
[Feature #16495]: https://bugs.ruby-lang.org/issues/16495
115+
[Feature #18290]: https://bugs.ruby-lang.org/issues/18290
116+
[Feature #18980]: https://bugs.ruby-lang.org/issues/18980
117+
[Misc #18984]: https://bugs.ruby-lang.org/issues/18984
118+
[Feature #19117]: https://bugs.ruby-lang.org/issues/19117
119+
[Bug #19918]: https://bugs.ruby-lang.org/issues/19918
120+
[Bug #20064]: https://bugs.ruby-lang.org/issues/20064
121+
[Feature #20182]: https://bugs.ruby-lang.org/issues/20182
122+
[Feature #20205]: https://bugs.ruby-lang.org/issues/20205
123+
[Bug #20218]: https://bugs.ruby-lang.org/issues/20218
124+
[Feature #20265]: https://bugs.ruby-lang.org/issues/20265
125+
[Feature #20429]: https://bugs.ruby-lang.org/issues/20429

0 commit comments

Comments
 (0)