Security Advisories (1)
CVE-2026-13051 (2026-08-13)

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.

Changes for version 1.162360 - 2016-08-23

  • Added EnterPassword, TxtPassword, and ScryptPassword.
  • If just looking at this distribution please look at HTML::FormHandler instead.
  • Moved to Dist::Zilla for packaging (which is the reason for the jump in version number).
  • Ran perltidy, and a few PerlCritic updates -- but too many to be safe.
  • Changed an "Integer" field default length from 8 to 10 digits.
  • Updated the "CIDR_list" field with updated tests to catch invalid formatted lists.
  • Added global variable LANGUAGE_HANDLE to be checked before env variable.

Modules

validate and process form data
Base class for Fields used with Form::Processor
A true or false field
Muliplt CIDR addresses
A boolean checkbox field type
Maps to the current DateTime module.
DEPRECATED example of a compound field
DEPRECATED example of a sub-form
Free-form date/time input
Expects datas in yyyy_mm_dd format
Validates email uisng Email::Valid
DEPRECATED tests that the entered date is in the future
a text field as a hidden widget
accept integer from 0 to 23
Input HTML in a textarea
Select an integer range in a select list
validate an integer value
convert passwords to MD5 hashes
input range from 0 to 60
Input US currenty-like values.
Select list of 1 to 12
Select list for a day number 1 to 31
Select list for month names
Select one or more options
Field::Processor Field
input a telephone number
Validates input is a postive integer
Field that can be read but not updated
convert passwords to scrypt hash.
Select list for seconds
** Please provide abstract **
Tests that Template-Toolkit can parse the content
A simple text entry field
Mulitple line input
Tests that a url looks like a url.
Validate that the input looks like a US phone number
Checks that input looks like a US Zip.
A field for uploading files
** Please provide abstract **
Select valid day of the week
** Please provide abstract **
Select a recent year.
** Please provide abstract **
** Please provide abstract **
default model base class