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
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.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- None
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
7.5
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
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.
- Record
CVE-2026-93712- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - Weakness
- CWE-22
- Updated
- 2026-11-02
EUVDEUVD-2026-84258
7.5
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.
- Record
EUVD-2026-84258- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-fq22-f6q5-wv3x
7.5
Dancer2 versions from 2.1.0 before 2.2.0 for Perl serve files from outside public_dir via...
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.
- Record
GHSA-fq22-f6q5-wv3x- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - Weakness
- CWE-22
- Updated
- 2026-11-02
NVD
7.5
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.
- Record
CVE-2026-93712- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - Weakness
- CWE-22
- Updated
- 2026-11-02
OSV
7.5
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
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.
- Record
CVE-2026-93712- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - Weakness
- CWE-22
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-93712
7.5
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.
- Record
DEBIAN-CVE-2026-93712- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-93712
7.5
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.
- Record
UBUNTU-CVE-2026-93712- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - Updated
- 2026-11-02
OSVopenSUSE-SU-2026:12202-1 No score
perl-Dancer2-2.2.2-1.1 on GA media
These are all security issues fixed in the perl-Dancer2-2.2.2-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:12202-1- Updated
- 2026-11-02
Affected packages
| Package | Affected | Fixed |
|---|---|---|
libdancer2-perlDebian:12 |
All versions, plus listed versions 0.400001+dfsg-11.0.0+dfsg-11.1.0+dfsg-11.1.1+dfsg-11.1.2+dfsg-12.0.1-12.1.0-12.2.2-1 |
None known |
libdancer2-perlDebian:13 |
All versions, plus listed versions 1.1.2+dfsg-12.0.1-12.1.0-12.2.2-1 |
None known |
libdancer2-perlDebian:14 |
before 2.2.2-1, plus listed versions 1.1.2+dfsg-12.0.1-12.1.0-1 |
2.2.2-1 |
libdancer2-perlUbuntu:16.04:LTS |
All versions, plus listed versions 0.160003+dfsg-10.163000+dfsg-10.166001+dfsg-1 |
None known |
libdancer2-perlUbuntu:18.04:LTS |
All versions, plus listed versions 0.205000+dfsg-10.205002+dfsg-10.205002+dfsg-2 |
None known |
libdancer2-perlUbuntu:20.04:LTS |
All versions, plus listed versions 0.208001+dfsg-10.208002+dfsg-10.300000+dfsg-1 |
None known |
libdancer2-perlUbuntu:22.04:LTS |
All versions, plus listed versions 0.300005+dfsg-10.301004+dfsg-1 |
None known |
libdancer2-perlUbuntu:24.04:LTS |
All versions, plus listed versions 0.400001+dfsg-11.0.0+dfsg-11.1.0+dfsg-1 |
None known |
libdancer2-perlUbuntu:26.10 |
All versions, plus listed versions 1.1.2+dfsg-12.1.0-1 |
None known |
libdancer2-perlUbuntu:26.04:LTS |
All versions, plus listed versions 1.1.2+dfsg-1 |
None known |
perl-Dancer2openSUSE:Tumbleweed From an advisory covering 4 CVEs |
before 2.2.2-1.1 | 2.2.2-1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-93712 is a high vulnerability (CVSS 7.5) in libdancer2-perl, published September 22, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.55%, the 46th percentile. Fixed in libdancer2-perl 2.2.2-1.
References
github.com/PerlDancer/Dancer2/security/advisories/GHSA-6xw8-v24c-m783
github.com/PerlDancer/Dancer2/commit/2446a09ffb83fef71cc75c327bd6e4b1f007b885.patch
metacpan.org/release/CROMEDOME/Dancer2-2.2.0/changes
openwall.com/lists/oss-security/2026/09/22/4
nvd.nist.gov/vuln/detail/CVE-2026-93712
github.com/advisories/GHSA-fq22-f6q5-wv3x
Show 11 moreShow less
cpan.org/modules
github.com/CVEProject/cvelistV5/tree/main/cves/2026/93xxx/CVE-2026-93712.json
github.com/PerlDancer/Dancer2
security-tracker.debian.org/tracker/CVE-2026-93712
ubuntu.com/security/CVE-2026-93712
cve.org/CVERecord?id=CVE-2026-93712
lists.security.metacpan.org/cve-announce/msg/43742973
suse.com/security/cve/CVE-2026-93709
suse.com/security/cve/CVE-2026-93710
suse.com/security/cve/CVE-2026-93711
suse.com/security/cve/CVE-2026-93712