{"id":"CVE-2026-19873","state":"PUBLISHED","title":"HTML::FormFu versions through 2.08 for Perl allow resource exhaustion via an unbounded repeat count from the query string in Repeatable elements","description":"HTML::FormFu versions through 2.08 for Perl allow resource exhaustion via an unbounded repeat count from the query string in Repeatable elements.\n\nWhen 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.\n\nThe 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.\n\nOnce 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.\n\nThe latest release on CPAN is 2.07, from 2018. Version 2.08 exists only in the git repository.","publishedAt":"2026-08-31T10:07:32.134Z","updatedAt":"2026-09-01T08:10:22.796Z","severity":{"score":7.5,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","source":"CISA-ADP"},"assigner":"CPANSec","products":["HTML-FormFu"],"affected":[{"packageName":"HTML-FormFu","packageURL":"pkg:cpan/HTML-FormFu","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThanOrEqual":"2.08","versionType":"custom"}],"collectionURL":"https://cpan.org/modules","modules":["HTML::FormFu"],"programFiles":["lib/HTML/FormFu/Element/Repeatable.pm","lib/HTML/FormFu/Constraint.pm"],"programRoutines":[{"name":"HTML::FormFu::Element::Repeatable::process"},{"name":"HTML::FormFu::Element::Repeatable::repeat"},{"name":"HTML::FormFu::Constraint::_find_field_value"}],"repo":"https://github.com/FormFu/HTML-FormFu"}],"references":["https://github.com/FormFu/HTML-FormFu/issues/71","https://security.metacpan.org/patches/H/HTML-FormFu/2.08/CVE-2026-19873-r1.patch","http://www.openwall.com/lists/oss-security/2026/08/31/7","http://www.openwall.com/lists/oss-security/2026/09/01/1"],"weaknesses":["CWE-1284","CWE-770"],"ingestedAt":"2026-10-29T20:11:10.572Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/19xxx/CVE-2026-19873.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-19873","state":"PUBLISHED","datePublished":"2026-08-31T10:07:32.134Z","dateUpdated":"2026-09-01T08:10:22.796Z","assignerShortName":"CPANSec","assignerOrgId":"9b29abf9-4ab0-4765-b253-1875cd9b441e","dateReserved":"2026-08-14T12:57:36.382Z"},"containers":{"cna":{"title":"HTML::FormFu versions through 2.08 for Perl allow resource exhaustion via an unbounded repeat count from the query string in Repeatable elements","descriptions":[{"lang":"en","value":"HTML::FormFu versions through 2.08 for Perl allow resource exhaustion via an unbounded repeat count from the query string in Repeatable elements.\n\nWhen 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.\n\nThe 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.\n\nOnce 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.\n\nThe latest release on CPAN is 2.07, from 2018. Version 2.08 exists only in the git repository."}],"affected":[{"packageName":"HTML-FormFu","packageURL":"pkg:cpan/HTML-FormFu","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThanOrEqual":"2.08","versionType":"custom"}],"collectionURL":"https://cpan.org/modules","modules":["HTML::FormFu"],"programFiles":["lib/HTML/FormFu/Element/Repeatable.pm","lib/HTML/FormFu/Constraint.pm"],"programRoutines":[{"name":"HTML::FormFu::Element::Repeatable::process"},{"name":"HTML::FormFu::Element::Repeatable::repeat"},{"name":"HTML::FormFu::Constraint::_find_field_value"}],"repo":"https://github.com/FormFu/HTML-FormFu"}],"references":[{"url":"https://github.com/FormFu/HTML-FormFu/issues/71","tags":["issue-tracking"]},{"url":"https://security.metacpan.org/patches/H/HTML-FormFu/2.08/CVE-2026-19873-r1.patch","tags":["patch"]}],"problemTypes":[{"descriptions":[{"cweId":"CWE-1284","description":"CWE-1284 Improper Validation of Specified Quantity in Input","lang":"en","type":"CWE"}]},{"descriptions":[{"cweId":"CWE-770","description":"CWE-770 Allocation of Resources Without Limits or Throttling","lang":"en","type":"CWE"}]}],"providerMetadata":{"shortName":"CPANSec","orgId":"9b29abf9-4ab0-4765-b253-1875cd9b441e","dateUpdated":"2026-08-31T10:07:32.134Z"},"solutions":[{"lang":"en","value":"Apply the patch. There is no fixed release."}],"source":{"discovery":"UNKNOWN"},"workarounds":[{"lang":"en","value":"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."}],"x_generator":{"engine":"cpansec-cna-tool 0.1"}},"adp":[{"title":"CVE Program Container","references":[{"url":"http://www.openwall.com/lists/oss-security/2026/08/31/7"},{"url":"http://www.openwall.com/lists/oss-security/2026/09/01/1"}],"providerMetadata":{"shortName":"CVE","orgId":"af854a3a-2127-422b-91ae-364da2661108","dateUpdated":"2026-09-01T08:10:22.796Z"}},{"title":"CISA ADP Vulnrichment","metrics":[{"cvssV3_1":{"scope":"UNCHANGED","version":"3.1","baseScore":7.5,"attackVector":"NETWORK","baseSeverity":"HIGH","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","integrityImpact":"NONE","userInteraction":"NONE","attackComplexity":"LOW","availabilityImpact":"HIGH","privilegesRequired":"NONE","confidentialityImpact":"NONE"}},{"other":{"type":"ssvc","content":{"timestamp":"2026-08-31T17:56:55.337977Z","id":"CVE-2026-19873","options":[{"Exploitation":"none"},{"Automatable":"yes"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-08-31T17:57:13.999Z"}}]}}}