CVE-2026-15689: CWE-640 Weak Password Recovery Mechanism for Forgotten Password in ABEVERLEY Dancer2::Plugin::Auth::Extensible
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.
AI Analysis
Technical Summary
The vulnerability in Dancer2::Plugin::Auth::Extensible (<=0.713) involves the construction of password reset and welcome email links using the request Host header or X-Forwarded-Host header when behind a proxy. These headers are untrusted and can be manipulated by an attacker. When a POST request to /login with submit_reset and a username is made, a reset code is generated and emailed with a link containing the attacker-controlled host. If the victim clicks this link, the attacker can use the reset code to take over the account. Versions through 0.711 use request->uri_base and request->base directly; versions 0.712 and later introduce an uri_base configuration key that defaults to the untrusted request->uri_base if unset, maintaining the vulnerability unless properly configured.
Potential Impact
An unauthenticated attacker can poison password reset links sent to users by manipulating the Host or X-Forwarded-Host headers. This allows the attacker to craft reset links pointing to a host they control. If a victim clicks such a link, the attacker gains access to a valid reset code, enabling account takeover. The vulnerability affects confidentiality, integrity, and availability of user accounts, with a CVSS score of 9.8 indicating critical severity.
Mitigation Recommendations
No official patch or remediation level is currently documented. Users should avoid relying on the default configuration that uses untrusted headers for constructing reset links. It is recommended to explicitly configure the uri_base parameter to a trusted, fixed value rather than relying on request headers. Monitor vendor advisories for official fixes or updates. Patch status is not yet confirmed — check the vendor advisory for current remediation guidance.
CVE-2026-15689: CWE-640 Weak Password Recovery Mechanism for Forgotten Password in ABEVERLEY Dancer2::Plugin::Auth::Extensible
Description
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.
CVSS v3.1
Score 9.8critical
Affected software
pkg:github/Dancer2-Plugin-Auth-ExtensibleRun on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
Weaknesses
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The vulnerability in Dancer2::Plugin::Auth::Extensible (<=0.713) involves the construction of password reset and welcome email links using the request Host header or X-Forwarded-Host header when behind a proxy. These headers are untrusted and can be manipulated by an attacker. When a POST request to /login with submit_reset and a username is made, a reset code is generated and emailed with a link containing the attacker-controlled host. If the victim clicks this link, the attacker can use the reset code to take over the account. Versions through 0.711 use request->uri_base and request->base directly; versions 0.712 and later introduce an uri_base configuration key that defaults to the untrusted request->uri_base if unset, maintaining the vulnerability unless properly configured.
Potential Impact
An unauthenticated attacker can poison password reset links sent to users by manipulating the Host or X-Forwarded-Host headers. This allows the attacker to craft reset links pointing to a host they control. If a victim clicks such a link, the attacker gains access to a valid reset code, enabling account takeover. The vulnerability affects confidentiality, integrity, and availability of user accounts, with a CVSS score of 9.8 indicating critical severity.
Mitigation Recommendations
No official patch or remediation level is currently documented. Users should avoid relying on the default configuration that uses untrusted headers for constructing reset links. It is recommended to explicitly configure the uri_base parameter to a trusted, fixed value rather than relying on request headers. Monitor vendor advisories for official fixes or updates. Patch status is not yet confirmed — check the vendor advisory for current remediation guidance.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- CPANSec
- Date Reserved
- 2026-07-14T01:03:59.438Z
- Cvss Version
- null
- State
- PUBLISHED
- Remediation Level
- null
Threat ID: 6a8088b7bf8831d539484783
Added to database: 08/15/2026, 15:41:43 UTC
Last enriched: 08/23/2026, 13:15:15 UTC
Last updated: 09/03/2026, 22:52:09 UTC
Views: 42
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.