markdown2 malformed HTML tokenizer CPU denial of service
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 55/100
Línea de trabajo
Comienza en lib/markdown2.py, en _sorta_html_tokenize_re.split(), y reproduce el problema con bash ./poc/run.sh usando la prueba de concepto adjunta. Inspecciona la expresión regular de la rama de etiquetas y verifica que los fragmentos malformados ya no provoquen el timeout de un segundo, preservando al mismo tiempo el comportamiento esperado de la tokenización HTML.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Describe the bug
python-markdown2 can spend unbounded CPU in its inline HTML tokenizer when rendering attacker-controlled Markdown containing repeated malformed tag fragments. At the pinned commit, the public markdown2.markdown() path can pass that text to _sorta_html_tokenize_re.split() in lib/markdown2.py, and a roughly 60 KB input deterministically reaches the local one-second timeout oracle. Applications that render untrusted Markdown synchronously can therefore have request workers tied up by a single document.
To Reproduce
INT-regex-markdown2-html-tokenizer-redos.zip
See attached file.
bash ./poc/run.sh
timed_out after 1s
Expected behavior
Tag-branch regex fails to match the malformed fragment in linear time.
Debug info
- Project: markdown2
- Repo: https://github.com/trentm/python-markdown2
- Pinned ref: 28d94df671eb2a149643310513f84bb00a084072
For more details, see README.md of attached file.
- Lenguaje dominante
- Python
- Estrellas
- 2.8k
- Forks
- 459
- Merge medio
- 2 d 19 h
- PR fusionados (30 d)
- 4
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de trentm/python-markdown2
-
Add py.typed marker Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
trentm/python-markdown2#696 ·
-
More XSS's in safe mode Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
trentm/python-markdown2#726 ·
-
Bug
Dificultad 3/5 1-2 días Aptitud para principiantes 58/100
trentm/python-markdown2#688 · 4 comentarios ·
-
Bug
Dificultad 3/5 1-2 días Aptitud para principiantes 58/100
trentm/python-markdown2#679 · 2 comentarios ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
trentm/python-markdown2#635 · 2 comentarios ·
Todos los issues de trentm/python-markdown2
Issues similares
-
bug priority:low
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
CyberAgent/psd2svg#436 ·
-
area/install-update comp/cli comp/desktop P3 sweeper:risk-compatibility type/bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
NousResearch/hermes-agent#122386 · 1 comentario ·
-
ai-generated
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
vllm-project/production-stack#1105 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100