Address 3 pysentry security vulnerabilities (idna, pymdown-extensions, markdown) #20
Labels
No labels
bug
contribution welcome
duplicate
enhancement
good first issue
help wanted
invalid
question
upstream
No milestone
No assignees
1 participant
Notifications
Due date
No due date set.
Reference
marvin8/zaojun#20
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Running
nox -s pysentryreveals three vulnerabilities across transitive dependencies:markdown3.10.2idna3.11pymdown-extensions10.21.2None are in zaojun's own code — all are transitive dependencies pulled in via the docs toolchain or
httpx.Findings
idna (GHSA-65pc-fj4g-8rjx): pulled in via
httpx→idna. DoS viaidna.encode()on crafted inputs; fixed in ≥3.15.pymdown-extensions (GHSA-62q4-447f-wv8h): pulled in via
mkdocs-material→pymdown-extensions. Path traversal bypass in snippets preprocessor; fixed in ≥10.21.3.markdown (PYSEC-2026-89): pulled in by the entire docs toolchain (mkdocs, mkdocs-material, mkdocstrings). Malformed HTML-like sequences can crash HTMLParser. No fix available yet — docs-build only, not in the published package.
Plan
idna>=3.15andpymdown-extensions>=10.21.3to[tool.uv] constraint-dependenciesinpyproject.toml(same pattern as existingrequests/urllib3constraints).uv lockto pull updated pinned versions intouv.lock.[tool.pysentry.ignore] while_no_fix = ["PYSEC-2026-89"]— pysentry auto-discovers this section;while_no_fixre-flags if a fix ever lands.vuln-ignore = ["PYSEC-2026-89"]to[tool.zaojun]so zaojun'''s self-scan also suppresses the unfixable advisory.Single commit on branch
fix/issue-20-address-pysentry-vulnerabilities.