fix(安全性): 限制 _URL_QUERY_STRING_RE 路径部分 — 对多个 `://` scrub_error 输入使用二次回溯

作者: LearningCircuit创建于 2026年9月17日更新于 2026年9月18日
标签securitypriority: highpythonseverity:should-fixfrom-review-extractionfollow-up-work-complete

摘要

在 #6422 中添加的 URL 查询字符串修改模式限制了方案继续({0,31}),但未限制路径部分 [^\s?#]+。在一个不包含多个 :// 发生和没有 ? 的空格分隔标记中,贪心路径匹配会从每个方案匹配偏移量开始一次一个字符回溯 — 对受攻击者影响的 scrub_error() 路径的总工作量为二次,与 PR 旨在关闭的同一 CPU 受限 DoS 类相同。合并的计时测试使用了不包含 :// 的输入,因此它只保护了已经修复的方案限制。

内容来源: LearningCircuit/local-deep-research