CVE-2026-78189
Full vulnerability record from the local CVENow database.
Description
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. 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. 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.
Severity
Not scored
CVSS score
Not available
Vulnerability status
Received
Source identifier
9b29abf9-4ab0-4765-b253-1875cd9b441e
Published
2026-10-31 15:16:54.003000
Last modified
2026-10-31 15:16:54.003000
View original CVE JSON
{
"id": "CVE-2026-78189",
"sourceIdentifier": "9b29abf9-4ab0-4765-b253-1875cd9b441e",
"published": "2026-10-31T15:16:54.003",
"lastModified": "2026-10-31T15:16:54.003",
"vulnStatus": "Received",
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "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_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."
}
],
"affected": [
{
"source": "9b29abf9-4ab0-4765-b253-1875cd9b441e",
"affectedData": [
{
"defaultStatus": "unaffected",
"collectionURL": "https://cpan.org/modules",
"packageName": "WebDyne",
"modules": [
"WebDyne"
],
"programFiles": [
"lib/WebDyne/PSGI.pm"
],
"programRoutines": [
{
"name": "WebDyne::PSGI::api_filename"
}
],
"repo": "https://github.com/aspeer/WebDyne",
"packageURL": "pkg:cpan/WebDyne",
"versions": [
{
"version": "3.007",
"lessThan": "3.022",
"versionType": "custom",
"status": "affected"
}
]
}
]
}
],
"metrics": {},
"weaknesses": [
{
"source": "9b29abf9-4ab0-4765-b253-1875cd9b441e",
"type": "Secondary",
"description": [
{
"lang": "en",
"value": "CWE-22"
}
]
}
],
"references": [
{
"url": "https://metacpan.org/release/ASPEER/WebDyne-3.022/changes",
"source": "9b29abf9-4ab0-4765-b253-1875cd9b441e"
}
]
}