Skip to content

Pin pymdown-extensions to 10.21.3 instead of 11.0.1 (Python 3.9 incompatible) - #2249

Merged
Nayor merged 1 commit into
masterfrom
fix/pymdown-extensions-python39-compat
Sep 16, 2026
Merged

Nayor merged 1 commit into
masterfrom
fix/pymdown-extensions-python39-compat

Conversation

@Nayor

@Nayor Nayor commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Fix possible fix(deps): 2 vulnerable dependencies in requirements.txt #2246 (35a0d101) bumped pymdown-extensions straight to 11.0.1 to fix a ReDoS vulnerability (CVE-2026-67422). However, pymdown-extensions 11.0.0 dropped Python 3.9 support (Requires-Python >=3.10), and our production image (docker/Dockerfile) plus docker/Dockerfile.dev are still pinned to python:3.9. As a result, pip install -r requirements.txt fails outright on any 3.9 environment (this is what broke locally, see the ERROR: Ignored the following versions that require a different python version output).
  • 10.21.3 is the last release before that Python-version drop, and it already contains the fix for the other vulnerability the same commit was addressing (CVE-2026-46338, a pymdownx.snippets path-traversal bypass affecting 10.0.1–10.21.2, fixed in 10.21.3+). Confirmed via the PyPI JSON API that 10.21.3's requires_python is >=3.9.

Test plan

  • pip install --dry-run -r requirements.txt resolves cleanly under python:3.9-slim-bookworm (matching docker/Dockerfile) — full dependency set resolves, including pymdown-extensions-10.21.3.

@codacy-production

codacy-production Bot commented Sep 16, 2026

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

🟢 Metrics 0 complexity · 0 duplication

Metric Results
Complexity 0
Duplication 0

View in Codacy

🟢 Coverage ∅ diff coverage

Metric Results
Coverage variation Report missing for 8dcac321
Diff coverage diff coverage

View coverage diff in Codacy

Coverage variation details
Coverable lines Covered lines Coverage
Common ancestor commit (8dcac32) Report Missing Report Missing Report Missing
Head commit (d85d104) 22269 20594 92.48%

Coverage variation is the difference between the coverage for the head and common ancestor commits of the pull request branch: <coverage of head commit> - <coverage of common ancestor commit>

Diff coverage details
Coverable lines Covered lines Diff coverage
Pull request (#2249) 0 0 ∅ (not applicable)

Diff coverage is the percentage of lines that are covered by tests out of the coverable lines that the pull request added or modified: <covered lines added or modified>/<coverable lines added or modified> * 100%

1 Codacy didn't receive coverage data for the commit, or there was an error processing the received data. Check your integration for errors and validate that your coverage setup is correct.

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

…patible)

The previous security fix (35a0d10) bumped pymdown-extensions straight to
11.0.1, but pymdown-extensions 11.0.0 dropped Python 3.9 support. Our
production image (docker/Dockerfile) and Dockerfile.dev are still pinned
to python:3.9, so `pip install -r requirements.txt` fails outright with
"Requires-Python >=3.10" for every 11.x release.

10.21.3 is the last release before that drop and already contains the fix
for the other vulnerability the same commit was addressing (a
pymdownx.snippets path-traversal bypass, fixed in 10.21.3+).

Verified `pip install --dry-run -r requirements.txt` resolves cleanly
under python:3.9-slim-bookworm (matching docker/Dockerfile).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@Nayor
Nayor force-pushed the fix/pymdown-extensions-python39-compat branch from 13542bb to d85d104 Compare September 16, 2026 07:22
@Nayor
Nayor merged commit dd1ce78 into master Sep 16, 2026
8 checks passed
@Nayor
Nayor deleted the fix/pymdown-extensions-python39-compat branch September 16, 2026 07:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant