{"id":19596,"date":"2026-09-09T04:32:19","date_gmt":"2026-09-08T20:32:19","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-19872"},"modified":"2026-09-09T04:32:19","modified_gmt":"2026-09-08T20:32:19","slug":"cve-2026-19872","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-19872","title":{"rendered":"CVE-2026-19872 &#8211; HTML::FormHandler versions before 0.410000 for Perl allow cross-site scripting via a submi"},"content":{"rendered":"<p>HTML::FormHandler versions before 0.410000 for Perl allow cross-site scripting via a submitted value rendered unescaped in an error message.<\/p>\n<p>The wrappers and renderers that emit a form&#8217;s errors interpolate the error string straight into HTML with no escaping. Two of the library&#8217;s own messages, no_match and not_allowed, splice the submitted value into that string, and a failing type constraint puts the rejected value into the message it builds, which _apply_actions hands to add_error.<\/p>\n<p>A field declared with a check regexp, a check list or a type constraint reaches those messages, with no custom validator and no non-default configuration. Errors rendered through an application&#8217;s own escaping template layer rather than the library&#8217;s rendering roles are not affected.<\/p>\n<p>A request over the network that submits markup to such a field gets it back live inside the error span, running script in the victim&#8217;s origin. Re-rendering a rejected value later gives the stored variant.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>HTML::FormHandler versions before 0.410000 for Perl allow cross-site scripting via a submitted value rendered unescaped in an error message.<\/p>\n<p>The wrappers and renderers that emit a form&#8217;s errors inter<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-19596","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/19596","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=19596"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=19596"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=19596"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}