CVE-2026-5090 (GCVE-0-2026-5090)

Vulnerability from cvelistv5 – Published: 2026-05-19 21:30 – Updated: 2026-09-19 11:46
VLAI
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 <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.
SSVC
Exploitation: none Automatable: no Technical Impact: partial
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2026-05-20 13:45 UTC
CWE
  • CWE-79 - Improper Neutralization of Input During Web Page Generation
Impacted products
Vendor Product Version CPE status
Affected: 0 , < 3.103 (custom)
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "providerMetadata": {
          "dateUpdated": "2026-05-19T23:25:21.832Z",
          "orgId": "af854a3a-2127-422b-91ae-364da2661108",
          "shortName": "CVE"
        },
        "references": [
          {
            "url": "http://www.openwall.com/lists/oss-security/2026/05/19/40"
          }
        ],
        "title": "CVE Program Container"
      },
      {
        "metrics": [
          {
            "cvssV3_1": {
              "attackComplexity": "LOW",
              "attackVector": "NETWORK",
              "availabilityImpact": "NONE",
              "baseScore": 6.1,
              "baseSeverity": "MEDIUM",
              "confidentialityImpact": "LOW",
              "integrityImpact": "LOW",
              "privilegesRequired": "NONE",
              "scope": "CHANGED",
              "userInteraction": "REQUIRED",
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N",
              "version": "3.1"
            }
          },
          {
            "other": {
              "content": {
                "id": "CVE-2026-5090",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2026-05-20T13:45:07.748170Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2026-05-20T13:45:31.562Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "collectionURL": "https://cpan.org/modules",
          "defaultStatus": "unaffected",
          "modules": [
            "Template::Plugin::HTML"
          ],
          "packageName": "Template-Toolkit",
          "packageURL": "pkg:cpan/Template-Toolkit",
          "programFiles": [
            "lib/Template/Plugin/HTML.pm"
          ],
          "programRoutines": [
            {
              "name": "Template::Plugin::HTML::html_filter"
            }
          ],
          "repo": "https://github.com/abw/Template2",
          "versions": [
            {
              "lessThan": "3.103",
              "status": "affected",
              "version": "0",
              "versionType": "custom"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "Template::Plugin::HTML versions before 3.103 for Perl allows HTML and JavaScript to be injected.\n\nThe 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\n\n    \u003ca id=\u0027ref\u0027 title=\u0027[% var | html %]\u0027\u003e\n\nwould not be properly escaped. An attacker could insert some limited HTML and JavaScript, for example,\n\n    var = \" \u0027 onclick=\u0027while (true) { alert(1) }\u0027\"\n\nNote that arbitrary HTML and JavaScript would be difficult to inject, because angle brackets, ampersands and double-quotes would still be escaped."
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "cweId": "CWE-79",
              "description": "CWE-79 Improper Neutralization of Input During Web Page Generation",
              "lang": "en",
              "type": "CWE"
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-09-19T11:46:35.655Z",
        "orgId": "9b29abf9-4ab0-4765-b253-1875cd9b441e",
        "shortName": "CPANSec"
      },
      "references": [
        {
          "tags": [
            "issue-tracking"
          ],
          "url": "https://github.com/abw/Template2/issues/327"
        },
        {
          "tags": [
            "patch"
          ],
          "url": "https://github.com/cpan-authors/Template2/commit/ca539f49f6ffd1c2b7d9ef4f48f6b88292418734.patch"
        },
        {
          "tags": [
            "release-notes"
          ],
          "url": "https://metacpan.org/release/TODDR/Template-Toolkit-3.103/changes"
        }
      ],
      "solutions": [
        {
          "lang": "en",
          "value": "Upgrade to version 3.103."
        }
      ],
      "source": {
        "discovery": "UNKNOWN"
      },
      "timeline": [
        {
          "lang": "en",
          "time": "2024-12-01T00:00:00.000Z",
          "value": "Issue reported in GitHub."
        },
        {
          "lang": "en",
          "time": "2026-02-21T00:00:00.000Z",
          "value": "Pull request submitted."
        },
        {
          "lang": "en",
          "time": "2026-03-22T00:00:00.000Z",
          "value": "Pull request merged."
        },
        {
          "lang": "en",
          "time": "2026-03-22T00:00:00.000Z",
          "value": "Issue reported to CPANSec."
        },
        {
          "lang": "en",
          "time": "2026-03-28T00:00:00.000Z",
          "value": "CVE assigned."
        },
        {
          "lang": "en",
          "time": "2026-05-19T00:00:00.000Z",
          "value": "CVE published."
        },
        {
          "lang": "en",
          "time": "2026-05-21T00:00:00.000Z",
          "value": "Template-Toolkit version 3.103 released."
        }
      ],
      "title": "Template::Plugin::HTML versions before 3.103 for Perl allows HTML and JavaScript to be injected",
      "workarounds": [
        {
          "lang": "en",
          "value": "Attribute values in templates that contain escaped HTML should use double quotes instead of single quotes."
        }
      ],
      "x_generator": {
        "engine": "cpansec-cna-tool 0.1"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "9b29abf9-4ab0-4765-b253-1875cd9b441e",
    "assignerShortName": "CPANSec",
    "cveId": "CVE-2026-5090",
    "datePublished": "2026-05-19T21:30:03.552Z",
    "dateReserved": "2026-03-28T19:35:11.737Z",
    "dateUpdated": "2026-09-19T11:46:35.655Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-5090",
      "date": "2026-09-25",
      "epss": "0.00338",
      "percentile": "0.2452"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "collectionURL": "https://cpan.org/modules",
                "defaultStatus": "unaffected",
                "modules": [
                  "Template::Plugin::HTML"
                ],
                "packageName": "Template-Toolkit",
                "packageURL": "pkg:cpan/Template-Toolkit",
                "programFiles": [
                  "lib/Template/Plugin/HTML.pm"
                ],
                "programRoutines": [
                  {
                    "name": "Template::Plugin::HTML::html_filter"
                  }
                ],
                "repo": "https://github.com/abw/Template2",
                "versions": [
                  {
                    "lessThan": "3.103",
                    "status": "affected",
                    "version": "0",
                    "versionType": "custom"
                  }
                ]
              }
            ],
            "source": "9b29abf9-4ab0-4765-b253-1875cd9b441e"
          }
        ],
        "cveTags": [],
        "descriptions": [
          {
            "lang": "en",
            "value": "Template::Plugin::HTML versions before 3.103 for Perl allows HTML and JavaScript to be injected.\n\nThe 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\n\n    \u003ca id=\u0027ref\u0027 title=\u0027[% var | html %]\u0027\u003e\n\nwould not be properly escaped. An attacker could insert some limited HTML and JavaScript, for example,\n\n    var = \" \u0027 onclick=\u0027while (true) { alert(1) }\u0027\"\n\nNote that arbitrary HTML and JavaScript would be difficult to inject, because angle brackets, ampersands and double-quotes would still be escaped."
          },
          {
            "lang": "es",
            "value": "Las versiones de Template::Plugin::HTML hasta la 3.102 para Perl permiten la inyecci\u00f3n de HTML y JavaScript.\n\nLa funci\u00f3n html_filter no escapaba las comillas simples. Los atributos HTML dentro de comillas simples podr\u00edan ser objeto de inyecci\u00f3n de c\u00f3digo. Por ejemplo, la variable \u0027var\u0027 en\n\n    \u003ca id=\u0027ref\u0027 title=\u0027[% var | html %]\u0027\u003e\n\nno se escapar\u00eda correctamente. Un atacante podr\u00eda insertar algo de HTML y JavaScript limitado, por ejemplo,\n\n    var = \" \u0027 onclick=\u0027while (true) { alert(1) }\u0027\"\n\nTenga en cuenta que ser\u00eda dif\u00edcil inyectar HTML y JavaScript arbitrarios, porque los corchetes angulares, los ampersands y las comillas dobles seguir\u00edan siendo escapados."
          }
        ],
        "id": "CVE-2026-5090",
        "lastModified": "2026-09-19T12:16:39.640",
        "metrics": {
          "cvssMetricV31": [
            {
              "cvssData": {
                "attackComplexity": "LOW",
                "attackVector": "NETWORK",
                "availabilityImpact": "NONE",
                "baseScore": 6.1,
                "baseSeverity": "MEDIUM",
                "confidentialityImpact": "LOW",
                "integrityImpact": "LOW",
                "privilegesRequired": "NONE",
                "scope": "CHANGED",
                "userInteraction": "REQUIRED",
                "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N",
                "version": "3.1"
              },
              "exploitabilityScore": 2.8,
              "impactScore": 2.7,
              "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "type": "Secondary"
            }
          ],
          "ssvcV203": [
            {
              "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "ssvcData": {
                "id": "CVE-2026-5090",
                "options": [
                  {
                    "exploitation": "none"
                  },
                  {
                    "automatable": "no"
                  },
                  {
                    "technicalImpact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2026-05-20T13:45:07.748170Z",
                "version": "2.0.3"
              }
            }
          ]
        },
        "published": "2026-05-19T22:16:39.003",
        "references": [
          {
            "source": "9b29abf9-4ab0-4765-b253-1875cd9b441e",
            "url": "https://github.com/abw/Template2/issues/327"
          },
          {
            "source": "9b29abf9-4ab0-4765-b253-1875cd9b441e",
            "url": "https://github.com/cpan-authors/Template2/commit/ca539f49f6ffd1c2b7d9ef4f48f6b88292418734.patch"
          },
          {
            "source": "9b29abf9-4ab0-4765-b253-1875cd9b441e",
            "url": "https://metacpan.org/release/TODDR/Template-Toolkit-3.103/changes"
          },
          {
            "source": "af854a3a-2127-422b-91ae-364da2661108",
            "url": "http://www.openwall.com/lists/oss-security/2026/05/19/40"
          }
        ],
        "sourceIdentifier": "9b29abf9-4ab0-4765-b253-1875cd9b441e",
        "vulnStatus": "Deferred",
        "weaknesses": [
          {
            "description": [
              {
                "lang": "en",
                "value": "CWE-79"
              }
            ],
            "source": "9b29abf9-4ab0-4765-b253-1875cd9b441e",
            "type": "Secondary"
          }
        ]
      }
    },
    "redhat_vex": {
      "current_release_date": "2026-06-05T19:48:57+00:00",
      "cve": "CVE-2026-5090",
      "id": "CVE-2026-5090",
      "initial_release_date": "2026-01-01T00:00:00+00:00",
      "product_status:known_not_affected": "1",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "Template::Plugin::HTML versions through 3.102 for Perl allows HTML and JavaScript to be injected",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-5090.json",
      "version": "3"
    },
    "vulnrichment": {
      "containers": {
        "adp": [
          {
            "providerMetadata": {
              "dateUpdated": "2026-05-19T23:25:21.832Z",
              "orgId": "af854a3a-2127-422b-91ae-364da2661108",
              "shortName": "CVE"
            },
            "references": [
              {
                "url": "http://www.openwall.com/lists/oss-security/2026/05/19/40"
              }
            ],
            "title": "CVE Program Container"
          },
          {
            "metrics": [
              {
                "cvssV3_1": {
                  "attackComplexity": "LOW",
                  "attackVector": "NETWORK",
                  "availabilityImpact": "NONE",
                  "baseScore": 6.1,
                  "baseSeverity": "MEDIUM",
                  "confidentialityImpact": "LOW",
                  "integrityImpact": "LOW",
                  "privilegesRequired": "NONE",
                  "scope": "CHANGED",
                  "userInteraction": "REQUIRED",
                  "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N",
                  "version": "3.1"
                }
              },
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-5090",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-05-20T13:45:07.748170Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-05-20T13:45:20.292Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "collectionURL": "https://cpan.org/modules",
              "defaultStatus": "unaffected",
              "modules": [
                "Template::Plugin::HTML"
              ],
              "packageName": "Template-Toolkit",
              "packageURL": "pkg:cpan/Template-Toolkit",
              "programFiles": [
                "lib/Template/Plugin/HTML.pm"
              ],
              "programRoutines": [
                {
                  "name": "Template::Plugin::HTML::html_filter"
                }
              ],
              "repo": "https://github.com/abw/Template2",
              "versions": [
                {
                  "lessThan": "3.103",
                  "status": "affected",
                  "version": "0",
                  "versionType": "custom"
                }
              ]
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "value": "Template::Plugin::HTML versions before 3.103 for Perl allows HTML and JavaScript to be injected.\n\nThe 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\n\n    \u003ca id=\u0027ref\u0027 title=\u0027[% var | html %]\u0027\u003e\n\nwould not be properly escaped. An attacker could insert some limited HTML and JavaScript, for example,\n\n    var = \" \u0027 onclick=\u0027while (true) { alert(1) }\u0027\"\n\nNote that arbitrary HTML and JavaScript would be difficult to inject, because angle brackets, ampersands and double-quotes would still be escaped."
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-79",
                  "description": "CWE-79 Improper Neutralization of Input During Web Page Generation",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-09-19T11:46:35.655Z",
            "orgId": "9b29abf9-4ab0-4765-b253-1875cd9b441e",
            "shortName": "CPANSec"
          },
          "references": [
            {
              "tags": [
                "issue-tracking"
              ],
              "url": "https://github.com/abw/Template2/issues/327"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/cpan-authors/Template2/commit/ca539f49f6ffd1c2b7d9ef4f48f6b88292418734.patch"
            },
            {
              "tags": [
                "release-notes"
              ],
              "url": "https://metacpan.org/release/TODDR/Template-Toolkit-3.103/changes"
            }
          ],
          "solutions": [
            {
              "lang": "en",
              "value": "Upgrade to version 3.103."
            }
          ],
          "source": {
            "discovery": "UNKNOWN"
          },
          "timeline": [
            {
              "lang": "en",
              "time": "2024-12-01T00:00:00.000Z",
              "value": "Issue reported in GitHub."
            },
            {
              "lang": "en",
              "time": "2026-02-21T00:00:00.000Z",
              "value": "Pull request submitted."
            },
            {
              "lang": "en",
              "time": "2026-03-22T00:00:00.000Z",
              "value": "Pull request merged."
            },
            {
              "lang": "en",
              "time": "2026-03-22T00:00:00.000Z",
              "value": "Issue reported to CPANSec."
            },
            {
              "lang": "en",
              "time": "2026-03-28T00:00:00.000Z",
              "value": "CVE assigned."
            },
            {
              "lang": "en",
              "time": "2026-05-19T00:00:00.000Z",
              "value": "CVE published."
            },
            {
              "lang": "en",
              "time": "2026-05-21T00:00:00.000Z",
              "value": "Template-Toolkit version 3.103 released."
            }
          ],
          "title": "Template::Plugin::HTML versions before 3.103 for Perl allows HTML and JavaScript to be injected",
          "workarounds": [
            {
              "lang": "en",
              "value": "Attribute values in templates that contain escaped HTML should use double quotes instead of single quotes."
            }
          ],
          "x_generator": {
            "engine": "cpansec-cna-tool 0.1"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "9b29abf9-4ab0-4765-b253-1875cd9b441e",
        "assignerShortName": "CPANSec",
        "cveId": "CVE-2026-5090",
        "datePublished": "2026-05-19T21:30:03.552Z",
        "dateReserved": "2026-03-28T19:35:11.737Z",
        "dateUpdated": "2026-09-19T11:46:35.655Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Loading…

Loading…

Related by attack behaviour

Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.


Loading…