已关闭
CVE-2026-82455 #138
tong_1001创建于  3 天前关闭于  1 天前
tong_1001
3 天前 创建

一、漏洞信息
漏洞编号:CVE-2026-82455
漏洞归属组件:ruby
漏洞归属的版本:2.5.8
CVSS评分:
BaseScore:N/A None
Vector:
漏洞简述:

漏洞公开时间:2026-08-29 22:16
漏洞创建时间:2026-08-31 09:03:34
漏洞详情参考链接:
https://nvd.nist.gov/vuln/detail/CVE-2026-82455

更多参考(点击展开)

漏洞分析指导链接:
https://atomgit.com/openeuler/cve-manager/blob/master/cve-vulner-manager/doc/md/manual.md
漏洞数据来源:
其他
漏洞补丁信息:

详情(点击展开)

二、漏洞分析结构反馈
影响性分析说明:
RubyGems 在提取 Gem 包时,未能在文件系统符号链接解析后重新验证路径包含性。当目标目录中已存在指向提取根目录之外的符号链接时,原本看似写入目标目录内的文件实际会被写入目录外部,从而破坏了提取操作的安全边界。
openEuler评分:
6.9
Vector:CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N
受影响版本排查(受影响/不受影响):
1.master(3.2.8):受影响
2.openEuler-20.03-LTS-SP4(2.5.8):受影响
3.openEuler-22.03-LTS-SP4(3.0.3):受影响
4.openEuler-24.03-LTS-Next(3.2.2):受影响
5.openEuler-24.03-LTS-SP1(3.2.2):受影响
6.openEuler-24.03-LTS-SP3(3.2.2):受影响
7.openEuler-24.03-LTS-SP4(3.2.2):受影响

修复是否涉及abi变化(是/否):
1.master(3.2.8):否
2.openEuler-20.03-LTS-SP4(2.5.8):否
3.openEuler-22.03-LTS-SP4(3.0.3):否
4.openEuler-24.03-LTS-Next(3.2.2):否
5.openEuler-24.03-LTS-SP1(3.2.2):否
6.openEuler-24.03-LTS-SP3(3.2.2):否
7.openEuler-24.03-LTS-SP4(3.2.2):否

原因说明:
1.master(3.2.8):正常修复
2.openEuler-20.03-LTS-SP4(2.5.8):正常修复
3.openEuler-22.03-LTS-SP4(3.0.3):正常修复
4.openEuler-24.03-LTS-Next(3.2.2):正常修复
5.openEuler-24.03-LTS-SP1(3.2.2):正常修复
6.openEuler-24.03-LTS-SP3(3.2.2):正常修复
7.openEuler-24.03-LTS-SP4(3.2.2):正常修复

likedislike
openeuler-ci-botopeneuler-ci-bot成员
3 天前 将 small_leek、shinwell_hu、tong_1001 设为负责人
openeuler-ci-botopeneuler-ci-bot成员
3 天前 修改了issue 的描述
openeuler-ci-botopeneuler-ci-bot成员
3 天前 将 hubin1305 设为负责人,移除负责人 small_leek、shinwell_hu、tong_1001
openeuler-ci-botopeneuler-ci-bot成员
3 天前 添加了label:sig/sig-ruby
openeuler-ci-bot
openeuler-ci-bot成员
3 天前 评论:

Welcome To openEuler Community

Hey @tong_1001 , thanks for your contribution to the community.

Bot Usage Manual

I'm the Bot here serving you. You can find the instructions on how to interact with me at Here . That means you can comment below every pull request or issue to trigger Bot Commands. You can self-configure the PR merge rules for this repository. For more details, please refer to Here.

Contact Guide

If you have any questions, please contact the SIG: sig-ruby ,
and any of the maintainers: @shinwell_hu, @small_leek ,
and any of the committers: @hubin1305, @shenyangyang .

likedislike
openeuler-ci-bot
openeuler-ci-bot成员
3 天前 评论:

issue处理注意事项:
1. 提交正常修复分支的修复PR时,必须关联当前issue,否则无法关闭当前issue;
2. 模板内容需要填写完整, 无论是受影响或者不受影响都需要填写完整内容;
3. 以下为模板中需要填写完整的内容, 请复制到评论区回复;
注: 内容的关键词(影响性分析说明, openEuler评分, 受影响版本排查(受影响/不受影响), 修复是否涉及abi变化(是/否), 原因说明)不能省略,省略后cve-manager将无法正常解析填写内容.


