CVE-2026-2400
Executive Summary
CVE-2026-2400 is a CRLF Injection vulnerability (CWE-93) in Schneider Electric products. An authenticated Web Admin user can manipulate the POST /setPCBEDesc request payload to inject CRLF sequences, leading to application user credentials being reset. This attack requires prior authentication as a Web Admin, but can result in unauthorized credential changes for other application users. The vulnerability has been patched by the vendor.
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
CVSS Breakdown & Threat Level
- CVSS Score: 0.0 (No CVSS vector provided; likely pending or unassigned)
- Attack Vector: Network (requires Web Admin access)
- Attack Complexity: Low
- Privileges Required: High (Web Admin)
- User Interaction: None
- Scope: Changed (credential reset affects other users)
- Confidentiality Impact: None
- Integrity Impact: High (credentials can be reset)
- Availability Impact: None
- Threat Level: Medium (requires admin privileges but can compromise other accounts)
Deep Dive & Mechanics
The vulnerability resides in the POST /setPCBEDesc endpoint of Schneider Electric products. The application fails to properly neutralize CRLF (Carriage Return Line Feed) sequences in the request payload. An attacker with Web Admin privileges can inject CRLF characters to manipulate HTTP response headers or application logic, ultimately causing the application to reset credentials for other users.
Attack Flow:
- Attacker authenticates as a Web Admin.
- Attacker crafts a malicious
POST /setPCBEDescrequest containing CRLF sequences. - The injected CRLF sequences are not sanitized, allowing header injection or response splitting.
- This manipulation triggers a credential reset for targeted application users.
- Attacker can then use the reset credentials to gain unauthorized access.
Vulnerable vs. Patched Code
Vulnerable Code (Conceptual):
@app.route('/setPCBEDesc', methods=['POST'])
def set_pcbe_desc():
desc = request.form.get('description')
# No sanitization of CRLF sequences
response = make_response(f"Description updated: {desc}")
return response
Patched Code (Conceptual):
import re
@app.route('/setPCBEDesc', methods=['POST'])
def set_pcbe_desc():
desc = request.form.get('description')
# Sanitize CRLF sequences
desc = re.sub(r'[\r\n]', '', desc)
response = make_response(f"Description updated: {desc}")
return response
Exploitation & Lab Setup
Red Team
Prerequisites:
- Web Admin credentials for the target Schneider Electric device.
- Network access to the device's web interface.
Exploitation Steps:
- Authenticate as Web Admin and obtain a valid session cookie.
- Craft a malicious POST request to
/setPCBEDescwith CRLF injection in the payload. - Example using
curl:curl -X POST https://target/setPCBEDesc \ -H "Cookie: session=admin_session" \ -d "description=test%0d%0aX-Injected:%20true%0d%0a%0d%0aUserCredentialReset:true" - The injected CRLF sequences cause the application to reset credentials for other users.
- Use the reset credentials to access other accounts.
Note: No public exploit code is available for this CVE.
Blue Team
Detection:
- Monitor for unusual POST requests to
/setPCBEDesccontaining CRLF characters (%0d%0a,\r\n). - Alert on multiple credential reset events within a short timeframe.
- Review Web Admin session logs for anomalous activity.
Mitigation:
- Apply the vendor patch immediately.
- Restrict Web Admin access to trusted IPs only.
- Implement input validation to strip CRLF sequences from all user inputs.
- Enable logging and monitoring for credential reset operations.
Indicators of Compromise (IOCs)
- Network:
- POST requests to
/setPCBEDesccontaining%0d%0aor\r\nin the payload. - HTTP responses with unexpected headers (e.g.,
X-Injected: true).
- POST requests to
- Logs:
- Multiple
UserCredentialResetevents in application logs. - Web Admin sessions performing credential resets outside normal hours.
- Multiple
- System:
- Unauthorized access to user accounts previously protected by strong passwords.
Detection Engineering
YARA Rule
rule CVE_2026_2400_CRLF_Injection {
meta:
description = "Detects CRLF injection attempts in POST /setPCBEDesc requests"
author = "Valters IT"
date = "2026-01-01"
cve = "CVE-2026-2400"
strings:
$crlf1 = "%0d%0a"
$crlf2 = "\\r\\n"
$crlf3 = "\\x0d\\x0a"
$endpoint = "/setPCBEDesc"
condition:
$endpoint and any of ($crlf*)
}
Sigma Rule
title: CRLF Injection in POST /setPCBEDesc
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects CRLF injection attempts targeting Schneider Electric devices
author: Valters IT
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'POST'
cs-uri-stem: '/setPCBEDesc'
cs-uri-query|contains:
- '%0d%0a'
- '\\r\\n'
- '\\x0d\\x0a'
condition: selection
falsepositives:
- Legitimate use of CRLF characters in description fields (rare)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2026-2400 CRLF Injection in POST /setPCBEDesc"; flow:to_server; http.method; content:"POST"; http.uri; content:"/setPCBEDesc"; http.client_body; content:"%0d%0a"; nocase; sid:1000001; rev:1;)
Remediation & Mitigation
- Apply Vendor Patch: Immediately update to the patched version provided by Schneider Electric.
- Input Validation: Implement strict input validation to strip or reject CRLF sequences (
\r\n,%0d%0a) from all user inputs. - Access Control: Restrict Web Admin access to trusted IPs and enforce multi-factor authentication.
- Monitoring: Enable logging for all credential reset operations and monitor for anomalies.
- Incident Response: If exploitation is suspected, reset all user credentials and audit Web Admin accounts.
Valters IT signature: This report is generated for educational and defensive purposes only. Unauthorized exploitation of CVE-2026-2400 is illegal.
{/* [Security Hash: ABA80D9D53B1FA9072C5156F] */}