
CVE catalog
CVE-2026-102991
Mako is a template library written in Python. Prior to 1.4.2, on Windows, TemplateLookup.get_template() in mako/lookup.py resolves template URIs with posixpath, while Template.__init__() in mako/templ
- Severity
- Medium · CVSS 6.5
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:L/A:N - Published
- Updated
- Source
- [NVD] · [CVE record]
- EPSS
- 0.36% · Oct 25, 2026
Mako is a template library written in Python. Prior to 1.4.2, on Windows, TemplateLookup.get_template() in mako/lookup.py resolves template URIs with posixpath, while Template.__init__() in mako/template.py validates them with os.path, which uses ntpath. A URI beginning with a drive designator causes ntpath to absorb the traversal segments before the leading dot-dot check, while posixpath resolution can escape the configured template directory. An application that passes attacker-controlled template names or include paths can disclose process-readable files on the same volume, and a targeted file containing Mako template syntax may also be parsed and executed as a template. Raw URL paths are generally normalized before reaching this form, but query strings, form or JSON bodies, route parameters, and dynamic include expressions can preserve it. This issue is fixed in version 1.4.2.
Vulnerable and fixed packages
Distribution-reported package versions and fixes. These do not depend on matching against the OpenFactory package catalog.
| Distribution | Package | Release | Version | Status |
|---|---|---|---|---|
| Debian | mako | sid | 1.3.10-3 | not affected |
| Debian | mako | forky | 1.3.10-3 | not affected |
| Debian | mako | trixie | 1.3.9-1 | not affected |
| Debian | mako | bookworm | 1.2.4+ds-1 | not affected |
| PyPI | mako | Not reported | 0.1.0 | vulnerable |
| PyPI | mako | Not reported | 0.1.1 | vulnerable |
| PyPI | mako | Not reported | 0.1.10 | vulnerable |
| PyPI | mako | Not reported | 0.1.2 | vulnerable |
| PyPI | mako | Not reported | 0.1.3 | vulnerable |
| PyPI | mako | Not reported | 0.1.4 | vulnerable |
| PyPI | mako | Not reported | 0.1.5 | vulnerable |
| PyPI | mako | Not reported | 0.1.6 | vulnerable |
| PyPI | mako | Not reported | 0.1.7 | vulnerable |
| PyPI | mako | Not reported | 0.1.8 | vulnerable |
| PyPI | mako | Not reported | 0.1.9 | vulnerable |
| PyPI | mako | Not reported | 0.2.0 | vulnerable |
| PyPI | mako | Not reported | 0.2.1 | vulnerable |
| PyPI | mako | Not reported | 0.2.2 | vulnerable |
| PyPI | mako | Not reported | 0.2.3 | vulnerable |
| PyPI | mako | Not reported | 0.2.4 | vulnerable |
| PyPI | mako | Not reported | 0.2.5 | vulnerable |
| PyPI | mako | Not reported | 0.3.0 | vulnerable |
| PyPI | mako | Not reported | 0.3.1 | vulnerable |
| PyPI | mako | Not reported | 0.3.2 | vulnerable |
| PyPI | mako | Not reported | 0.3.3 | vulnerable |
| PyPI | mako | Not reported | 0.3.4 | vulnerable |
| PyPI | mako | Not reported | 0.3.5 | vulnerable |
| PyPI | mako | Not reported | 0.3.6 | vulnerable |
| PyPI | mako | Not reported | 0.4.0 | vulnerable |
| PyPI | mako | Not reported | 0.4.1 | vulnerable |
| PyPI | mako | Not reported | 0.4.2 | vulnerable |
| PyPI | mako | Not reported | 0.5.0 | vulnerable |
| PyPI | mako | Not reported | 0.6.0 | vulnerable |
| PyPI | mako | Not reported | 0.6.1 | vulnerable |
| PyPI | mako | Not reported | 0.6.2 | vulnerable |
| PyPI | mako | Not reported | 0.7.0 | vulnerable |
| PyPI | mako | Not reported | 0.7.1 | vulnerable |
| PyPI | mako | Not reported | 0.7.2 | vulnerable |
| PyPI | mako | Not reported | 0.7.3 | vulnerable |
| PyPI | mako | Not reported | 0.8.0 | vulnerable |
| PyPI | mako | Not reported | 0.8.1 | vulnerable |
| PyPI | mako | Not reported | 0.9.0 | vulnerable |
| PyPI | mako | Not reported | 0.9.1 | vulnerable |
| PyPI | mako | Not reported | 1.0.0 | vulnerable |
| PyPI | mako | Not reported | 1.0.1 | vulnerable |
| PyPI | mako | Not reported | 1.0.10 | vulnerable |
| PyPI | mako | Not reported | 1.0.11 | vulnerable |
| PyPI | mako | Not reported | 1.0.12 | vulnerable |
| PyPI | mako | Not reported | 1.0.13 | vulnerable |
| PyPI | mako | Not reported | 1.0.14 | vulnerable |
| PyPI | mako | Not reported | 1.0.2 | vulnerable |
| PyPI | mako | Not reported | 1.0.3 | vulnerable |
| PyPI | mako | Not reported | 1.0.4 | vulnerable |
| PyPI | mako | Not reported | 1.0.5 | vulnerable |
| PyPI | mako | Not reported | 1.0.6 | vulnerable |
| PyPI | mako | Not reported | 1.0.7 | vulnerable |
| PyPI | mako | Not reported | 1.0.8 | vulnerable |
| PyPI | mako | Not reported | 1.0.9 | vulnerable |
| PyPI | mako | Not reported | 1.1.0 | vulnerable |
| PyPI | mako | Not reported | 1.1.1 | vulnerable |
| PyPI | mako | Not reported | 1.1.2 | vulnerable |
| PyPI | mako | Not reported | 1.1.3 | vulnerable |
| PyPI | mako | Not reported | 1.1.4 | vulnerable |
| PyPI | mako | Not reported | 1.1.5 | vulnerable |
| PyPI | mako | Not reported | 1.1.6 | vulnerable |
| PyPI | mako | Not reported | 1.2.0 | vulnerable |
| PyPI | mako | Not reported | 1.2.1 | vulnerable |
| PyPI | mako | Not reported | 1.2.2 | vulnerable |
| PyPI | mako | Not reported | 1.2.3 | vulnerable |
| PyPI | mako | Not reported | 1.2.4 | vulnerable |
| PyPI | mako | Not reported | 1.3.0 | vulnerable |
| PyPI | mako | Not reported | 1.3.1 | vulnerable |
| PyPI | mako | Not reported | 1.3.10 | vulnerable |
| PyPI | mako | Not reported | 1.3.11 | vulnerable |
| PyPI | mako | Not reported | 1.3.12 | vulnerable |
| PyPI | mako | Not reported | 1.3.2 | vulnerable |
| PyPI | mako | Not reported | 1.3.3 | vulnerable |
| PyPI | mako | Not reported | 1.3.4 | vulnerable |
| PyPI | mako | Not reported | 1.3.5 | vulnerable |
| PyPI | mako | Not reported | 1.3.6 | vulnerable |
| PyPI | mako | Not reported | 1.3.7 | vulnerable |
| PyPI | mako | Not reported | 1.3.8 | vulnerable |
| PyPI | mako | Not reported | 1.3.9 | vulnerable |
| PyPI | mako | Not reported | 1.4.0 | vulnerable |
| PyPI | mako | Not reported | 1.4.1 | vulnerable |
| PyPI | mako | Not reported | 1.4.2 | fixed |
| PyPI | mako | Not reported | 0.1.0 | vulnerable |
| PyPI | mako | Not reported | 0.1.1 | vulnerable |
| PyPI | mako | Not reported | 0.1.10 | vulnerable |
| PyPI | mako | Not reported | 0.1.2 | vulnerable |
| PyPI | mako | Not reported | 0.1.3 | vulnerable |
| PyPI | mako | Not reported | 0.1.4 | vulnerable |
| PyPI | mako | Not reported | 0.1.5 | vulnerable |
| PyPI | mako | Not reported | 0.1.6 | vulnerable |
| PyPI | mako | Not reported | 0.1.7 | vulnerable |
| PyPI | mako | Not reported | 0.1.8 | vulnerable |
| PyPI | mako | Not reported | 0.1.9 | vulnerable |
| PyPI | mako | Not reported | 0.2.0 | vulnerable |
| PyPI | mako | Not reported | 0.2.1 | vulnerable |
| PyPI | mako | Not reported | 0.2.2 | vulnerable |
| PyPI | mako | Not reported | 0.2.3 | vulnerable |
| PyPI | mako | Not reported | 0.2.4 | vulnerable |
| PyPI | mako | Not reported | 0.2.5 | vulnerable |
| PyPI | mako | Not reported | 0.3.0 | vulnerable |
| PyPI | mako | Not reported | 0.3.1 | vulnerable |
| PyPI | mako | Not reported | 0.3.2 | vulnerable |
| PyPI | mako | Not reported | 0.3.3 | vulnerable |
| PyPI | mako | Not reported | 0.3.4 | vulnerable |
| PyPI | mako | Not reported | 0.3.5 | vulnerable |
| PyPI | mako | Not reported | 0.3.6 | vulnerable |
| PyPI | mako | Not reported | 0.4.0 | vulnerable |
| PyPI | mako | Not reported | 0.4.1 | vulnerable |
| PyPI | mako | Not reported | 0.4.2 | vulnerable |
| PyPI | mako | Not reported | 0.5.0 | vulnerable |
| PyPI | mako | Not reported | 0.6.0 | vulnerable |
| PyPI | mako | Not reported | 0.6.1 | vulnerable |
| PyPI | mako | Not reported | 0.6.2 | vulnerable |
| PyPI | mako | Not reported | 0.7.0 | vulnerable |
| PyPI | mako | Not reported | 0.7.1 | vulnerable |
| PyPI | mako | Not reported | 0.7.2 | vulnerable |
| PyPI | mako | Not reported | 0.7.3 | vulnerable |
| PyPI | mako | Not reported | 0.8.0 | vulnerable |
| PyPI | mako | Not reported | 0.8.1 | vulnerable |
| PyPI | mako | Not reported | 0.9.0 | vulnerable |
| PyPI | mako | Not reported | 0.9.1 | vulnerable |
| PyPI | mako | Not reported | 1.0.0 | vulnerable |
| PyPI | mako | Not reported | 1.0.1 | vulnerable |
| PyPI | mako | Not reported | 1.0.10 | vulnerable |
| PyPI | mako | Not reported | 1.0.11 | vulnerable |
| PyPI | mako | Not reported | 1.0.12 | vulnerable |
| PyPI | mako | Not reported | 1.0.13 | vulnerable |
| PyPI | mako | Not reported | 1.0.14 | vulnerable |
| PyPI | mako | Not reported | 1.0.2 | vulnerable |
| PyPI | mako | Not reported | 1.0.3 | vulnerable |
| PyPI | mako | Not reported | 1.0.4 | vulnerable |
| PyPI | mako | Not reported | 1.0.5 | vulnerable |
| PyPI | mako | Not reported | 1.0.6 | vulnerable |
| PyPI | mako | Not reported | 1.0.7 | vulnerable |
| PyPI | mako | Not reported | 1.0.8 | vulnerable |
| PyPI | mako | Not reported | 1.0.9 | vulnerable |
| PyPI | mako | Not reported | 1.1.0 | vulnerable |
| PyPI | mako | Not reported | 1.1.1 | vulnerable |
| PyPI | mako | Not reported | 1.1.2 | vulnerable |
| PyPI | mako | Not reported | 1.1.3 | vulnerable |
| PyPI | mako | Not reported | 1.1.4 | vulnerable |
| PyPI | mako | Not reported | 1.1.5 | vulnerable |
| PyPI | mako | Not reported | 1.1.6 | vulnerable |
| PyPI | mako | Not reported | 1.2.0 | vulnerable |
| PyPI | mako | Not reported | 1.2.1 | vulnerable |
| PyPI | mako | Not reported | 1.2.2 | vulnerable |
| PyPI | mako | Not reported | 1.2.3 | vulnerable |
| PyPI | mako | Not reported | 1.2.4 | vulnerable |
| PyPI | mako | Not reported | 1.3.0 | vulnerable |
| PyPI | mako | Not reported | 1.3.1 | vulnerable |
| PyPI | mako | Not reported | 1.3.10 | vulnerable |
| PyPI | mako | Not reported | 1.3.11 | vulnerable |
| PyPI | mako | Not reported | 1.3.12 | vulnerable |
| PyPI | mako | Not reported | 1.3.2 | vulnerable |
| PyPI | mako | Not reported | 1.3.3 | vulnerable |
| PyPI | mako | Not reported | 1.3.4 | vulnerable |
| PyPI | mako | Not reported | 1.3.5 | vulnerable |
| PyPI | mako | Not reported | 1.3.6 | vulnerable |
| PyPI | mako | Not reported | 1.3.7 | vulnerable |
| PyPI | mako | Not reported | 1.3.8 | vulnerable |
| PyPI | mako | Not reported | 1.3.9 | vulnerable |
| PyPI | mako | Not reported | 1.4.0 | vulnerable |
| PyPI | mako | Not reported | 1.4.1 | vulnerable |
| PyPI | mako | Not reported | 1.4.2 | fixed |
Fixed-version evidence
| Distribution | Package | Type | Release | Fixed version | Urgency | Origin | Bugs |
|---|---|---|---|---|---|---|---|
| Debian | mako | source | sid | Not affected | unimportant | Not reported | Not reported |
| Debian | mako | source | forky | Not affected | unimportant | Not reported | Not reported |
| Debian | mako | source | trixie | Not affected | unimportant | Not reported | Not reported |
| Debian | mako | source | bookworm | Not affected | unimportant | Not reported | Not reported |
| PyPI | mako | PyPI | Not reported | 1.4.2 | Not reported | PYSEC-2026-4243 | Not reported |
| PyPI | mako | PyPI | Not reported | 1.4.2 | Not reported | GHSA-5639-2J2P-M4MX | Not reported |
OpenFactory catalog packages
[Debian 12 (Bookworm)]
- [python3-mako]Not affected
Source package: [mako]
Details (2)
1.2.4+ds-1· all · bookwormNot affected
nvd · mako · debian · bookworm
1.2.4+ds-1· all · bookwormNot affected
nvd · mako · debian · bookworm
- [python-mako-doc]Not affected
Source package: [mako]
Details (2)
1.2.4+ds-1· all · bookwormNot affected
nvd · mako · debian · bookworm
1.2.4+ds-1· all · bookwormNot affected
nvd · mako · debian · bookworm
Observed:
References
- [https://github.com/advisories/GHSA-5639-2j2p-m4mx]
- [https://nvd.nist.gov/vuln/detail/CVE-2026-102991]
- [https://osv.dev/vulnerability/PYSEC-2026-4243]
- [https://security-tracker.debian.org/tracker/CVE-2026-102991]
[Debian Security Tracker] · [FIRST EPSS] · [GitHub Advisory Database] · [National Vulnerability Database (NVD)] · [OSV Package Vulnerability Database]