Skip to content
Heist/ feed
Back to feed
High

libdancer2-perl — security advisory

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

Dancer2 versions from 2.0.0 before 2.2.0 for Perl dispatch a route that a dying hook refused when the exception handler halts the response in compile_hooks. A hook that dies fires core.app.hook_exception, then calls cleanup unless the failing hook is the exception handler. A handler that halts does not stop that cleanup, which discards the request, response and session the dispatcher has yet to read, so the refused route runs. The handler has to halt the response object by calling its halt method or setting is_halted: the halt keyword unwinds through with_return before cleanup runs. A check in a before hook is not enforced: the caller gets the refusal, while the route body runs and its writes land.

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-93710
Confirmed fixed CVEs
Not specified
Updated in this feed
31 Oct 2026, 03:32 UTC · Revision 1

Source evidence

UBUNTU-CVE-2026-93710

core-osv · Original source

Published 22 Sept 2026, 01:16 UTC

Dancer2 versions from 2.0.0 before 2.2.0 for Perl dispatch a route that a dying hook refused when the exception handler halts the response in compile_hooks. A hook that dies fires core.app.hook_exception, then calls cleanup unless the failing hook is the exception handler. A handler that halts does not stop that cleanup, which discards the request, response and session the dispatcher has yet to read, so the refused route runs. The handler has to halt the response object by calling its halt method or setting is_halted: the halt keyword unwinds through with_return before cleanup runs. A check in a before hook is not enforced: the caller gets the refusal, while the route body runs and its writes land.

osv:UBUNTU-CVE-2026-93710

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": "6927d2bb9b2cfccd1aa2610f2abe077a164b6c41283304b0fbf13fa362f8b08f",
  "url": "https://osv.dev/vulnerability/UBUNTU-CVE-2026-93710",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "UBUNTU-CVE-2026-93710",
    "summary": "Dancer2 versions from 2.0.0 before 2.2.0 for Perl dispatch a route that a dying hook refused when the exception handler halts the response in compile_hooks. A hook that dies fires core.app.hook_exception, then calls cleanup unless the failing hook is the exception handler. A handler that halts does not stop that cleanup, which discards the request, response and session the dispatcher has yet to read, so the refused route runs. The handler has to halt the response object by calling its halt method or setting is_halted: the halt keyword unwinds through with_return before cleanup runs. A check in a before hook is not enforced: the caller gets the refusal, while the route body runs and its writes land.",
    "evidence": "osv:UBUNTU-CVE-2026-93710",
    "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": "high",
    "structured": {
      "id": "UBUNTU-CVE-2026-93710",
      "aliases": [
        "UBUNTU-CVE-2026-93710"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
        },
        {
          "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-93710.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-93710.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-93710.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-93710.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-93710.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-93710.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-93710.json"
          },
          "ecosystem_specific": {
            "binaries": [
              {
                "binary_name": "libdancer2-perl",
                "binary_version": "1.1.2+dfsg-1"
              }
            ]
          }
        }
      ],
      "modified": "2026-10-17T13:01:18.338539114Z",
      "provider": "osv",
      "upstream": [
        "CVE-2026-93710"
      ],
      "references": [
        "https://ubuntu.com/security/CVE-2026-93710",
        "https://www.cve.org/CVERecord?id=CVE-2026-93710",
        "https://lists.security.metacpan.org/cve-announce/msg/43742969/",
        "https://github.com/PerlDancer/Dancer2/security/advisories/GHSA-v527-r4px-7vx7",
        "https://github.com/PerlDancer/Dancer2/commit/8fd31a32798f9aa25e4fccbd6c7cb9dd3a0c1029.patch",
        "https://metacpan.org/release/CROMEDOME/Dancer2-2.2.0/changes"
      ]
    },
    "related_cves": [
      {
        "value": "CVE-2026-93710",
        "evidence": "/upstream"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 361577,
  "published_at": "2026-09-22T01:16:00+00:00"
}