Polynomial ReDoS in python-markdown2 metadata parsing (_key_val_list_pat)
维护者通常 3 天内回复
评估
调研方向
The slowdown comes from the regex named _key_val_list_pat, used by the metadata extra. Start by running the timing script in the issue with increasing input sizes to confirm the super-linear growth, then read that pattern and find which quantifiers or alternations overlap. Done means the timings stay roughly linear and the existing metadata tests still pass. Because this is a security report and the thread has no discussion yet, check with a maintainer before writing a fix.
由索引模型根据 Issue 内容生成。
描述
Describe the bug
Please note: I'm not the author of this bug report, I merely report it to the project community as it has been published a while ago publically and seems to not have reached the right audience.
Please read https://gist.github.com/NanaSec/354b4188bbd7f4105008c7b8be49b0ba for the writeup.
To Reproduce
import time, markdown2
def render(value):
doc = "---\nkey: %s\n---\n\n# hello\n" % value
t = time.time(); markdown2.markdown(doc, extras=["metadata"]); return time.time()-t
for n in (8000, 16000, 32000, 64000, 128000):
print(n, round(render("-" + " " * n), 3), "s")
- 主要语言
- Python
- 星标
- 2.8k
- 派生
- 464
- 平均合并
- 2 天 22 小时
- 30 天内合并 PR
- 11
环境准备
这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
trentm/python-markdown2 的其他 Issue
-
Add py.typed marker可能已有人在做 @mac-agent 于 204 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 72/100
trentm/python-markdown2#696 ·
维护者通常 3 天内回复
-
Bug
难度 3/5 1-2 天 新手友好度 58/100
trentm/python-markdown2#688 · 4 条评论 ·
维护者通常 3 天内回复
-
Bug
难度 3/5 1-2 天 新手友好度 58/100
trentm/python-markdown2#679 · 2 条评论 ·
维护者通常 3 天内回复
-
难度 3/5 1-2 天 新手友好度 35/100
trentm/python-markdown2#635 · 2 条评论 ·
维护者通常 3 天内回复
-
Improve performance by removing SHA可能已有人在做 关联的 PR 仍在进行中或已合并。 未关闭
难度 4/5 3-5 天 新手友好度 35/100
trentm/python-markdown2#618 ·
维护者通常 3 天内回复
查看 trentm/python-markdown2 的全部 Issue
相似的 Issue
-
bug
难度 2/5 1-3 小时 新手友好度 84/100
维护者通常 1 天内回复
-
Status: Triaged Type: Enhancement
难度 1/5 1 小时以内 新手友好度 82/100
canonical/craft-store#448 · 1 条评论 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 74/100
维护者通常 1 天内回复
-
good first issue research size:s skill:numerics sub-issue
难度 2/5 1-3 小时 新手友好度 78/100
SKaiNET-developers/SKaiNET#1372 ·
维护者通常 1 天内回复
-
debt
难度 2/5 1-3 小时 新手友好度 68/100
microsoft/vscode-flake8#601 ·
维护者通常 1 天内回复