CVE-2023-45796: Stored XSS in Pilz PASvisu & PMI Industrial Software – Remediation Guide
A stored cross-site scripting (XSS) flaw exists in Pilz PASvisu and PMI industrial control software that allows a low-privileged attacker without authentication to inject malicious code into the system. Once stored, this code executes when other users access affected data, enabling manipulation of process data and disruption of operations. The vulnerability requires low complexity to exploit and carries significant operational risk in manufacturing and automation environments.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 8.1 HIGH · CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H
- Weaknesses (CWE)
- CWE-79
- Affected products
- 0 configuration(s)
- Published / Modified
- 2026-06-22 / 2026-06-22
NVD description (verbatim)
A stored cross-site scripting vulnerability in the Runtime component of Pilz PASvisu before 1.14.1 and PMI v8xx up to and including 2.0.33992 allows a low-privileged remote unauthenticated attacker to manipulate process data with potential impact on integrity and/or availability.
1 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
CVE-2023-45796 is a stored XSS vulnerability (CWE-79) in the Runtime component of Pilz PASvisu versions before 1.14.1 and PMI v8xx series up to version 2.0.33992. The flaw permits a low-privileged remote attacker to inject and persist malicious scripts that execute in the context of other users' sessions. The attack vector is network-based with no user interaction required from the victim, though the attacker must possess valid (low-level) credentials. The vulnerability impacts data integrity and availability, scoring 8.1 under CVSS v3.1 (HIGH severity).
Business impact
In industrial settings, this vulnerability creates a direct path to process manipulation without administrative access. An attacker with basic user credentials can corrupt or falsify manufacturing data, interfere with control logic execution, or trigger unintended state changes that affect production output, quality, or safety. Unlike remote code execution, stored XSS in industrial systems often goes undetected longer because the malicious activity appears to originate from legitimate system users. The integrity and availability impacts make this a critical concern for facilities relying on PASvisu or PMI for process oversight.
Affected systems
Pilz PASvisu versions prior to 1.14.1 are vulnerable. Pilz PMI v8xx series through version 2.0.33992 is affected. Both products are widely used in industrial automation, robotics, and safety systems. Organizations should inventory deployments and determine version status immediately. Verify specific build or patch levels against Pilz vendor advisories.
Exploitability
Exploitability is straightforward: the attack requires only network access and valid low-privilege credentials (such as a read-only operator account). No social engineering, client-side manipulation, or zero-click techniques are necessary. The attacker can store the payload once and compromise all subsequent users who interact with affected data. This low barrier to exploitation, combined with the attack's stealth characteristics in industrial environments, elevates practical risk despite the requirement for authenticated access.
Remediation
Upgrade Pilz PASvisu to version 1.14.1 or later. Update PMI v8xx to a patched version beyond 2.0.33992. Verify the specific patch version and build number in the vendor advisory before deployment. Organizations unable to patch immediately should implement compensating controls: restrict low-privilege user account creation, enforce network segmentation to limit Runtime component access, monitor for unusual data modifications, and disable unused accounts.
Patch guidance
Obtain and deploy the latest PASvisu and PMI releases from Pilz. Verify patch versions match those documented in official vendor security advisories before installation. Test patches in a non-production environment that mirrors your operational setup, particularly if PMI is integrated with critical control logic. Coordinate patching with scheduled maintenance windows to minimize production disruption. Validate that stored data integrity is maintained post-patch.
Detection guidance
Monitor Runtime component logs for unexpected script tags or encoded payloads in process data fields and configuration parameters. Look for suspicious stored values that contain HTML, JavaScript, or encoded content in normally alphanumeric fields. Correlate data modification logs with user session records, flagging cases where low-privilege accounts trigger unusual updates. Deploy Web Application Firewalls (WAFs) if the Runtime component exposes web interfaces. Regular data integrity checks and anomaly detection on process parameters can surface injected content before it executes.
Why prioritize this
This vulnerability merits urgent attention because it bridges the gap between low-privileged access and process manipulation in operational technology. In OT environments, data integrity is often treated as equivalent to availability and safety—tampering can have cascading effects. The low attack complexity, lack of user interaction requirement, and high integrity/availability impact combine to create substantial operational risk. The fact that it is not yet in CISA's KEV catalog does not diminish the threat; it reflects the specialized nature of industrial systems. Organizations running Pilz products should treat this as a near-term priority.
Risk score, explained
The CVSS 8.1 HIGH score reflects the combination of network accessibility, low attack complexity, the requirement for low-privilege credentials (versus none), and the high impact on integrity and availability. The absence of confidentiality impact caps the score below CRITICAL, but the ability to manipulate process data without administrative rights makes this a significant operational security issue in industrial environments. The score appropriately signals that this is not a theoretical concern but a practical exploitation pathway.
Frequently asked questions
Can this vulnerability be exploited without any credentials?
No. The attacker must possess valid low-privilege credentials to inject the payload. This typically means a standard operator or read-level account. The 'remote unauthenticated' phrasing in some descriptions refers to the attacker not needing to be authenticated as an administrator; low-level authentication is still required. This narrows the attack surface but does not eliminate it, since operator accounts are often shared or easier to obtain than admin accounts.
Will patching cause downtime or data loss?
Patching should be non-destructive if performed according to vendor guidance. However, test thoroughly in a staging environment first. Pilz advisories may specify pre-patch backups or specific deployment sequences, particularly if PMI is tightly integrated with running control logic. Coordinate patching during scheduled maintenance to avoid surprise operational impact.
Can a WAF or network segmentation eliminate this risk if we cannot patch immediately?
These are valuable interim controls but not substitutes for patching. Restricting network access to the Runtime component and limiting low-privilege account creation will reduce exploitation opportunities. However, they do not address the underlying flaw. Stored XSS in industrial systems can also be triggered by internal users, making segmentation alone insufficient. Patching should remain the primary remediation path.
How does this differ from XSS in web applications?
In web applications, stored XSS typically affects end-user confidentiality. In industrial systems like PASvisu and PMI, the impact is integrity and availability of process data and control logic. A malicious script can alter sensor readings, change setpoints, or trigger unintended actuations, with consequences for product quality, safety, and uptime. This context amplifies the severity.
This analysis is provided for informational purposes to support cybersecurity decision-making. SEC.co does not provide vendor support, warranty, or legal advice. Patch versions, affected product editions, and vendor-specific deployment procedures must be verified against official Pilz security advisories and technical documentation. Testing in non-production environments before patch deployment is mandatory. For specific technical questions about your deployment, contact Pilz support directly. Any regulatory, compliance, or safety impacts should be assessed in consultation with your organization's engineering and compliance teams. Source: NVD (public-domain), retrieved 2026-07-28. Analysis generated by SEC.co (claude-haiku-4-5).
Weaknesses (CWE)
Related vulnerabilities
- CVE-2016-20066HIGHWordPress CP Polls 1.0.8 Persistent XSS Vulnerability
- CVE-2016-20084HIGHWordPress Appointment-Booking-Calendar Unauthenticated XSS and Privilege Escalation
- CVE-2023-33999HIGHDOM-Based XSS in WP Mail Log Plugin – Analysis & Remediation
- CVE-2023-45795HIGHXSS in Pilz PASvisu Builder Component – Patch Guidance
- CVE-2023-54351HIGHStored XSS in WordPress Sonaar Music Plugin 4.7 – Patch & Detection Guide
- CVE-2025-11262HIGHLink Whisper Free Stored XSS Vulnerability – Analysis & Patch Guidance
- CVE-2025-14773HIGHABB T-MAC Plus XSS Vulnerability – HIGH Risk Assessment
- CVE-2025-15654HIGHFox-themes Prague Reflected XSS Vulnerability – CVSS 7.1 (HIGH)