Sceawere
Vulnerability Detail
CVE-2026-13051UPDATED Verified Sceawere Triage Sources: NVD / CISA KEV
Form Processor HtmlArea Template Injection
Vulnerability Metadata
- Severity
- Critical
- Score / CVSS
- 9.1
- Creation Date
- 1d ago
- Vendor
- —
- Product
- N/A
- Attack Type
- CWE-1336 Improper Neutralization of Special Elements Used in a Template Engine
- Vector String
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
- Attack Complexity
- LOW
Narrative and Response
Description
Form::Processor::Field::HtmlArea versions from 0.06 through 1.162360 for Perl allow attacker selected method dispatch and resource exhaustion via an HTML::Tidy diagnostic that validate passes to add_error as a Locale::Maketext template. validate runs HTML::Tidy over the submitted markup and passes each resulting message to add_error as its first argument, which add_error hands to the language handle as the Locale::Maketext message key. The default handle's lexicon sets `_AUTO`, so a message that is not a lexicon entry is compiled as a bracket notation template instead of being looked up. Tidy diagnostics quote the offending attribute name or value, so a bracket group in the submitted markup reaches the template position, where the first token of the group names a method called on the language handle and the remaining tokens are its arguments. A group such as `[0]` makes the compile croak, and neither the field nor the handle catches it, so the exception leaves validate. `[sprintf,%2000000000d,7]` reaches CORE::sprintf with an attacker chosen field width. One submission of crafted markup to an HtmlArea field throws an unhandled exception out of form validation or allocates an arbitrary amount of memory, and an application whose language handle subclass defines side effecting public methods makes those callable with attacker chosen arguments. The other field types pass fixed templates with the submitted value in an argument slot, where it stays inert, and are unaffected.
Executive Summary
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Technical Details
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Mitigations
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
References
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Additional Metadata
{
"score": "9.1",
"pubDate": "2026-08-13T17:17:19.513Z",
"pubdate": "2026-08-13T17:17:19.513Z",
"executiveSummary": "A template injection and resource exhaustion vulnerability exists in Form::Processor::Field::HtmlArea versions from 0.06 through 1.162360 for Perl.\nThe vulnerability arises because the component improperly handles HTML::Tidy diagnostic messages by passing them directly as message keys to Locale::Maketext.\nAn attacker can supply crafted HTML markup containing bracket notation templates to trigger arbitrary method dispatch on the language handle or cause resource exhaustion via excessive memory allocation or unhandled exceptions.\nThe impact includes denial of service through application crashes or memory exhaustion, and potential execution of side-effecting public methods if the language handle subclass defines them.\nExploitation requires an attacker to submit crafted markup to an HtmlArea field within a vulnerable application form.\nOther field types are unaffected because they pass fixed templates with user input safely constrained to argument slots.",
"technicalDetails": "The vulnerability resides within the Form::Processor::Field::HtmlArea component, specifically affecting versions 0.06 through 1.162360.\nThe root cause is improper input sanitization and unsafe data flow during the validation phase of submitted markup.\nDuring validation, the validate function executes HTML::Tidy over the submitted markup and captures resulting diagnostic messages.\nEach diagnostic message is passed as the first argument to the add_error function.\nThe add_error function subsequently hands this value to the language handle as a Locale::Maketext message key.\nBecause the default language handle's lexicon sets _AUTO, any message that is not an explicit lexicon entry is compiled dynamically as a bracket notation template instead of undergoing standard lookup.\nHTML::Tidy diagnostics quote offending attribute names or values, allowing an attacker to inject bracket groups such as [0] or [sprintf,%2000000000d,7] directly into the template position of the submitted markup.\nThe attack flow proceeds as follows: First, the attacker submits crafted markup containing malicious bracket notation via an HtmlArea field. Second, HTML::Tidy generates a diagnostic message containing the quoted malicious payload. Third, the validate function passes this message to add_error, which treats it as a Locale::Maketext message key. Fourth, the Locale::Maketext compilation mechanism parses the bracket notation, interpreting the first token as a method name called on the language handle and subsequent tokens as arguments.\nIf a payload such as [0] is supplied, it causes the compilation process to croak with an unhandled exception, abruptly terminating form validation and leaving the exception uncaught, leading to denial of service.\nIf a payload such as [sprintf,%2000000000d,7] is supplied, it reaches CORE::sprintf with an attacker-chosen field width, resulting in massive memory allocation and resource exhaustion.\nFurthermore, if an application utilizes a language handle subclass defining side-effecting public methods, the attacker can invoke those methods with arbitrary parameters.\nAuthentication and privilege requirements depend on the accessibility of the vulnerable form containing the HtmlArea field to the network or the specific user."
}