Description
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.
Published: 2026-09-22
Score: 7.5 High
EPSS: < 1% Very Low
KEV: No
Impact: Remote File Disclosure
Action: Patch
AI Analysis

Impact

This vulnerability allows an attacker to request files outside the intended public directory by supplying relative path segments in the URL. The request path is concatenated to the public_dir without normalizing or collapsing segments, and the handler only verifies that the resulting path is a readable file. Consequently, arbitrary files that the worker process can read, including configuration files such as config.yml, can be served to any unauthenticated request. The impact is a clear information disclosure of potentially sensitive data held by the application.

Affected Systems

Any Perl application using Dancer2 versions 2.1.0 through any pre‑2.2.0 release is affected when the application defines a File route handler and sets static_handler to 0. The vulnerability is not present by default; it requires explicit route configuration. The exploitation would allow reading any file on the filesystem that the worker process has permissions to access.

Risk and Exploitability

The exploit can be performed via a simple HTTP request to the vulnerable route. No additional credentials or privileges are required. The CVSS score of 7.5 indicates a high severity, while the EPSS score of < 1% suggests a low current exploitation probability. The ability to read arbitrary system files poses a significant risk to confidentiality. Because the attack is unauthenticated and based solely on path manipulation, the potential impact is high for affected deployments. This vulnerability is not listed in the CISA KEV catalog at this time.

Generated by OpenCVE AI on September 22, 2026 at 21:55 UTC.

Remediation

Vendor Solution

Upgrade to Dancer2 2.2.0 or later.


OpenCVE Recommended Actions

  • Upgrade Dancer2 to version 2.2.0 or later to remove the insecure File route handler.
  • If an upgrade is not yet possible, disable the File route handler or set static_handler to a non‑zero value so that the route processing refuses dot segments before routing.
  • If the application must keep the handler, confine access to the public directory by ensuring that only the intended files are readable by the worker process and block read permissions for sensitive files like config.yml.

Generated by OpenCVE AI on September 22, 2026 at 21:55 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 28 Sep 2026 20:15:00 +0000

Type Values Removed Values Added
First Time appeared Perldancer
Perldancer dancer2
Vendors & Products Perldancer
Perldancer dancer2

Tue, 22 Sep 2026 20:30:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N'}

ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Tue, 22 Sep 2026 03:30:00 +0000

Type Values Removed Values Added
References

Tue, 22 Sep 2026 01:00:00 +0000

Type Values Removed Values Added
Description 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.
Title 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
Weaknesses CWE-22
References

Subscriptions

Perldancer Dancer2
cve-icon MITRE

Status: PUBLISHED

Assigner: CPANSec

Published:

Updated: 2026-09-22T19:19:59.077Z

Reserved: 2026-09-18T15:07:22.163Z

Link: CVE-2026-93712

cve-icon Vulnrichment

Updated: 2026-09-22T02:09:48.478Z

cve-icon NVD

Status : Deferred

Published: 2026-09-22T01:16:55.957

Modified: 2026-09-22T20:17:12.580

Link: CVE-2026-93712

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-28T19:48:00Z

Weaknesses
  • CWE-22

    Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')