CVE-2025-3905 Overview
CVE-2025-3905 is a stored Cross-Site Scripting (XSS) vulnerability affecting Programmable Logic Controller (PLC) system variables. The flaw is classified under [CWE-79]: Improper Neutralization of Input During Web Page Generation. An authenticated attacker can inject unvalidated data into PLC system variables. When a victim views the affected web interface, the injected script executes in the victim's browser context. This allows the attacker to read or modify data rendered to the victim. The vulnerability was disclosed by Schneider Electric in security notice SEVD-2025-161-02.
Critical Impact
An authenticated attacker can inject persistent script payloads into PLC system variables, enabling data theft or manipulation within an operator's browser session on industrial control system interfaces.
Affected Products
- Schneider Electric PLC products referenced in advisory SEVD-2025-161-02
- PLC system variables exposed through web-based management interfaces
- Operator workstations rendering PLC variable content in browsers
Discovery Timeline
- 2025-06-10 - CVE-2025-3905 published to NVD by Schneider Electric
- 2026-06-17 - Last updated in NVD database
Technical Details for CVE-2025-3905
Vulnerability Analysis
The vulnerability resides in the handling of PLC system variables that are rendered within a web page context. The affected component fails to properly neutralize user-supplied input before writing it into HTML output. An authenticated user with write access to system variables can store crafted payloads containing HTML or JavaScript. When another user, typically an operator or engineer, opens the web interface that displays these variables, the browser interprets the injected content as executable script. The stored nature of this XSS increases risk because a single injection persists until manually removed.
Root Cause
The root cause is missing output encoding on PLC system variable values. Data written by authenticated users flows into web page generation without contextual escaping for HTML, attribute, or JavaScript contexts. The web interface trusts variable content as safe display data rather than treating it as untrusted user input.
Attack Vector
Exploitation requires network access to the PLC management interface and valid authentication credentials with permission to modify system variables. The attacker writes a crafted string containing script markup into a target variable. Exploitation completes when a legitimate user browses to a page that renders the variable. User interaction is required on the victim side. Successful execution grants the attacker the ability to read displayed data, perform actions within the victim's authenticated session, or pivot to further attacks against operational technology (OT) workflows.
No public proof-of-concept code is available. Refer to the Schneider Electric Security Notice SEVD-2025-161-02 for vendor-supplied technical detail.
Detection Methods for CVE-2025-3905
Indicators of Compromise
- PLC system variable values containing HTML tags such as <script>, <img>, <svg>, or onerror= attributes
- Unexpected outbound HTTP requests from operator workstations after opening PLC web interfaces
- Browser console errors or Content Security Policy violations logged when viewing PLC variable pages
Detection Strategies
- Audit PLC system variable content for characters and sequences associated with markup injection
- Review authentication logs on the PLC for variable write operations performed by non-engineering accounts
- Correlate PLC configuration changes with browser session activity on connected human-machine interfaces (HMIs)
Monitoring Recommendations
- Monitor engineering workstations for anomalous script execution or network beacons following PLC web interface access
- Log and alert on all write operations targeting PLC system variables, including source account and IP
- Track access to the PLC web management interface and flag connections from outside authorized engineering networks
How to Mitigate CVE-2025-3905
Immediate Actions Required
- Apply the remediation guidance published in Schneider Electric advisory SEVD-2025-161-02 for affected PLC firmware versions
- Restrict network access to PLC web management interfaces to authorized engineering workstations only
- Review and reduce the set of accounts permitted to modify PLC system variables
- Audit existing PLC system variable values and remove any content containing HTML or script markup
Patch Information
Schneider Electric published remediation and mitigation instructions in security notice SEVD-2025-161-02. Refer to the Schneider Electric Security Notice for the authoritative list of affected products, fixed versions, and upgrade procedures.
Workarounds
- Segment PLC networks from corporate and internet-facing zones using firewalls and industrial demilitarized zones (IDMZ)
- Enforce least privilege on PLC accounts so only trusted engineers hold write access to system variables
- Require multi-factor authentication and jump-host access for any interaction with PLC web interfaces
- Deploy browser-level protections such as Content Security Policy and script blocking on operator workstations that access PLC interfaces
# Example firewall rule restricting PLC web interface access to engineering subnet
iptables -A INPUT -p tcp --dport 443 -s 10.20.30.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j DROP
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

