Description
HTML::FormFu versions through 2.08 for Perl allow resource exhaustion via an unbounded repeat count from the query string in Repeatable elements.

When a Repeatable element has counter_name set, its process method reads the repeat count from the named query string parameter, checks only that it is a positive integer, and passes it to repeat, which deep-clones the element's child subtree once per iteration. Nothing caps the value, and no attribute lets an application impose a limit.

The count is read on every request, before the form decides whether it was submitted, so a plain GET reaches the clone loop with no credentials, no session and no request body. Nesting multiplies: a Repeatable inside a Repeatable takes a counter at each level, so an outer and an inner value of 100 build 10,000 clones.

Once the form is submitted, each cloned field's constraints scan the whole element tree in _find_field_value, so cost grows faster than linearly with the count. A single request exhausts memory and CPU.

The latest release on CPAN is 2.07, from 2018. Version 2.08 exists only in the git repository.
Published: 2026-08-31
Score: 7.5 High
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service via Resource Exhaustion
Action: Apply Patch
AI Analysis

Impact

The flaw is in HTML::FormFu’s handling of Repeatable elements – the processor blindly accepts a repeat count from the query string, only verifying that it is a positive integer. That count is then used to deep‑clone the element’s child tree an equal number of times. No limit is enforced and no attribute allows the application to impose one, so a request such as ?counter=1000 will cause the application to create an enormous number of form fields. Nested Repeatables further amplify the effect; two levels at 100 each produce 10,000 clones. After the form is submitted, each cloned field is validated by scanning the entire tree, so the processing cost grows super‑linearly with the count. Because the count is read on every request before authentication is checked, a simple unauthenticated GET can drain the server’s CPU and memory, leading to a denial of service. The vulnerability is essentially a critical resource exhaustion flaw. This flaw corresponds to CWE-1284 and CWE-770.

Affected Systems

All installations of Perl module HTML::FormFu version 2.08 or earlier are affected. The latest released version on CPAN is 2.07 from 2018, but version 2.08 exists only in the git repository. Any application that has deployed the module from either source and uses a Repeatable element with counter_name set is vulnerable. The issue does not affect newer releases once the patch is applied or the counter handling logic is corrected.

Risk and Exploitability

The exploit requires only an HTTP request with a crafted repeat count in the query string; no authentication or privileged access is necessary. The effort is minimal, and the attack surface is wide because any client‑facing form using the vulnerable pattern can be targeted. The absence of a bound on the count immediately translates into a critical resource exhaustion vector. The CVSS score of 7.5 indicates a high severity, and the risk is inferred from the nature of the flaw and the public visibility of the affected code.

Generated by OpenCVE AI on August 31, 2026 at 19:53 UTC.

Remediation

Vendor Solution

Apply the patch. There is no fixed release.


Vendor Workaround

For deployments that cannot apply the patch, reject or clamp the counter parameter before passing the query to process. Where the client-side repeat feature is not needed, unsetting counter_name stops the count being read from the query string.


OpenCVE Recommended Actions

  • Apply the vendor patch that imposes an upper limit on the repeat count, addressing the resource exhaustion weakness (CWE-770) and preventing unchecked input (CWE-1284).
  • If the patch cannot be applied, modify the application to validate the counter value before passing it to FormFu – clamp or reject values beyond a safe threshold (CWE-1284) and, if possible, unset the counter_name attribute so the count is never read from the query string.
  • Conduct a comprehensive audit of all Repeatable elements, enforce a maximum repeat limit consistent with application requirements, and deploy application‑level rate limiting or request‑size monitoring to detect and mitigate anomalous clone requests, thereby mitigating excessive resource allocation (CWE-770) and input‑driven resource exhaustion (CWE-1284).

Generated by OpenCVE AI on August 31, 2026 at 19:53 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 01 Sep 2026 09:30:00 +0000

Type Values Removed Values Added
References

Mon, 31 Aug 2026 21:45:00 +0000

Type Values Removed Values Added
First Time appeared Formfu
Formfu html-formfu
Vendors & Products Formfu
Formfu html-formfu

Mon, 31 Aug 2026 18:30:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'}

ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Mon, 31 Aug 2026 13:30:00 +0000

Type Values Removed Values Added
References

Mon, 31 Aug 2026 10:15:00 +0000

Type Values Removed Values Added
Description HTML::FormFu versions through 2.08 for Perl allow resource exhaustion via an unbounded repeat count from the query string in Repeatable elements. When a Repeatable element has counter_name set, its process method reads the repeat count from the named query string parameter, checks only that it is a positive integer, and passes it to repeat, which deep-clones the element's child subtree once per iteration. Nothing caps the value, and no attribute lets an application impose a limit. The count is read on every request, before the form decides whether it was submitted, so a plain GET reaches the clone loop with no credentials, no session and no request body. Nesting multiplies: a Repeatable inside a Repeatable takes a counter at each level, so an outer and an inner value of 100 build 10,000 clones. Once the form is submitted, each cloned field's constraints scan the whole element tree in _find_field_value, so cost grows faster than linearly with the count. A single request exhausts memory and CPU. The latest release on CPAN is 2.07, from 2018. Version 2.08 exists only in the git repository.
Title HTML::FormFu versions through 2.08 for Perl allow resource exhaustion via an unbounded repeat count from the query string in Repeatable elements
Weaknesses CWE-1284
CWE-770
References

Subscriptions

Formfu Html-formfu
cve-icon MITRE

Status: PUBLISHED

Assigner: CPANSec

Published:

Updated: 2026-09-01T08:10:22.796Z

Reserved: 2026-08-14T12:57:36.382Z

Link: CVE-2026-19873

cve-icon Vulnrichment

Updated: 2026-09-01T08:10:22.796Z

cve-icon NVD

Status : Deferred

Published: 2026-08-31T10:16:49.790

Modified: 2026-09-03T16:41:09.297

Link: CVE-2026-19873

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-31T21:21:43Z

Weaknesses
  • CWE-1284

    Improper Validation of Specified Quantity in Input

  • CWE-770

    Allocation of Resources Without Limits or Throttling