已开启
fix undici WebSocket PONG backpressure to prevent memory exhaustion (CVE-2026-109932) #275
fix undici WebSocket PONG backpressure to prevent memory exhaustion (CVE-2026-109932) #275
已开启
huijing_zhang创建于 6 小时前
huijing_zhang
huijing_zhang
6 小时前

fixes #301

影响性分析说明:

受影响版本排查(受影响):

  • openEuler-26.09:受影响(nodejs 24.18.1,bundled undici 7.29.0)
  • master:受影响(24.18.1)
  • openEuler-24.03-LTS-Next:受影响(24.18.1)
  • openEuler-24.03-LTS-SP4:不受影响(nodejs 20.18.2,该版本 bundled undici 不含受影响的 WebSocket 实现引入路径——如需精确判定请参考上游 advisory 版本范围)
  • openEuler-22.03-LTS-SP4 / 20.03-LTS-SP4:不在受影响版本范围(12.22.11 早于受影响 undici 引入)

原因说明:

node.js 内置的 undici WebSocket 客户端对每个收到的 PING 帧自动回复 PONG,并忽略 socket 写返回的背压信号(write() 返回 false)。恶意 WebSocket 服务器可以通过持续发送小 PING 帧使客户端出站队列无界增长,最终耗尽进程内存(DoS)。

修复方案:

回合上游 undici 修复 b217373bb0:当自动 PONG 写入触发 socket 背压(writableNeedDrain)时,停止解析并注册 drain 监听,drain 后恢复解析,使 PING 洪泛无法无界增长出站队列。node 中 undici 以 deps/undici/undici.js 打包形式存在,补丁直接对打包文件中对应解析逻辑处应用与上游一致的修复。

修复是否涉及 abi/api 变化:

否。仅修改 bundled undici.js 内部逻辑,不改变 node 对外接口。

验证:

  • 补丁已基于 node-v24.18.1.tar.xz 官方源码包验证可干净应用(patch -p1 --dry-run 通过)
  • 与 v24.22.2(undici 7.30.1)bundled undici.js 中对应修复代码逐行一致
likedislike
合并受阻
huijing_zhanghuijing_zhang
6 小时前 创建了 pull request,commit 4bd3d68b
huijing_zhanghuijing_zhang
6 小时前 关联了issue:CVE-2026-109932
openeuler-ci-botopeneuler-ci-bot成员
6 小时前 将qq_28851361,solarhu设为审查人
openeuler-ci-botopeneuler-ci-bot成员
6 小时前 添加了label:sig/sig-nodejs
openeuler-ci-bot
openeuler-ci-bot成员
6 小时前 评论:

Welcome To openEuler Community

Hey @huijing_zhang , 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-nodejs ,
and any of the maintainers: @qq_28851361, @solarhu ,
and any of the committers: @gitee-cmd, @lyn1001, @wang--ge .

likedislike
openeuler-ci-botopeneuler-ci-bot成员
6 小时前 添加了label:openeuler-cla/no
openeuler-ci-bot
openeuler-ci-bot成员
6 小时前 评论:

当前仓库存在以下 保护分支 :

Protected Branch Version Release
master 11.16.0 1.24.18.1.5
openEuler-24.03-LTS-Next 11.16.0 1.24.18.1.5
openEuler-26.09 11.16.0 1.24.18.1.5
openEuler-26.09-DevStation 11.16.0 1.24.18.1.5
openEuler-24.03-LTS-SP1 10.8.2 1.20.18.2.8
openEuler-24.03-LTS-SP3 10.8.2 1.20.18.2.8
openEuler-24.03-LTS-SP4 10.8.2 1.20.18.2.8
openEuler-20.03-LTS-SP4 6.14.16 1.12.22.11.11
openEuler-22.03-LTS-SP4 6.14.16 1.12.22.11.13
openEuler-22.03-LTS-LoongArch 6.14.16 1.12.22.11.1
revert-merge-11-master 6.4.1 1.10.11.0.1

评论 /sync <branch1> <branch2> ... 可将当前 PR 修改同步到其它分支(创建同步 PR):
a) 如果当前 PR 是 Open 状态,同步操作将延迟到 PR 被合并时执行
b) 如果当前 PR 已经 Merged,将立即执行同步操作

注意:

  1. /sync 命令可以指定同步到多个分支,仅最后一个 /sync 命令生效
  2. 如果创建的同步 PR 不正确,可通过向同步 PR 的源分支提交轻量级 PR 完善,或使用 /close 命令关闭
likedislike
openeuler-bot
openeuler-bot成员
6 小时前 评论:

门禁正在运行, 您可以通过以下链接查看实时门禁检查结果.
若您对门禁结果含义不清晰或者遇到问题不知如何解决,可参考门禁指导手册
门禁入口及编码规范检查: multiarch/src-openeuler/trigger/nodejs/120

likedislike
openeuler-botopeneuler-bot成员
6 小时前 添加了label:ci_processing
openeuler-bot
openeuler-bot成员
6 小时前 评论:

x86_64架构构建及构建后检查:multiarch/src-openeuler/x86-64/nodejs/120

