CVE-2025-63828
Executive Summary
CVE-2025-63828 is a Host Header Injection vulnerability in Backdrop CMS 1.32.1. An attacker can manipulate the Host header in password reset requests, causing the application to generate password reset links that point to an attacker-controlled domain. This can lead to session hijacking via cookie injection and redirect users to malicious sites. The vulnerability has a CVSS score of 0.0 (placeholder) but is assessed as medium severity due to the requirement for user interaction. No public exploit code or patch is currently available.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Supply Chain & Package Security
Backdrop CMS is a PHP-based open-source content management system. The vulnerability exists in the core password reset functionality, not in any third-party package. However, administrators should verify the integrity of their Backdrop installation and monitor for any unauthorized modifications to core files.
CVSS Breakdown & Threat Level
- Attack Vector (AV): Network (N) – The attack is performed over the network.
- Attack Complexity (AC): Low (L) – No special conditions are required.
- Privileges Required (PR): None (N) – No authentication needed.
- User Interaction (UI): Required (R) – The victim must click a link or submit a form.
- Scope (S): Unchanged (U) – The impact is confined to the vulnerable component.
- Confidentiality (C): Low (L) – Limited information disclosure (e.g., session tokens).
- Integrity (I): Low (L) – Limited ability to modify data (e.g., redirect to malicious site).
- Availability (A): None (N) – No impact on availability.
Threat Level: Medium – Exploitation requires user interaction but can lead to session hijacking and phishing.
Deep Dive & Mechanics
The vulnerability resides in the password reset mechanism of Backdrop CMS. When a user requests a password reset, the application generates a unique token and sends an email containing a link. The link is constructed using the Host header from the HTTP request. If an attacker can control the Host header (e.g., by sending a crafted request to the server), the generated reset link will point to the attacker’s domain.
Attack Flow:
- Attacker sends a password reset request for a target user (e.g.,
admin@example.com) with a modifiedHostheader:Host: attacker.com. - Backdrop CMS generates a reset link:
http://attacker.com/reset?token=abc123. - The legitimate user receives the email and clicks the link, thinking it is from the legitimate site.
- The attacker’s server captures the token and can then reset the user’s password or hijack the session.
Root Cause: The application uses $_SERVER['HTTP_HOST'] without proper validation or sanitization when constructing URLs for password reset emails.
Vulnerable vs. Patched Code
Vulnerable Code (Backdrop CMS 1.32.1):
// In password_reset_form_submit() or similar function
$reset_url = 'http://' . $_SERVER['HTTP_HOST'] . '/user/reset/' . $token;
Patched Code (Hypothetical fix):
// Use a trusted base URL from configuration
$reset_url = $base_url . '/user/reset/' . $token;
The fix involves using a hardcoded or configured base URL instead of relying on the Host header. The $base_url should be defined in the site’s settings file and validated against a whitelist of allowed domains.
Exploitation & Lab Setup
Red Team
Prerequisites:
- A Backdrop CMS 1.32.1 instance (e.g., using Docker).
- Ability to intercept or modify HTTP requests (e.g., Burp Suite, curl).
Exploitation Steps:
- Identify a target user’s email address (e.g., via user enumeration or social engineering).
- Send a POST request to the password reset endpoint with a modified
Hostheader:curl -X POST http://target.com/user/password \ -H "Host: attacker.com" \ -d "name=admin@example.com" - The user receives an email with a reset link pointing to
http://attacker.com/user/reset/TOKEN. - When the user clicks the link, the attacker’s server logs the token.
- Use the token to reset the user’s password or hijack the session.
Note: No public exploit code is available; this is a conceptual demonstration.
Blue Team
Detection:
- Monitor for password reset requests with unusual
Hostheaders. - Log and alert on any
Hostheader values that do not match the expected domain. - Implement Web Application Firewall (WAF) rules to block requests with unexpected
Hostheaders.
Mitigation:
- Apply a virtual patch by modifying the application code to use a trusted base URL.
- Use a reverse proxy (e.g., Nginx) to validate and sanitize the
Hostheader before it reaches the application. - Enable two-factor authentication (2FA) to reduce the impact of session hijacking.
Indicators of Compromise (IOCs)
- Network:
- HTTP requests to
/user/passwordwith aHostheader different from the legitimate domain. - Outbound emails containing reset links pointing to external domains.
- HTTP requests to
- Logs:
- Web server logs showing
Hostheader values likeattacker.comormalicious.net. - Application logs showing password reset requests from unusual IP addresses.
- Web server logs showing
- File System:
- Modified core files (e.g.,
password_reset.inc) if an attacker has gained access.
- Modified core files (e.g.,
Detection Engineering
YARA Rule
rule CVE_2025_63828_Host_Header_Injection {
meta:
description = "Detects Host header injection attempts in Backdrop CMS password reset requests"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-63828"
strings:
$s1 = "/user/password" ascii wide nocase
$s2 = "Host:" ascii wide nocase
condition:
$s1 and $s2
}
Sigma Rule
title: Host Header Injection in Backdrop CMS Password Reset
id: 8a9b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d
status: experimental
description: Detects password reset requests with suspicious Host headers
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'POST'
cs-uri-stem: '/user/password'
cs-host:
- 'attacker.com'
- 'malicious.net'
- '*'
condition: selection
falsepositives:
- Legitimate reverse proxy configurations
level: medium
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-63828 - Host Header Injection in Backdrop CMS Password Reset"; flow:to_server; http.method; content:"POST"; http.uri; content:"/user/password"; http.host; content:!"target.com"; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Virtual Patch: Modify the application code to use a hardcoded base URL instead of the
Hostheader. - WAF Rule: Block requests where the
Hostheader does not match the expected domain. - Reverse Proxy: Configure Nginx or Apache to validate the
Hostheader and reject invalid values.
Long-Term Fix:
- Wait for an official patch from Backdrop CMS and apply it as soon as it is released.
- Implement a Content Security Policy (CSP) to restrict the domains that can be used in email links.
- Regularly audit application code for similar injection vulnerabilities.
Workaround:
- Disable password reset functionality temporarily if the risk is deemed too high.
- Use a third-party email service that validates links before sending.
Valters IT – DevSecOps & Cyber Threat Intelligence