CVE-2026-93712

Source
https://cve.org/CVERecord?id=CVE-2026-93712
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-93712.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-93712
Aliases
  • GHSA-6xw8-v24c-m783
Downstream
Published
2026-09-22T00:52:36Z
Modified
2026-09-22T11:45:42Z
Summary
Dancer2 versions from 2.1.0 before 2.2.0 for Perl serve files from outside public_dir via relative path segments in the File route handler
Details

Dancer2 versions from 2.1.0 before 2.2.0 for Perl serve files from outside public_dir via relative path segments in the File route handler.

The handler joins the request path onto public_dir without collapsing relative segments, and checks only that the result is a readable regular file. A request for /../outside.txt escapes public_dir, and percent-encoding the dots reaches the same file.

The handler is off by default. An application is affected once it names File in route_handlers and sets static_handler to 0, which otherwise refuses a dot segment before the route runs.

Any file the worker process can read is served to an unauthenticated request, including the application's config.yml above public_dir.

Database specific
{
    "cna_assigner":  "CPANSec",
    "cwe_ids":  [
        "CWE-22"
    ],
    "osv_generated_from":  "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/93xxx/CVE-2026-93712.json"
}
References

Affected packages

Git / github.com/perldancer/dancer2

Affected ranges

Type
GIT
Repo
https://github.com/perldancer/dancer2
Events
Database specific
Show details
{
    "extracted_events":  [
        {
            "introduced":  "2.1.0"
        },
        {
            "fixed":  "2.2.0"
        }
    ],
    "source":  "AFFECTED_FIELD"
}

Affected versions

v2.*
v2.1.0

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-93712.json"