影响性分析说明:

openEuler评分: (评分和向量)

受影响版本排查(受影响/不受影响):
1.master(3.2.8):
2.openEuler-20.03-LTS-SP4(2.5.8):
3.openEuler-22.03-LTS-SP4(3.0.3):
4.openEuler-24.03-LTS-Next(3.2.2):
5.openEuler-24.03-LTS-SP1(3.2.2):
6.openEuler-24.03-LTS-SP3(3.2.2):
7.openEuler-24.03-LTS-SP4(3.2.2):

修复是否涉及abi变化(是/否):
1.master(3.2.8):
2.openEuler-20.03-LTS-SP4(2.5.8):
3.openEuler-22.03-LTS-SP4(3.0.3):
4.openEuler-24.03-LTS-Next(3.2.2):
5.openEuler-24.03-LTS-SP1(3.2.2):
6.openEuler-24.03-LTS-SP3(3.2.2):
7.openEuler-24.03-LTS-SP4(3.2.2):

原因说明:
1.master(3.2.8):
2.openEuler-20.03-LTS-SP4(2.5.8):
3.openEuler-22.03-LTS-SP4(3.0.3):
4.openEuler-24.03-LTS-Next(3.2.2):
5.openEuler-24.03-LTS-SP1(3.2.2):
6.openEuler-24.03-LTS-SP3(3.2.2):
7.openEuler-24.03-LTS-SP4(3.2.2):


原因说明填写请参考下方表格(注意:版本是否受影响和版本的原因说明必须对应,例如master版本分支受影响,那原因说明只能是受影响对应的原因之一!):

分支状态
原因说明 使用场景
受影响 正常修复 受影响且需要修复(包含升级版本修复)的漏洞;
受影响且已经修复的漏洞(历史修复PR也需要关联issue);
若因特殊原因无法修复,应修改原因说明为【不修复-特殊原因】,并在安委会备案相关情况。
受影响 漏洞仍在分析中 已关注到相关漏洞,正在处理,未明确漏洞影响和修复方案。
受影响 暂不修复-暂无解决方案或补丁 当前没有可用的修复或补救措施。【影响性分析】中应包含有关为什么没有修复或补救措施的详细说明、上游相关PR等。
受影响 不修复-超出修复范围 没有漏洞的修复计划。当版本停维、软件包宣布生命周期终止或弃用使用。
受影响 不修复-特殊原因导致不再修复 如存在其他特殊情况不修复相关漏洞,或评估后无法升级修复,应在openEuler社区安全委员会例会进行说明备案。
【影响性分析】中应包含不发布修复的详细说明、特殊情况还应有安委会会议纪要。
不受影响 不受影响-组件不存在 软件不受影响,因为易受攻击的组件不在产品中。
不受影响 不受影响-已有内置的内联控制或缓解措施 内置的内联控制或缓解措施可防止攻击者利用漏洞
不受影响 不受影响-漏洞代码不能被攻击者触发 易受攻击的组件存在,并且该组件包含易受攻击的代码。但是,易受攻击的代码的使用方式使得攻击者无法进行任何预期的攻击。
不受影响 不受影响-漏洞代码不在执行路径 易受影响的代码在执行过程中不可访问,包括产品的非预期状态。产品不使用也不执行的组件。
不受影响 不受影响-漏洞代码不存在 产品不受影响,因为漏洞背后的代码在产品中不存在。与component_not_present不同的是,有问题的组件存在,但由于某种原因(例如安全的编译器选项)使漏洞的特定代码不存在于组件中。

issue处理具体操作请参考:
https://atomgit.com/openeuler/cve-manager/blob/master/cve-vulner-manager/doc/md/manual.md
pr关联issue具体操作请参考:
https://docs.atomgit.com/docs/help/home/org_project/pullrequests/pr-related-issue

likedislike
openeuler-ci-botopeneuler-ci-bot成员
3 天前 添加了label:CVE/UNFIXED
openeuler-ci-bot
openeuler-ci-bot成员
3 天前 评论:
参考网址 关联pr 状态 补丁链接
https://www.opencve.io/cve/CVE-2026-82455NoneNonehttps://github.com/ruby/rubygems/commit/103ca4230deacb31b9fcd813de109e83b5fc71ac
https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2026-82455
https://security-tracker.debian.org/tracker/CVE-2026-82455NoneNonehttps://github.com/ruby/rubygems/commit/103ca4230deacb31b9fcd813de109e83b5fc71ac
http://www.cnnvd.org.cn/web/vulnerability/queryLds.tag?qcvCnnvdid=CVE-2026-82455
https://nvd.nist.gov/vuln/detail/CVE-2026-82455
https://ubuntu.com/security/CVE-2026-82455NoneNonehttps://discourse.ubuntu.com/c/project

