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 _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.
Security readout for executives and security teams
Plain-English summary
Affected Perl applications can generate password-reset or welcome links using a hostname supplied by an untrusted requester. If a recipient follows the poisoned link, the reset code can be exposed to an attacker-controlled host, enabling account takeover. Impact depends on the application using the affected default email behavior.
Executive priority
Treat as an urgent identity-security issue for exposed applications because successful abuse can enable account takeover. Immediately identify affected deployments, constrain trusted hostnames, and suspend vulnerable email flows if necessary. The source bundle names no confirmed fixed release, so remediation decisions should follow current vendor guidance.
Technical view
Dancer2::Plugin::Auth::Extensible through 0.713 derives emailed link authority from request->base or request->uri_base. This can trust Host, or X-Forwarded-Host when behind_proxy is enabled. The unauthenticated reset flow creates and emails a fresh code; uri_base configuration in 0.712–0.713 remains unsafe when unset because it defaults to request data.
Likely exposure
Prioritize Perl applications using Dancer2::Plugin::Auth::Extensible through 0.713 with reset_password_handler and default reset emails enabled. Welcome emails are also exposed when create_user uses email_welcome. Risk is greatest where Host or forwarded-host values reach the application without strict validation and uri_base is unset or request-derived.
Exploitation context
The supplied record marks this CVE critical with CVSS 3.1 score 9.8. It is not listed as KEV, and the bundle provides no evidence of active exploitation. Successful account takeover requires the recipient to follow the attacker-influenced emailed link, despite the supplied CVSS vector stating UI:N.
Researcher notes
Review _default_email_password_reset and _default_welcome_send, including proxy-dependent request->base behavior. Versions through 0.711 read request-derived bases directly; 0.712–0.713 add uri_base but default it to request->uri_base when unset. Determine whether application overrides, middleware, or proxy validation prevent untrusted authority values from reaching email construction.
Mitigation direction
Inventory applications using Dancer2::Plugin::Auth::Extensible through version 0.713.
Check vendor guidance and release notes for a corrected version before upgrading.
Set uri_base explicitly to the application's trusted canonical HTTPS origin where supported.
Reject unexpected Host and forwarded-host values at trusted proxy and application boundaries.
Disable affected default reset or welcome emails until safely configured or updated.
Validation and detection
Confirm the installed package version and effective uri_base configuration.
Identify whether reset_password_handler or email_welcome invokes the default email generators.
Verify only approved hostnames can influence generated email links.
Inspect recent reset and welcome activity for unexpected destination hostnames.
Retest generated links after remediation using controlled, non-production accounts.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cwe · low confidence lookup
CWE-640: Exact CWE lookup
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
The CVE wording references authentication or credential exposure, so valid-account and credential-access review may help. This is a Glexia inferred lookup path, not an official MITRE, ATT&CK, or CVE Program mapping.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
1CVSS vectors
3Timeline events
2ADP providers
5Source links
SSVC decision data
CISA-ADPCISA Coordinator
Timestamp
Version
2.0.3
Exploitation: noneAutomatable: yesTechnical Impact: total
CVSS vector scores
1 official score
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.
CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.
CWE-640 · source CWE mapping
Weak Password Recovery Mechanism for Forgotten Password
Weak Password Recovery Mechanism for Forgotten Password represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.