Description
PyMdown Extensions is a set of extensions for the Python-Markdown markdown project. In versions up to and including 10.21.3, the b64 extension is vulnerable to a path traversal that discloses arbitrary files: it inlines images referenced by <img src="..."> by joining the src onto the configured base_path with os.path.normpath and opening the result directly, without verifying that the resolved path stays inside base_path. As a result, an src containing ../ sequences or an absolute path reads a file outside base_path as long as it has an allowed image extension (.png, .jpg, .jpeg, .gif, .svg), and the file's contents are then base64-encoded into the rendered output, disclosing them. An application that renders untrusted Markdown with pymdownx.b64 enabled can therefore leak the contents of image-extension files readable by the process to whoever controls the Markdown or views the output, a targeted file-read bounded by the extension check. This issue has been fixed in version 11.0.
Published: 2026-08-06
Score: 5.3 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The b64 extension in PyMdown Extensions performs image inlining by simply concatenating the <img src> value to a configured base_path, normalizing it, and opening the result as a file. The code does not verify that the resulting path stays within the intended base directory. Consequently, an attacker can supply a src containing "../" sequences or an absolute path to read any file with an allowed image extension that is accessible to the process. The file's contents are base64-encoded and inserted into the markdown output, allowing the attacker to exfiltrate the file contents. The weakness is a classic path traversal flaw (CWE‑22) that enables a bounded file‑read attack against the application, impacting confidentiality but not directly denying service or executing code.

Affected Systems

PyMdown Extensions is bundled with the Python‑Markdown project. The vulnerability exists in all releases up to and including 10.21.3. Versions from 11.0 onward have the bug fixed. The affected vendor is facelessuser, with product pymdown-extensions. Users running version 10.21.3 or earlier on any platform that loads untrusted Markdown with the b64 extension enabled are exposed.

Risk and Exploitability

The CVSS score of 5.3 places the flaw in the medium severity range. EPSS data is not available, and the vulnerability is not listed in the CISA KEV catalog, implying there are no confirmed large‑scale exploits yet. The attack requires that the attacker controls the Markdown input or the rendering environment to supply a malicious image source. The path traversal can only read files with image extensions (.png, .jpg, .jpeg, .gif, .svg) that are readable by the process, so the attack surface is limited to those files but still provides a mechanism for leaking sensitive data. The likely vector is an application that processes untrusted Markdown, such as a static site generator, documentation platform, or a CMS that uses pymdown-extensions for markdown rendering.

Generated by OpenCVE AI on August 7, 2026 at 00:23 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade pymdown-extensions to version 11.0 or later to eliminate the path traversal bug
  • If an upgrade is not immediately possible, disable the b64 extension in the markdown configuration so that <img src> tags are not processed
  • Ensure that the configured base_path is validated and that any rendering of untrusted Markdown is performed in a sandbox or with strict access controls

Generated by OpenCVE AI on August 7, 2026 at 00:23 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-9xwg-3r6f-jcx2 PyMdown Extensions: Path traversal in the b64 extension lets <img src> read files outside base_path
History

Fri, 07 Aug 2026 18:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Fri, 07 Aug 2026 12:30:00 +0000

Type Values Removed Values Added
References
Metrics threat_severity

None

threat_severity

Moderate


Fri, 07 Aug 2026 01:00:00 +0000

Type Values Removed Values Added
First Time appeared Facelessuser
Facelessuser pymdown Extensions
Vendors & Products Facelessuser
Facelessuser pymdown Extensions

Thu, 06 Aug 2026 22:15:00 +0000

Type Values Removed Values Added
Description PyMdown Extensions is a set of extensions for the Python-Markdown markdown project. In versions up to and including 10.21.3, the b64 extension is vulnerable to a path traversal that discloses arbitrary files: it inlines images referenced by <img src="..."> by joining the src onto the configured base_path with os.path.normpath and opening the result directly, without verifying that the resolved path stays inside base_path. As a result, an src containing ../ sequences or an absolute path reads a file outside base_path as long as it has an allowed image extension (.png, .jpg, .jpeg, .gif, .svg), and the file's contents are then base64-encoded into the rendered output, disclosing them. An application that renders untrusted Markdown with pymdownx.b64 enabled can therefore leak the contents of image-extension files readable by the process to whoever controls the Markdown or views the output, a targeted file-read bounded by the extension check. This issue has been fixed in version 11.0.
Title PyMdown Extensions: Path traversal in the b64 extension lets <img src> read files outside base_path
Weaknesses CWE-22
References
Metrics cvssV3_1

{'score': 5.3, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N'}


Subscriptions

Facelessuser Pymdown Extensions
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-08-07T17:09:02.752Z

Reserved: 2026-07-10T17:38:57.111Z

Link: CVE-2026-61632

cve-icon Vulnrichment

Updated: 2026-08-07T14:59:46.597Z

cve-icon NVD

Status : Received

Published: 2026-08-06T22:18:11.410

Modified: 2026-08-07T18:17:19.667

Link: CVE-2026-61632

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-08-06T20:59:20Z

Links: CVE-2026-61632 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-07T00:45:04Z

Weaknesses
  • CWE-22

    Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')