说明:补丁链接仅供初步排查参考,实际可用性请人工再次确认,补丁下载验证可使用CVE补丁工具
若补丁不准确,烦请在此issue下评论 '/report-patch 参考网址 补丁链接1,补丁链接2' 反馈正确信息,便于我们不断优化工具,不胜感激。
如 /report-patch https://security-tracker.debian.org/tracker/CVE-2021-3997 https://github.com/systemd/systemd/commit/5b1cf7a9be37e20133c0208005274ce4a5b5c6a1

likedislike
openeuler-ci-bot
openeuler-ci-bot成员
3 天前 评论:

@tong_1001 CVE信息从NVD同步失败, 请稍后重试, 或者数据源不存在.

likedislike
tong_1001
3 天前 评论:

/branches master /name shixuantong /email sxt1001@qq.com

likedislike
xiaoo_robot
xiaoo_robot
3 天前 评论:

正在自动化处理任务,任务编号:TASK-gitcode__ruby-138-20260831092431,指定分支:master

✅ 任务结束 (用时: 47分钟)

likedislike
xiaoo_robotxiaoo_robot
3 天前 关联了pull request:fix: CVE-2026-82455 - master
xiaoo_robot
xiaoo_robot
3 天前 评论:
likedislike
xiaoo_robot
xiaoo_robot
3 天前 评论:

补丁适配报告 (CVE-2026-82455)

1. backport-CVE-2026-82455-1.patch

  • 状态: 适配成功 (status=adapted)
  • 置信度: high

适配冲突说明

适配说明

  • Both hunks required context adaptation due to version differences between upstream rubygems and Ruby 3.2.8 bundled rubygems. Hunk 1 (package.rb): upstream uses copy_stream(tar.io, out, entry.size) and File.open do/end block while Ruby 3.2.8 uses out.write entry.read and inline block
  • context lines adjusted, 1-space indentation offset corrected. Hunk 2 (test_gem_package.rb): anchor methods test_extract_tar_gz_symlink_directory and test_extract_symlink_into_symlink_dir don't exist in Ruby 3.2.8
  • context re-anchored on test_extract_tar_gz_symlink_relative_path (ends with File.read(extracted) at line 573) and test_extract_tar_gz_symlink_broken_relative_path. Additionally, symlink_supported? method was inlined from installer_test_case.rb (lines 232-247) since it is not available in TestGemPackage's inheritance chain (TestGemPackage < Gem::Package::TarTestCase < Gem::TestCase
  • symlink_supported? only defined in Gem::InstallerTestCase, a sibling subclass). All core + lines preserved byte-for-byte (verified: diff of + lines between original and adapted = empty). Divergence score: 0 (no structural changes - no inheritance/method_signature/variable_access/syntax_sugar/class_relocation changes).
完整代码 diff(原补丁 → 适配补丁)

lib/rubygems/package.rb

--- 原补丁/lib/rubygems/package.rb
+++ 适配补丁/lib/rubygems/package.rb
@@ -1,4 +1,4 @@
-@@ -453,6 +453,11 @@ def extract_tar_gz(io, destination_dir, pattern = "*") # :nodoc:
+@@ -445,6 +445,11 @@ EOM
            directories << mkdir
          end
  
@@ -8,5 +8,5 @@
 +        end
 +
          if entry.file?
-           File.open(destination, "wb") do |out|
-             copy_stream(tar.io, out, entry.size)
+           File.open(destination, "wb") {|out| out.write entry.read }
+           FileUtils.chmod file_mode(entry.header.mode), destination

test/rubygems/test_gem_package.rb

--- 原补丁/test/rubygems/test_gem_package.rb
+++ 适配补丁/test/rubygems/test_gem_package.rb
@@ -1,7 +1,23 @@
-@@ -615,6 +615,33 @@ def test_extract_tar_gz_symlink_directory
+@@ -573,6 +573,49 @@ class TestGemPackage < Gem::Package::TarTestCase
                   File.read(extracted)
    end
  
