CVE-2026-78190
Low risk· EPSS 15%Exploitation Probability (EPSS)
Low risk15th percentile - higher than 15% of all known CVEs
Summary
WebDyne versions from 2.014 before 3.022 for Perl reflect request parameters unescaped into form field values, allowing cross-site scripting. The textfield, password_field and filefield tags fill their value attribute from the request parameter of the same name, and WEBDYNE_CGI_AUTOESCAPE defaults to off. From 2.022, WebDyne::HTML::Tiny replaced its entity_encode method with one that returns its input unchanged, so enabling WEBDYNE_CGI_AUTOESCAPE has no effect.
Risk Assessment
A remote attacker can inject script into any page using these tags through a crafted link, potentially leading to session theft or actions on behalf of the user. The risk affects all users visiting vulnerable pages.
Recommendation
Update WebDyne to version 3.022 or later. Until then, manually escape form field values and do not rely on WEBDYNE_CGI_AUTOESCAPE.
Other vulnerabilities in WebDyne
See all- CVE-2026-78192Low risk· EPSS 13%
WebDyne versions from 2.022 before 3.022 for Perl disclose application source to unauthenticated clients via the viewer in the default index page. The default index page returns files under the document root named in the source parameter of an HTMX request, including .psp, .pm and .pl files. A remote attacker can read the application's Perl code, including the __PERL__ blocks of .psp pages and any credentials they hold.
- CVE-2026-78191Low risk· EPSS 39%
WebDyne versions from 2.031 before 3.022 for Perl execute files with .psp anywhere in the name as Perl pages. The decision to run a requested file as a page matches its name against WEBDYNE_PSP_EXT_RE, which has no end anchor. An application that accepts uploads by checking only the final extension lets a remote attacker upload a file such as report.psp.pdf and run its embedded Perl by requesting it.
- CVE-2026-78189Low risk· EPSS 16%
WebDyne versions from 3.007 before 3.022 for Perl execute .psp files outside the document root via path traversal in the PSGI API route fallback. When a request matches no file, the PSGI handler retries it as an API route through api_filename, keeping .. segments in the request path and only checking that the joined path starts with the document root, which a request for /../private passes. A remote attacker can run the embedded Perl in any .psp file the server can read, such as one uploaded to a directory outside the document root.
- CVE-2026-78188Low risk· EPSS 2%
WebDyne versions from 2.014 before 3.022 for Perl issue session cookies without the Secure, HttpOnly and SameSite attributes. WebDyne::Session sets its session cookie with only a name, value and path. Browsers then send the session ID over plain HTTP and with cross-site requests, and expose it to page scripts.
Original NVD description (English source)
WebDyne versions from 2.014 before 3.022 for Perl reflect request parameters unescaped into form field values, allowing cross-site scripting. The textfield, password_field and filefield tags fill their value attribute from the request parameter of the same name. WEBDYNE_CGI_AUTOESCAPE, which controls escaping of these values, defaults to off. From 2.022, WebDyne::HTML::Tiny also replaced its entity_encode method with one that returns its input unchanged, so enabling WEBDYNE_CGI_AUTOESCAPE has no effect. A remote attacker can inject script into any page using these tags through a crafted link.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

