Polynomial ReDoS in python-markdown2 metadata parsing (_key_val_list_pat)
Maintainer antworten meist innerhalb von 2 Tagen
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 35/100
Rechercherichtung
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.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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")
- Vorherrschende Sprache
- Python
- Sterne
- 2.8k
- Forks
- 470
- Ø Merge
- 3 T. 2 Std.
- Gemergte PRs (30 T.)
- 11
Entwicklungsumgebung
Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus trentm/python-markdown2
-
Add py.typed markerEvtl. vergeben @mac-agent hat das vor 210 Tagen übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
trentm/python-markdown2#696 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
Bug
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 58/100
trentm/python-markdown2#688 · 4 Kommentare ·
Maintainer antworten meist innerhalb von 2 Tagen
-
Bug
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 58/100
trentm/python-markdown2#679 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 2 Tagen
-
Bad performance in _unescape_special_charsEvtl. vergeben Ein verknüpfter Pull Request ist offen oder bereits gemergt. Offen
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 35/100
trentm/python-markdown2#635 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 2 Tagen
-
Improve performance by removing SHAEvtl. vergeben Ein verknüpfter Pull Request ist offen oder bereits gemergt. Offen
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
trentm/python-markdown2#618 ·
Maintainer antworten meist innerhalb von 2 Tagen
Alle Issues in trentm/python-markdown2
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
google-agentic-commerce/AP2#388 ·
-
area:codegen backend:cuda backend:hip bug direction:input
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
CrossGL/crosstl#3061 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 85/100
rlaope/oh-my-hermes#2304 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 85/100
mochan-tk/agentic-dev-kit-for-codex#64 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Windows ARM memory-leakOffenbug docs performance
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 85/100
Maintainer antworten meist innerhalb von 3 Tagen