++  @@symlink_supported = nil
++
++  # This is needed for Windows environment without symlink support enabled (the default
++  # for non admin) to be able to skip test for features using symlinks.
++  def symlink_supported?
++    if @@symlink_supported.nil?
++      begin
++        File.symlink("", "")
++      rescue Errno::ENOENT, Errno::EEXIST
++        @@symlink_supported = true
++      rescue NotImplementedError, SystemCallError
++        @@symlink_supported = false
++      end
++    end
++    @@symlink_supported
++  end
 +
 +  def test_extract_tar_gz_rejects_preexisting_symlink_escape
 +    omit "Symlinks not supported or not enabled" unless symlink_supported?
@@ -29,6 +45,6 @@
 +    refute File.exist?(escaped), "must not write outside extraction root via symlink"
 +  end
 +
-   def test_extract_symlink_into_symlink_dir
-     omit "Symlinks not supported or not enabled" unless symlink_supported?
+   def test_extract_tar_gz_symlink_broken_relative_path
      package = Gem::Package.new @gem
+     package.verify

需人工处理的补丁

以下补丁未能自动完成适配,需要人工介入处理,请勿视为已修复。

backport-CVE-2026-82455-2.patch

无需应用:该补丁被判定为不适用于当前 baseline(skipped)。

原因

  • Patch-2 removes a redundant blank line between test_extract_tar_gz_symlink_directory and test_extract_tar_gz_rejects_preexisting_symlink_escape in test/rubygems/test_gem_package.rb. Patch-1 (backport-CVE-2026-82455-1.patch) already applied, inserted the symlink_supported? method and class variable between these two methods, eliminating the double blank line that patch-2 targets. The entire file now uses single-blank-line separators
  • no redundant blank line exists to delete. The patch's change is effectively a no-op in the current baseline.
likedislike
tong_1001
3 天前 评论:
tong_1001
3 天前 评论:
Ttong_1001
3 天前 修改了issue 的描述
Ttong_1001
3 天前 关联了pull request:fix CVE-2026-82455
Ttong_1001
3 天前 关联了pull request:fix CVE-2026-82455
Ttong_1001
3 天前 关联了pull request:fix CVE-2026-82455
tong_1001
3 天前 评论:

新增测试用例执行失败,报错主要信息:

