Catégories
CVE-2026-61632 medium CVSS 5.3

Traversée de chemin dans pymdown-extensions (CVE-2026-61632)

Résumé

Traversée de chemin dans pymdown-extensions (CVE-2026-61632). Risque d'opérations non autorisées ou de divulgation. Exploitable via b64. Atténuation : mise à jour vers 11.0.0 ou plus.

Description d'origine

La description telle que publiée par la source (souvent en anglais).

Summary

The b64 extension inlines images referenced by `` as base64 data URIs. When resolving the src path it joins it onto the configured base_path with os.path.normpath and opens the result directly, with no check that the resolved path stays inside base_path. A src containing ../ sequences, or an absolute path, therefore reads a file outside base_path as long as that file has an allowed image extension (.png, .jpg, .jpeg, .gif, .svg). The base64 of that file is then embedded in the rendered output, disclosing its contents.

This is a separate code path from the snippets traversal issues (GHSA-jh85-wwv9-24hv, GHSA-62q4-447f-wv8h). It lives in pymdownx/b64.py and has no path restriction of any kind. Confirmed on 10.21.3 installed from PyPI.

Details

In pymdownx/b64.py, function repl_path (around lines 68 to 90 on main):

if is_absolute:
    file_name = os.path.normpath(path)                          # absolute src: base_path ignored entirely
else:
    file_name = os.path.normpath(os.path.join(base_path, path)) # relative src: '../' escapes base_path
if os.path.exists(file_name):
    ext = os.path.splitext(file_name)[1].lower()
    for b64_ext in file_types:
        if ext in b64_ext:
            with open(file_name, "rb") as f:                    # opened with no containment check
                ...

There is no startswith(base_path), no os.path.realpath comparison, and no rejection of ... Both branches are…

Source: GitHub Security Advisories (Global) NVD GitHub Advisory

Résumé généré automatiquement

Assemblé par SecPulse à partir des données sources (CVSS, CWE, versions affectées) à l'aide de modèles, sans IA. Vérifiez la description d'origine et les références ci-dessous.

Une vulnérabilité référencée CVE-2026-61632 a été découverte dans pymdown-extensions.
Des attaquants peuvent cibler un point d'entrée spécifique comme b64 à distance pour détourner le produit.
Risque d'opérations non autorisées ou de divulgation. Score CVSS : 5.3/10.
Action : mettez à jour pymdown-extensions vers 11.0.0 ou supérieur.
En cas de doute, contactez votre service informatique ou cherchez « pymdown-extensions CVE-2026-61632 » sur le site de l'éditeur.

CVE-2026-61632 (pymdown-extensions) — CWE-22 / CVSS v3 5.3
Vecteur d'attaque : distant (réseau) / non authentifié / sans interaction utilisateur
Surface d'attaque : b64 / src / base_path / os.path.normpath
Correctif : 11.0.0 — appliquer immédiatement
Plan : 1) Audit SBOM, 2) Mise à jour staging→prod, 3) Surveillance WAF/proxy sur les endpoints affectés, 4) Recherche d'IOC dans les logs.
Réfs : voir GHSA / avis éditeur / version corrigée liés sur cette page.

❓ Quel est le problème

Une traversée de chemin (CWE-22) affecte pymdown-extensions. Les attaquants atteignent le code vulnérable via b64 sans authentification.

📍 Périmètre concerné

Consultez l'avis de l'éditeur pour les versions affectées de pymdown-extensions. Surface d'attaque : b64 / src / base_path / os.path.normpath.

🔥 Gravité

Gravité : Moyenne (CVSS 5.3/10). Risque d'opérations non autorisées ou de divulgation.

🔧 Comment corriger

Mettre à jour vers 11.0.0.

🛡️ Contournement

En attendant le correctif : désactivez la fonctionnalité concernée, appliquez des règles WAF, ou restreignez l'accès par ACL réseau.

🔍 Détection

Recherchez dans les logs des requêtes correspondant aux IOC connus de cette CVE. Auditez les SBOM/dépendances.

Actions de réponse

Étapes concrètes et exemples de commandes que les équipes SOC/SRE doivent exécuter dans l'ordre

  1. 1
    Identify exposure identify
    grep -r 'pymdown-extensions' . | grep -v node_modules

    リポジトリと本番環境の依存ファイル (package-lock.json / requirements.txt / go.sum / Gemfile.lock 等) で pymdown-extensions を grep し、稼働しているサービス・バージョンを把握する。

  2. 2
    Apply patch patch
    Upgrade pymdown-extensions to 11.0.0

    ステージング環境で 11.0.0 に上げて回帰テスト → 本番反映。回帰テストはアプリの主要ハッピーパスを含めること。

  3. 3
    Post-deployment verification verify
    Confirm patched version is live in production

    パッチ適用後、ステージングで PoC または同等の悪用パターンを再現して脆弱性が閉じたことを確認。本番ではアクセスログ・WAF でアラート再発が無いか継続監視。

Paquets affectés

pip pymdown-extensions
[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"11.0.0"}]}]
PyPI pymdown-extensions
[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"11.0.0"}]}]

État des correctifs par distribution

Paquets corrigés publiés par chaque distribution pour cette CVE

Références

Nous utilisons des cookies pour l'analyse d'audience et la mesure publicitaire. Ce réglage s'applique à tous les sites de Game co., Ltd. En savoir plus