likedislike
openeuler-bot
openeuler-bot成员
6 小时前 评论:

aarch64架构构建及构建后检查:multiarch/src-openeuler/aarch64/nodejs/119

likedislike
huijing_zhanghuijing_zhang
6 小时前 预合并成功(commit_id: 1d5efbaf4cc314a819a7c905df30b690a7ebe45c)
huijing_zhanghuijing_zhang
6 小时前 强制推送  1 个提交:6cd17ce4-fix undici WebSocket PONG backpressure to prevent memory exhaustion
huijing_zhanghuijing_zhang
6 小时前 预合并成功(commit_id: 1d5efbaf4cc314a819a7c905df30b690a7ebe45c)
openeuler-ci-botopeneuler-ci-bot成员
6 小时前 删除了label:openeuler-cla/no
openeuler-ci-botopeneuler-ci-bot成员
6 小时前 添加了label:openeuler-cla/yes
openeuler-ci-bot
openeuler-ci-bot成员
6 小时前 评论:

CLA Signature Pass

huijing_zhang, thanks for your pull request. All authors of the commits have signed the CLA. 👍

likedislike
openeuler-botopeneuler-bot成员
6 小时前 删除了label:ci_processing
openeuler-bot
openeuler-bot成员
6 小时前 评论:
Check Name Build Result 详情 Build Details
check_binary_file ✅SUCCESS #120
check_lfsconfig ☑EXCLUDE
check_package_yaml_file ✅SUCCESS
check_repo_in_maintain ✅SUCCESS
check_consistency ✅SUCCESS
check_spec_file ❌FAILED • changelog中日期与星期不匹配: Fri Nov 07 2026 huijing_zhang <zhanghuijing5@huawei-partners.com> - 1:24.18.1-6
x86_64 check_build ❌FAILED #120
check_install ⚪SKIPPED
check_license ⚪SKIPPED
aarch64 check_build ✅SUCCESS #119
check_install ✅SUCCESS
check_license ✅SUCCESS
likedislike
openeuler-bot
openeuler-bot成员
6 小时前 评论:

门禁正在运行, 您可以通过以下链接查看实时门禁检查结果.
若您对门禁结果含义不清晰或者遇到问题不知如何解决,可参考门禁指导手册
门禁入口及编码规范检查: multiarch/src-openeuler/trigger/nodejs/121

likedislike
openeuler-botopeneuler-bot成员
6 小时前 添加了label:ci_failed
openeuler-bot
openeuler-bot成员
6 小时前 评论:
likedislike
openeuler-botopeneuler-bot成员
6 小时前 删除了label:ci_failed
openeuler-botopeneuler-bot成员
6 小时前 添加了label:ci_processing
openeuler-bot
openeuler-bot成员
6 小时前 评论:

aarch64架构构建及构建后检查:multiarch/src-openeuler/aarch64/nodejs/120

likedislike
openeuler-bot
openeuler-bot成员
6 小时前 评论:

x86_64架构构建及构建后检查:multiarch/src-openeuler/x86-64/nodejs/121

likedislike
openeuler-botopeneuler-bot成员
5 小时前 删除了label:ci_processing
openeuler-bot
openeuler-bot成员
5 小时前 评论:
Check Name Build Result 详情 Build Details
check_binary_file ✅SUCCESS #121
check_lfsconfig ☑EXCLUDE
check_package_yaml_file ✅SUCCESS
check_repo_in_maintain ✅SUCCESS
check_consistency ✅SUCCESS
check_spec_file ❌FAILED • changelog中日期与星期不匹配: Fri Nov 07 2026 huijing_zhang <zhanghuijing5@huawei-partners.com> - 1:24.18.1-6
x86_64 check_build ✅SUCCESS #121
check_install ✅SUCCESS
check_license ✅SUCCESS
aarch64 check_build ✅SUCCESS #120
check_install ✅SUCCESS
check_license ✅SUCCESS
likedislike
openeuler-botopeneuler-bot成员
5 小时前 添加了label:ci_failed
openeuler-bot
openeuler-bot成员
5 小时前 评论:

如下为接口变更检查结果,目标分支为openEuler-26.09,请PR提交者check差异信息

Arch Name Check Items Rpm Name Check Result Build Details
compare_package(x86_64) add_rpms ✅SUCCESS #121
delete_rpms ✅SUCCESS
rpm_abi ✅SUCCESS
rpm_cmd ✅SUCCESS
rpm_files ✅SUCCESS
rpm_header ✅SUCCESS
rpm_lib ✅SUCCESS
rpm_provides ✅SUCCESS
rpm_requires npm ❌FAILED
rpm_symbol ✅SUCCESS
compare_package(aarch64) add_rpms ✅SUCCESS #120
delete_rpms ✅SUCCESS
rpm_abi ✅SUCCESS
rpm_cmd ✅SUCCESS
rpm_files ✅SUCCESS
rpm_header ✅SUCCESS
rpm_lib ✅SUCCESS
rpm_provides ✅SUCCESS
rpm_requires ✅SUCCESS
rpm_symbol ✅SUCCESS
likedislike
openeuler-bot
openeuler-bot成员
5 小时前 评论:
likedislike