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
Dancer2::Plugin::Auth::Extensible versions through 0.713 for Perl allow password reset link poisoning via the request Host header in defaultemailpasswordreset and defaultwelcomesend.
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 behindproxy (obtained from Dancer2's request->base function). A POST to /login carrying submitreset 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 createuser with emailwelcome set.
Through 0.711 the handlers read request->uribase and request->base directly; Versions 0.712 and later provide an uribase configuration key that defaults to the untrusted request->uribase when unset.
The default configuration with resetpasswordhandler 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.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
Dancer2::Plugin::Auth::Extensible (Perl)to a version that resolves this vulnerability.Fixed in 0.713 - Configuration
Set the `uri_base` configuration key to a trusted value so password reset / welcome emails do not derive their authority from the untrusted `request->uri_base` or request Host headers.
Dancer2::Plugin::Auth::Extensible uri_base = (set to a trusted, application-controlled base URL; do not leave unset) - Compensating control
Ensure the application is not vulnerable to Host header injection by preventing untrusted external clients from setting the HTTP `Host` header used to generate password reset/welcome links (e.g., enforce expected hostnames at the reverse proxy/WAF so Host/X-Forwarded-Host cannot be spoofed).
Event History
Frequently Asked Questions
What is the severity of CVE-2026-15689?
The severity of CVE-2026-15689 is rated at 75.
How do I fix CVE-2026-15689?
To fix CVE-2026-15689, upgrade Dancer2::Plugin::Auth::Extensible to version 0.714 or later.
What type of vulnerability is CVE-2026-15689?
CVE-2026-15689 is a password reset link poisoning vulnerability.
Which versions of Dancer2::Plugin::Auth::Extensible are affected by CVE-2026-15689?
Dancer2::Plugin::Auth::Extensible versions through 0.713 are affected by CVE-2026-15689.
What component of the application does CVE-2026-15689 impact?
CVE-2026-15689 impacts the _default_email_password_reset and _default_welcome_send components of Dancer2::Plugin::Auth::Extensible.