Skip to content
Heist/ feed
Back to feed
Medium

libdancer2-perl — security advisory

Type: advisorySources: OSVAdvisory ID: UBUNTU-CVE-2026-93709

Dancer2 versions before 2.2.0 for Perl serve a layout as a page when an equivalent spelling of its path misses the guard in the AutoPage handler. The handler compares the request path against the layout directory name as text, while the lookup that follows canonicalises it. A doubled slash, a dot segment, a percent-encoded slash, or a different capitalisation on a case-insensitive filesystem therefore misses the guard. The handler is off by default, enabled with auto_page. The layout wrapping every page is already public, so this discloses one of the application's other layouts.

Products
libdancer2-perl
Affected versions
0.160003+dfsg-1, 0.163000+dfsg-1, 0.166001+dfsg-1, 0.205000+dfsg-1, 0.205002+dfsg-1, 0.205002+dfsg-2, 0.208001+dfsg-1, 0.208002+dfsg-1, 0.300000+dfsg-1, 0.300005+dfsg-1, 0.301004+dfsg-1, 0.400001+dfsg-1, 1.0.0+dfsg-1, 1.1.0+dfsg-1, 1.1.2+dfsg-1, 2.1.0-1
Fixed versions
Not specified
CVEs
CVE-2026-93709
Confirmed fixed CVEs
Not specified
Updated in this feed
31 Oct 2026, 03:32 UTC · Revision 1

Source evidence

UBUNTU-CVE-2026-93709

core-osv · Original source

Published 22 Sept 2026, 01:16 UTC

Dancer2 versions before 2.2.0 for Perl serve a layout as a page when an equivalent spelling of its path misses the guard in the AutoPage handler. The handler compares the request path against the layout directory name as text, while the lookup that follows canonicalises it. A doubled slash, a dot segment, a percent-encoded slash, or a different capitalisation on a case-insensitive filesystem therefore misses the guard. The handler is off by default, enabled with auto_page. The layout wrapping every page is already public, so this discloses one of the application's other layouts.

osv:UBUNTU-CVE-2026-93709

libdancer2-perl

Fixed versions: Not specified

libdancer2-perl

Fixed versions: Not specified

libdancer2-perl

Fixed versions: Not specified

libdancer2-perl

Fixed versions: Not specified

libdancer2-perl

Fixed versions: Not specified

libdancer2-perl

Fixed versions: Not specified

libdancer2-perl

Fixed versions: Not specified

