Summary
CVE-2026-61451 is a critical password reset poisoning vulnerability in the Grav API plugin (grav-plugin-api) for Grav CMS, affecting all versions before 1.0.4. An unauthenticated remote attacker can inject an arbitrary attacker-controlled host into the password reset flow, causing the reset email sent to a legitimate user to contain a link pointing to the attacker’s server — when the victim clicks the link, the valid reset token is disclosed, enabling full account takeover. This vulnerability carries a CVSS 4.0 score of 9.4 (Critical).
Technical details
- Root cause: The
sanitizeHttpUrl()function used within thePOST /api/v1/auth/forgot-passwordendpoint validates only that a supplied URL scheme ishttporhttps, but never verifies the host component against the server’s own origin. As a result, theadmin_base_urlrequest field accepts an arbitrary attacker-controlled host without restriction. The vulnerable base URL can additionally be influenced via theRefererorOriginHTTP headers. - Trigger conditions: An attacker submits a POST request to the public, unauthenticated
/api/v1/auth/forgot-passwordendpoint, supplying a maliciousadmin_base_urlvalue (or a spoofedReferer/Originheader) pointing to an attacker-controlled server. No credentials or prior access are required. - Attack vector: Unauthenticated, fully remote, over the network. The forgot-password endpoint is a public API route requiring no authentication.
- Impact: The password reset email delivered to the targeted user contains a reset link whose host is the attacker’s server. When the victim clicks the link, the valid reset token is transmitted to the attacker, who can then use it against the legitimate Grav instance to reset the password and fully take over the account — including administrator accounts.
Affected software
- Grav API plugin (
grav-plugin-api) — all versions before 1.0.4
Severity
CVSS 4.0 base score: 9.4 (Critical)
Vector: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
Mitigation and recommended actions
- Immediate action: Upgrade
grav-plugin-apito version 1.0.4 or later. The 1.0.4 release resolves this vulnerability by ensuring password reset and invitation emails build their links only from the site’s own address or an explicitly allowlisted origin, preventing injection of an arbitrary host. - If immediate patching is not feasible: Restrict external network access to the
/api/v1/endpoint path at the web server or firewall level to prevent unauthenticated external actors from reaching the forgot-password endpoint until the plugin can be updated.
IONIX Status
The IONIX research team is tracking ongoing exploitation attempts and recommends immediate patching. Potentially affected assets are outlined in this post.

