{"id":"CVE-2026-78189","title":"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","summary":"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.\n\nWhen a request matches no file, the PSGI handler retries it as an API route through api_fi…","severity":"none","cwe":["CWE-22"],"product":"WebDyne","affected":["WebDyne >= 3.007 < 3.022"],"published":"2026-10-31","updated":"2026-10-31","sourceUpdated":"2026-10-31T14:33:55.211Z","source":"CVEORG","sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-78189","references":[{"url":"https://metacpan.org/release/ASPEER/WebDyne-3.022/changes"}],"tags":["cve.org"],"epss":0.00249,"epssPercentile":0.1636,"ingestedAt":"2026-11-05T16:24:31.548Z","slug":"CVE-2026-78189","body":"## Overview\n\nWebDyne 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.\n\nWhen a request matches no file, the PSGI handler retries it as an API route through api_filename. That keeps .. segments in the request path and only checks that the joined path starts with the document root, which a request for /../private passes.\n\nA 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.\n\n## Affected\n\n- `WebDyne >= 3.007 < 3.022`\n\n## Remediation\n\nUpgrade to WebDyne 3.022 or later.","depth":"sunlit","depthScore":3,"depthScoreParts":{"impact":2.8,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}