Skip to content
Heist/ feed
Back to feed
Medium

Template::Plugin::HTML versions before 3.103 for Perl allows HTML and JavaScript to be injected

Type: advisorySources: OSV

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 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.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-5090
Confirmed fixed CVEs
Not specified
Updated in this feed
2 Nov 2026, 17:21 UTC · Revision 1

Source evidence

Template::Plugin::HTML versions before 3.103 for Perl allows HTML and JavaScript to be injected

core-osv · Original source

Published 19 May 2026, 21:30 UTC

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 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.

osv:CVE-2026-5090
Complete source record
{
  "id": "c34fdb0efe1e9466a349a4d3748658f7c1ce01a8b371258758ce1b3837b3f097",
  "url": "https://osv.dev/vulnerability/CVE-2026-5090",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Template::Plugin::HTML versions before 3.103 for Perl allows HTML and JavaScript to be injected",
    "summary": "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 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.",
    "evidence": "osv:CVE-2026-5090",
    "products": [],
    "severity": "medium",
    "structured": {
      "id": "CVE-2026-5090",
      "aliases": [
        "CVE-2026-5090"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/cpan-authors/Template2",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "4738dd800ecbfa00e54dfb6235ec5021aac9c4a4"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "3.103"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StandardRange"
                  },
                  {
                    "range": [
                      {
                        "fixed": "ca539f49f6ffd1c2b7d9ef4f48f6b88292418734"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v3.102",
            "v3.101",
            "v3.010",
            "v3.009",
            "v3.008",
            "v3.007",
            "v3.006",
            "v3.005",
            "v3.004",
            "v3.003",
            "v3.002",
            "v3.001",
            "v3.000",
            "v2.29",
            "v2.28",
            "v2.27"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-5090.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:21.590456520Z",
      "provider": "osv",
      "references": [
        "https://cpan.org/modules",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/5xxx/CVE-2026-5090.json",
        "https://metacpan.org/release/TODDR/Template-Toolkit-3.103/changes",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-5090",
        "https://github.com/abw/Template2/issues/327",
        "https://github.com/cpan-authors/Template2/commit/ca539f49f6ffd1c2b7d9ef4f48f6b88292418734.patch",
        "https://github.com/abw/Template2"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-79"
        ],
        "cna_assigner": "CPANSec",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/5xxx/CVE-2026-5090.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-5090",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 487699,
  "published_at": "2026-05-19T21:30:03.552+00:00"
}