CVE-2026-5090: Template-Toolkit (Perl module) · Cross-site Scripting
Affects Template-Toolkit (Perl module)Source CVE Database V5
Not known to be exploited · CVSS 6.1 Medium : upgrade to 3.103 when convenient.
Data as of 29 Oct 2026, 19:04 UTC
- EPSS
- 0.2% chance of exploitation in 30 days – higher than 21% of CVEsExploit Prediction Scoring System: the likelihood attackers will use this flaw soon.
- Patch
- Available – fixed in 3.103
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:NExploitation evidence
Disclosed: evidence found.
CVE published 19 May 2026
Detectable: no evidence on record.
No public nuclei template indexed
Weaponized: no evidence on record.
No public exploit code indexed in Metasploit or Exploit-DB
Exploited in the wildExploited: no evidence on record.
Not in CISA KEV and no source reports exploitation
Observed by OffSeq MirageSeen by Mirage: no evidence on record.
No attack traffic recorded by OffSeq Mirage sensors
A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 29 Oct 2026.
What to do
Upgrade Template-Toolkit (Perl module) to 3.103.
Affected software
| Product | Affected | Fixed in |
|---|---|---|
CPANTemplate-Toolkitpkg:cpan/Template-ToolkitOther threats | Affected
| Fixed in
|
Check your own hosts for these packages with threat-finder (opens in a new tab), our free open-source scanner.
AI-suggested
If you cannot patch yet, avoid using untrusted input within single-quoted HTML attributes processed by the html_filter function or apply custom escaping to single quotes to mitigate injection risk.
Description
Template::Plugin::HTML versions before 3.103 for Perl allows HTML and JavaScript to be injected. The html_filter function did not escape single quotes. HTML attributes inside of single quotes could be have code injected. For example, the variable "var" in <a id='ref' title='[% var | html %]'> would not be properly escaped. An attacker could insert some limited HTML and JavaScript, for example, var = " ' onclick='while (true) { alert(1) }'" Note that arbitrary HTML and JavaScript would be difficult to inject, because angle brackets, ampersands and double-quotes would still be escaped.
References
- github.com/abw/Template2/issues/327 (opens in a new tab)
- github.com/abw/Template2/pull/337/changes/11c78a7a771d4af505efeb754a0b8775689c2eae (opens in a new tab)
- openwall.com/lists/oss-security/2026/05/19/40 (opens in a new tab)
- github.com/cpan-authors/Template2/commit/ca539f49f6ffd1c2b7d9ef4f48f6b88292418734.patch (opens in a new tab)
- metacpan.org/release/TODDR/Template-Toolkit-3.103/changes (opens in a new tab)