Every CVE Search/ Get API key

CVE-2026-15689

Dancer2::Plugin::Auth::Extensible versions through 0.713 for Perl allow password reset link poisoning via the request Host header in _default_email_password_reset and _default_welcome_send

9.8 CriticalFix available

Dancer2::Plugin::Auth::Extensible versions through 0.713 for Perl allow password reset link poisoning via the request Host header in _default_email_password_reset and _default_welcome_send.

Both default emails emit a link of the form $base/login/$code, whose authority comes from the request Host header, or from X-Forwarded-Host under behind_proxy (obtained from Dancer2's request->base function). A POST to /login carrying submit_reset and a username needs no authentication: it stores a fresh reset code against that account and mails the account holder a link to a host of the sender's choosing. The welcome mail takes the same path when the application calls create_user with email_welcome set.

Through 0.711 the handlers read request->uri_base and request->base directly; Versions 0.712 and later provide an uri_base configuration key that defaults to the untrusted request->uri_base when unset.

The default configuration with reset_password_handler enabled and the default message text, a recipient who follows the link hands a working reset code to the sender's host, which is enough to take over the account.

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
High
Availability
High

Exploit likelihood

0.60%Up 0.3 points since Aug 16, 2026
90%50%10%1%

What each source reports

CVE List Score used 9.8

Dancer2::Plugin::Auth::Extensible versions through 0.713 for Perl allow password reset link poisoning via the request Host header in _default_email_password_reset and _default_welcome_send

Dancer2::Plugin::Auth::Extensible versions through 0.713 for Perl allow password reset link poisoning via the request Host header in _default_email_password_reset and _default_welcome_send.

Both default emails emit a link of the form $base/login/$code, whose authority comes from the request Host header, or from X-Forwarded-Host under behind_proxy (obtained from Dancer2's request->base function). A POST to /login carrying submit_reset and a username needs no authentication: it stores a fresh reset code against that account and mails the account holder a link to a host of the sender's choosing. The welcome mail takes the same path when the application calls create_user with email_welcome set.

Through 0.711 the handlers read request->uri_base and request->base directly; Versions 0.712 and later provide an uri_base configuration key that defaults to the untrusted request->uri_base when unset.

The default configuration with reset_password_handler enabled and the default message text, a recipient who follows the link hands a working reset code to the sender's host, which is enough to take over the account.

Record
CVE-2026-15689
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-640
Updated
2026-11-02
EUVDEUVD-2026-59758 9.8

Dancer2::Plugin::Auth::Extensible versions through 0.713 for Perl allow password reset link poisoning via the request Host header in _default_email_password_reset and _default_welcome_send.

Both default emails emit a link of the form $base/login/$code, whose authority comes from the request Host header, or from X-Forwarded-Host under behind_proxy (obtained from Dancer2's request->base function). A POST to /login carrying submit_reset and a username needs no authentication: it stores a fresh reset code against that account and mails the account holder a link to a host of the sender's choosing. The welcome mail takes the same path when the application calls create_user with email_welcome set.

Through 0.711 the handlers read request->uri_base and request->base directly; Versions 0.712 and later provide an uri_base configuration key that defaults to the untrusted request->uri_base when unset.

The default configuration with reset_password_handler enabled and the default message text, a recipient who follows the link hands a working reset code to the sender's host, which is enough to take over the account.

Record
EUVD-2026-59758
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
GitHub AdvisoriesGHSA-gmj3-5xfg-q3qg 9.8

Dancer2::Plugin::Auth::Extensible versions through 0.713 for Perl allow password reset link...

Dancer2::Plugin::Auth::Extensible versions through 0.713 for Perl allow password reset link poisoning via the request Host header in _default_email_password_reset and _default_welcome_send.

Both default emails emit a link of the form $base/login/$code, whose authority comes from the request Host header, or from X-Forwarded-Host under behind_proxy (obtained from Dancer2's request->base function). A POST to /login carrying submit_reset and a username needs no authentication: it stores a fresh reset code against that account and mails the account holder a link to a host of the sender's choosing. The welcome mail takes the same path when the application calls create_user with email_welcome set.

Through 0.711 the handlers read request->uri_base and request->base directly; Versions 0.712 and later provide an uri_base configuration key that defaults to the untrusted request->uri_base when unset.

The default configuration with reset_password_handler enabled and the default message text, a recipient who follows the link hands a working reset code to the sender's host, which is enough to take over the account.

Record
GHSA-gmj3-5xfg-q3qg
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-640
Updated
2026-11-02
NVD 9.8

Dancer2::Plugin::Auth::Extensible versions through 0.713 for Perl allow password reset link poisoning via the request Host header in _default_email_password_reset and _default_welcome_send.

Both default emails emit a link of the form $base/login/$code, whose authority comes from the request Host header, or from X-Forwarded-Host under behind_proxy (obtained from Dancer2's request->base function). A POST to /login carrying submit_reset and a username needs no authentication: it stores a fresh reset code against that account and mails the account holder a link to a host of the sender's choosing. The welcome mail takes the same path when the application calls create_user with email_welcome set.

Through 0.711 the handlers read request->uri_base and request->base directly; Versions 0.712 and later provide an uri_base configuration key that defaults to the untrusted request->uri_base when unset.

The default configuration with reset_password_handler enabled and the default message text, a recipient who follows the link hands a working reset code to the sender's host, which is enough to take over the account.

Record
CVE-2026-15689
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-640
Updated
2026-11-02
OSVopenSUSE-SU-2026:11564-1 No score

perl-Dancer2-Plugin-Auth-Extensible-0.713.0-1.1 on GA media

These are all security issues fixed in the perl-Dancer2-Plugin-Auth-Extensible-0.713.0-1.1 package on the GA media of openSUSE Tumbleweed.

Record
openSUSE-SU-2026:11564-1
Updated
2026-11-02
OSVopenSUSE-SU-2026:22190-1 No score

Security update for perl-Dancer2-Plugin-Auth-Extensible

This update for perl-Dancer2-Plugin-Auth-Extensible fixes the following issues:

Changes in perl-Dancer2-Plugin-Auth-Extensible:

  • updated to 0.714.0 (0.714)

    • Fix failing tests when sendmail binary not present on system.
  • updated to 0.713.0 (0.713)

    • Fix the ability to generate links in emails that have dynamic hosts. The security fix in the previous release cached the first base URI, which meant that if an application intentionally supports different hosts for its generated emails (based on the reqest host) then these were always fixed at the first request.
    • Add uri_base parameter (addresses CVE-2026-15689). If this is not set and if the application does not otherwise enforce a particular hostname, then an attacker can generate password reset emails and welcome emails for genuine users that contain links to a malicious host. bsc#1275272
Record
openSUSE-SU-2026:22190-1
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
perl-Dancer2-Plugin-Auth-Extensible
openSUSE:Tumbleweed
before 0.713.0-1.1
0.713.0-1.1
perl-Dancer2-Plugin-Auth-Extensible
openSUSE:Leap 16.0
before 0.714.0-bp160.1.1
0.714.0-bp160.1.1

History

History
RecordedChangedSources
first indexedCVE List, EUVD, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-15689 is a critical vulnerability (CVSS 9.8) in Abeverley Dancer2::plugin::auth::extensible, published August 15, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.60%, the 48th percentile. Fixed in perl-Dancer2-Plugin-Auth-Extensible 0.713.0-1.1.

References

MoveEnter Open