NoMethodError: undefined method `symlink_supported?'
likedislike
Ttong_1001
2 天前 关联了pull request:fix CVE-2026-82455
tong_1001
2 天前 评论:

ruby-2.5.8适配补丁缺少函数normalize_path函数,需要回合下面补丁:
https://github.com/ruby/rubygems/commit/35984510e0a3c192e66571b5bd1ce80f281ad0e8

likedislike
Ttong_1001
2 天前 关联了pull request:fix CVE-2026-82455
openeuler-ci-botopeneuler-ci-bot成员
1 天前 关联了pull request:[sync] PR-348: fix CVE-2026-82455
openeuler-ci-botopeneuler-ci-bot成员
1 天前 关联了pull request:[sync] PR-347: fix CVE-2026-82455
openeuler-ci-botopeneuler-ci-bot成员
1 天前 关联了pull request:[sync] PR-347: fix CVE-2026-82455
openeuler-ci-botopeneuler-ci-bot成员
1 天前 关联了pull request:[sync] PR-347: fix CVE-2026-82455
tong_1001
1 天前 评论:

/assign

likedislike
openeuler-ci-botopeneuler-ci-bot成员
1 天前 将 tong_1001 设为负责人,移除负责人 hubin1305
tong_1001
1 天前 评论:

影响性分析说明:RubyGems 在提取 Gem 包时,未能在文件系统符号链接解析后重新验证路径包含性。当目标目录中已存在指向提取根目录之外的符号链接时,原本看似写入目标目录内的文件实际会被写入目录外部,从而破坏了提取操作的安全边界。

openEuler评分:
6.9
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N

受影响版本排查(受影响/不受影响):
1.master(3.2.8):受影响
2.openEuler-20.03-LTS-SP4(2.5.8):受影响
3.openEuler-22.03-LTS-SP4(3.0.3):受影响
4.openEuler-24.03-LTS-Next(3.2.2):受影响
5.openEuler-24.03-LTS-SP1(3.2.2):受影响
6.openEuler-24.03-LTS-SP3(3.2.2):受影响
7.openEuler-24.03-LTS-SP4(3.2.2):受影响

修复是否涉及abi变化(是/否):
1.master(3.2.8):否
2.openEuler-20.03-LTS-SP4(2.5.8):否
3.openEuler-22.03-LTS-SP4(3.0.3):否
4.openEuler-24.03-LTS-Next(3.2.2):否
5.openEuler-24.03-LTS-SP1(3.2.2):否
6.openEuler-24.03-LTS-SP3(3.2.2):否
7.openEuler-24.03-LTS-SP4(3.2.2):否

原因说明:
1.master(3.2.8):正常修复
2.openEuler-20.03-LTS-SP4(2.5.8):正常修复
3.openEuler-22.03-LTS-SP4(3.0.3):正常修复
4.openEuler-24.03-LTS-Next(3.2.2):正常修复
5.openEuler-24.03-LTS-SP1(3.2.2):正常修复
6.openEuler-24.03-LTS-SP3(3.2.2):正常修复
7.openEuler-24.03-LTS-SP4(3.2.2):正常修复

likedislike
openeuler-ci-botopeneuler-ci-bot成员
1 天前 修改了issue 的描述
openeuler-ci-bot
openeuler-ci-bot成员
1 天前 评论:

@tong_1001 经过 cve-manager 解析, 已分析的内容如下表所示:

状态 分析项目 内容
已分析 1.影响性分析说明 RubyGems 在提取 Gem 包时,未能在文件系统符号链接解析后重新验证路径包含性。当目标目录中已存在指向提取根目录之外的符号链接时,原本看似写入目标目录内的文件实际会被写入目录外部,从而破坏了提取操作的安全边界。
已分析 2.openEulerScore 6.9
已分析 3.openEulerVector AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N
已分析 4.受影响版本排查 master:受影响,openEuler-20.03-LTS-SP4:受影响,openEuler-22.03-LTS-SP4:受影响,openEuler-24.03-LTS-Next:受影响,openEuler-24.03-LTS-SP1:受影响,openEuler-24.03-LTS-SP3:受影响,openEuler-24.03-LTS-SP4:受影响
已分析 5.是否涉及abi变化 master:否,openEuler-20.03-LTS-SP4:否,openEuler-22.03-LTS-SP4:否,openEuler-24.03-LTS-Next:否,openEuler-24.03-LTS-SP1:否,openEuler-24.03-LTS-SP3:否,openEuler-24.03-LTS-SP4:否
已分析 6.原因说明 master:正常修复,openEuler-20.03-LTS-SP4:正常修复,openEuler-22.03-LTS-SP4:正常修复,openEuler-24.03-LTS-Next:正常修复,openEuler-24.03-LTS-SP1:正常修复,openEuler-24.03-LTS-SP3:正常修复,openEuler-24.03-LTS-SP4:正常修复

请确认分析内容的准确性, 确认无误后, 您可以进行后续步骤, 否则您可以继续分析.

likedislike
openeuler-ci-bot
openeuler-ci-bot成员
1 天前 评论:

经过cve-manager解析,部分分支PR未合入,如红色字体所示:

原因说明:
1.master:正常修复
2.openEuler-20.03-LTS-SP4:正常修复
3.openEuler-22.03-LTS-SP4:正常修复
4.openEuler-24.03-LTS-Next:正常修复(PR未合入)
5.openEuler-24.03-LTS-SP1:正常修复(PR未合入)
6.openEuler-24.03-LTS-SP3:正常修复(PR未合入)
7.openEuler-24.03-LTS-SP4:正常修复

likedislike
openeuler-ci-botopeneuler-ci-bot成员
1 天前 issue状态由 待办的 改变为 进行中
tong_1001
1 天前 评论:

/close

likedislike
openeuler-ci-bot
openeuler-ci-bot成员
1 天前 评论:

经过cve-manager解析,所有PR均已合入

likedislike
openeuler-ci-botopeneuler-ci-bot成员
1 天前 issue状态由 进行中 改变为 已完成
openeuler-ci-botopeneuler-ci-bot成员
1 天前 关闭了 issue
openeuler-ci-botopeneuler-ci-bot成员
1 天前 删除了label:CVE/UNFIXED
openeuler-ci-botopeneuler-ci-bot成员
1 天前 添加了label:CVE/FIXED
openeuler-ci-bot
openeuler-ci-bot成员
1 天前 评论:

经过cve-manager解析,所有PR均已合入

likedislike
Ttong_1001
1 天前 关联了pull request:Fix CVE-2025-24294 CVE-2026-27820 CVE-2026-47240 CVE-2026-47241 CVE-2026-47242 CVE-2026-80212 CVE-2026-80213 CVE-2026-82455