CVE-2026-93712: 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

Published Sep 22, 2026
·
Updated

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

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

The handler is off by default. An application is affected once it names File in routehandlers and sets statichandler 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 publicdir.

Affected Software

1 affected component
Dancer2 File route handler>=2.1.0<2.2.0

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade Dancer2 to a version that resolves this vulnerability.

    Fixed in 2.2.0
  2. Upgrade

    Upgrade Dancer2 to a version that resolves this vulnerability.

    Fixed in 2.2.0Patch CVE-2026-93712

Event History

Sep 22, 2026
CVE Published
via MITRE·12:52 AM
Data Sourced
via MITRE·12:52 AM
RemedyDescriptionWeakness
Data Sourced
via NVD·01:16 AM
DescriptionWeakness

Frequently Asked Questions

1

Which deployments are affected?

The vulnerable File route handler is off by default. An application is affected when it includes File in route_handlers and sets static_handler to 0; affected releases are Dancer2 2.1.0 through versions before 2.2.0.

2

What does an attacker need to exploit this issue?

An attacker only needs to send an unauthenticated HTTP request to a reachable affected application. They can use relative path segments, including percent-encoded dots, to request files outside public_dir.

3

What data could be exposed?

Any regular file readable by the worker process may be served. This can include files such as the application's config.yml located above public_dir.

4

How can I determine whether an application is exposed?

Review the application's configuration for File in route_handlers together with static_handler set to 0. On an affected version, requests containing traversal segments such as /../outside.txt may be handled as files outside public_dir if the target is readable by the worker process.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203