Complete source record
{
  "id": "8a48ced689d6ecdb65e36d8a59768671addfa423bc7c4afc13a462a753032e32",
  "url": "https://osv.dev/vulnerability/UBUNTU-CVE-2026-93709",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "UBUNTU-CVE-2026-93709",
    "summary": "Dancer2 versions before 2.2.0 for Perl serve a layout as a page when an equivalent spelling of its path misses the guard in the AutoPage handler. The handler compares the request path against the layout directory name as text, while the lookup that follows canonicalises it. A doubled slash, a dot segment, a percent-encoded slash, or a different capitalisation on a case-insensitive filesystem therefore misses the guard. The handler is off by default, enabled with auto_page. The layout wrapping every page is already public, so this discloses one of the application's other layouts.",
    "evidence": "osv:UBUNTU-CVE-2026-93709",
    "products": [
      {
        "name": {
          "value": "libdancer2-perl",
          "evidence": "/affected/0/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [],
        "affected_versions": [
          {
            "value": "0.160003+dfsg-1",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "0.163000+dfsg-1",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "0.166001+dfsg-1",
            "evidence": "/affected/0/versions"
          }
        ]
      },
      {
        "name": {
          "value": "libdancer2-perl",
          "evidence": "/affected/1/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [],
        "affected_versions": [
          {
            "value": "0.205000+dfsg-1",
            "evidence": "/affected/1/versions"
          },
          {
            "value": "0.205002+dfsg-1",
            "evidence": "/affected/1/versions"
          },
          {
            "value": "0.205002+dfsg-2",
            "evidence": "/affected/1/versions"
          }
        ]
      },
      {
        "name": {
          "value": "libdancer2-perl",
          "evidence": "/affected/2/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [],
        "affected_versions": [
          {
            "value": "0.208001+dfsg-1",
            "evidence": "/affected/2/versions"
          },
          {
            "value": "0.208002+dfsg-1",
            "evidence": "/affected/2/versions"
          },
          {
            "value": "0.300000+dfsg-1",
            "evidence": "/affected/2/versions"
          }
        ]
      },
      {
        "name": {
          "value": "libdancer2-perl",
          "evidence": "/affected/3/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [],
        "affected_versions": [
          {
            "value": "0.300005+dfsg-1",
            "evidence": "/affected/3/versions"
          },
          {
            "value": "0.301004+dfsg-1",
            "evidence": "/affected/3/versions"
          }
        ]
      },
      {
        "name": {
          "value": "libdancer2-perl",
          "evidence": "/affected/4/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [],
        "affected_versions": [
          {
            "value": "0.400001+dfsg-1",
            "evidence": "/affected/4/versions"
          },
          {
            "value": "1.0.0+dfsg-1",
            "evidence": "/affected/4/versions"
          },
          {
            "value": "1.1.0+dfsg-1",
            "evidence": "/affected/4/versions"
          }
        ]
      },
      {
        "name": {
          "value": "libdancer2-perl",
          "evidence": "/affected/5/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [],
        "affected_versions": [
          {
            "value": "1.1.2+dfsg-1",
            "evidence": "/affected/5/versions"
          },
          {
            "value": "2.1.0-1",
            "evidence": "/affected/5/versions"
          }
        ]
      },
      {
        "name": {
          "value": "libdancer2-perl",
          "evidence": "/affected/6/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [],
        "affected_versions": [
          {
            "value": "1.1.2+dfsg-1",
            "evidence": "/affected/6/versions"
          }
        ]
      }
    ],
    "severity": "medium",
    "structured": {
      "id": "UBUNTU-CVE-2026-93709",
      "aliases": [
        "UBUNTU-CVE-2026-93709"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N"
        },
        {
          "type": "Ubuntu",
          "score": "medium"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "0"
                }
              ]
            }
          ],
          "package": {
            "name": "libdancer2-perl",
            "purl": "pkg:deb/ubuntu/libdancer2-perl?arch=source&distro=xenial",
            "ecosystem": "Ubuntu:16.04:LTS"
          },
          "versions": [
            "0.160003+dfsg-1",
            "0.163000+dfsg-1",
            "0.166001+dfsg-1"
          ],
          "database_specific": {
            "source": "https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-93709.json"
          },
          "ecosystem_specific": {
            "binaries": [
              {
                "binary_name": "libdancer2-perl",
                "binary_version": "0.166001+dfsg-1"
              }
            ]
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "0"
                }
              ]
            }
          ],
          "package": {
            "name": "libdancer2-perl",
            "purl": "pkg:deb/ubuntu/libdancer2-perl?arch=source&distro=bionic",
            "ecosystem": "Ubuntu:18.04:LTS"
          },
          "versions": [
            "0.205000+dfsg-1",
            "0.205002+dfsg-1",
            "0.205002+dfsg-2"
          ],
          "database_specific": {
            "source": "https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-93709.json"
          },
          "ecosystem_specific": {
            "binaries": [
              {
                "binary_name": "libdancer2-perl",
                "binary_version": "0.205002+dfsg-2"
              }
            ]
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "0"
                }
              ]
            }
          ],
          "package": {
            "name": "libdancer2-perl",
            "purl": "pkg:deb/ubuntu/libdancer2-perl?arch=source&distro=focal",
            "ecosystem": "Ubuntu:20.04:LTS"
          },
          "versions": [
            "0.208001+dfsg-1",
            "0.208002+dfsg-1",
            "0.300000+dfsg-1"
          ],
          "database_specific": {
            "source": "https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-93709.json"
          },
          "ecosystem_specific": {
            "binaries": [
              {
                "binary_name": "libdancer2-perl",
                "binary_version": "0.300000+dfsg-1"
              }
            ]
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "0"
                }
              ]
            }
          ],
          "package": {
            "name": "libdancer2-perl",
            "purl": "pkg:deb/ubuntu/libdancer2-perl?arch=source&distro=jammy",
            "ecosystem": "Ubuntu:22.04:LTS"
          },
          "versions": [
            "0.300005+dfsg-1",
            "0.301004+dfsg-1"
          ],
          "database_specific": {
            "source": "https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-93709.json"
          },
          "ecosystem_specific": {
            "binaries": [
              {
                "binary_name": "libdancer2-perl",
                "binary_version": "0.301004+dfsg-1"
              }
            ]
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "0"
                }
              ]
            }
          ],
          "package": {
            "name": "libdancer2-perl",
            "purl": "pkg:deb/ubuntu/libdancer2-perl?arch=source&distro=noble",
            "ecosystem": "Ubuntu:24.04:LTS"
          },
          "versions": [
            "0.400001+dfsg-1",
            "1.0.0+dfsg-1",
            "1.1.0+dfsg-1"
          ],
          "database_specific": {
            "source": "https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-93709.json"
          },
          "ecosystem_specific": {
            "binaries": [
              {
                "binary_name": "libdancer2-perl",
                "binary_version": "1.1.0+dfsg-1"
              }
            ]
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "0"
                }
              ]
            }
          ],
          "package": {
            "name": "libdancer2-perl",
            "purl": "pkg:deb/ubuntu/libdancer2-perl?arch=source&distro=stonking",
            "ecosystem": "Ubuntu:26.10"
          },
          "versions": [
            "1.1.2+dfsg-1",
            "2.1.0-1"
          ],
          "database_specific": {
            "source": "https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-93709.json"
          },
          "ecosystem_specific": {
            "binaries": [
              {
                "binary_name": "libdancer2-perl",
                "binary_version": "2.1.0-1"
              }
            ]
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "0"
                }
              ]
            }
          ],
          "package": {
            "name": "libdancer2-perl",
            "purl": "pkg:deb/ubuntu/libdancer2-perl?arch=source&distro=resolute",
            "ecosystem": "Ubuntu:26.04:LTS"
          },
          "versions": [
            "1.1.2+dfsg-1"
          ],
          "database_specific": {
            "source": "https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-93709.json"
          },
          "ecosystem_specific": {
            "binaries": [
              {
                "binary_name": "libdancer2-perl",
                "binary_version": "1.1.2+dfsg-1"
              }
            ]
          }
        }
      ],
      "modified": "2026-10-17T13:01:18.397949795Z",
      "provider": "osv",
      "upstream": [
        "CVE-2026-93709"
      ],
      "references": [
        "https://ubuntu.com/security/CVE-2026-93709",
        "https://www.cve.org/CVERecord?id=CVE-2026-93709",
        "https://lists.security.metacpan.org/cve-announce/msg/43742968/",
        "https://github.com/PerlDancer/Dancer2/issues/1823",
        "https://github.com/PerlDancer/Dancer2/commit/293fce08812b0928f34ab2d7b9357450707c3630.patch",
        "https://github.com/PerlDancer/Dancer2/commit/753b385350a54acb8d4b686723890205268634a8.patch",
        "https://metacpan.org/release/CROMEDOME/Dancer2-2.2.0/changes"
      ]
    },
    "related_cves": [
      {
        "value": "CVE-2026-93709",
        "evidence": "/upstream"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 361585,
  "published_at": "2026-09-22T01:16:00+00:00"
}