CVE-2023-38121
Official description Straight from the sourceThe vendor's or NVD's own wording, published unedited. Authoritative, but often terse — it says what broke, rarely what to do.
NVD · uneditedInductive Automation Ignition OPC UA Quick Client Cross-Site Scripting Remote Code Execution Vulnerability. This vulnerability allows remote attackers to execute arbitrary code on affected installations of Inductive Automation Ignition. User interaction is required to exploit this vulnerability in that the target must visit a malicious page or open a malicious file. The specific flaw exists within the handling of the id parameter provided to the Inductive Automation Ignition web interface. The issue results from the lack of proper validation of user-supplied data, which can lead to the injection of an arbitrary script. An attacker can leverage this vulnerability to execute arbitrary code in the context of SYSTEM. Was ZDI-CAN-20355.
Technical summary Written by usOur analysis, written from the advisory, the CVSS vector and the affected-version data. It adds context the advisory leaves out, and never invents facts that are not in the source.
dbcve analysis · moderate confidenceThis is a stored Cross-Site Scripting (XSS) vulnerability in the Inductive Automation Ignition OPC UA Quick Client web interface. The flaw exists in the handling of the 'id' parameter, which lacks proper input validation, allowing injection of arbitrary script. While classified as an XSS vulnerability, the description indicates it can lead to Remote Code Execution in the SYSTEM context, likely through session hijacking or chaining with other vulnerabilities.
Verify against the referenced sources before acting — the references below are authoritative for this CVE, this summary is not.
Affected products & versions What the vendor confirmedThe version ranges the vendor confirmed as vulnerable. If your version sits inside a range here, treat yourself as exposed until you have upgraded.
NVD · CPE data< 8.1.26CVSS breakdown How the score is builtThe industry scoring standard. It rates how the flaw is reached, what it takes to exploit, and what an attacker gains — the score is derived from those, not the other way round.
From the vector- Attack vector
- Network
- Complexity
- Low
- Privileges
- Low
- User interaction
- Required
- Scope
- Changed
- Confidentiality
- High
- Integrity
- High
- Availability
- High
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H
Am I affected? How to checkSteps we derive from the advisory and the affected-version data, so you can decide whether this CVE reaches your setup. They are a guide, not a scan — your own configuration is the authority.
dbcve checksWork through these to decide whether this CVE applies to you.
-
Identify the installed Ignition versionCheck the Ignition installation directory for version information, or access the Gateway Status page which displays the version number. On the main gateway page, locate the version/build number displayed in the system information section.Affected if The installed version is lower than 8.1.26 (for example, 8.1.25, 8.1.24, etc.)
-
Verify the OPC UA Quick Client module is installed and enabledAccess the Ignition Gateway Control Menu (left sidebar in the gateway web interface), navigate to Configure > Modules, and review the list of installed modules to confirm 'OPC UA Quick Client' is present and loaded.Affected if The OPC UA Quick Client module is installed and enabled on the gateway
-
Confirm web interface accessibility for the Quick ClientAttempt to access the Quick Client web interface endpoint, typically found at /main/system/opcua/quickclient or similar path under the Ignition Gateway web root. Verify the page loads and accepts input.Affected if The OPC UA Quick Client web interface is accessible without authentication restrictions or the page loads successfully
-
Inspect gateway logs for suspicious 'id' parameter activityAccess the Ignition Gateway logs through the web interface (Configure > Logs) or locate the wrapper.log file in the installation directory. Search for entries containing the 'id' parameter or patterns indicating script injection attempts.Affected if Logs contain unusual 'id' parameter values with script tags, encoded characters, or unexpected JavaScript execution patterns
You are affected if your Ignition installation is version 8.1.25 or earlier, the OPC UA Quick Client module is enabled, and the web interface is accessible, as this combination allows the vulnerable 'id' parameter to be exploited for stored XSS.
Generated from the published advisory. Verify against your own configuration.
Remediation Closing itWhat it takes to close this. Where a vendor fix exists we point at it; where none exists we say so plainly, and can build one. Effort estimates are scoped from the advisory, not from your codebase.
dbcve · scoped8.1.26
Implement strict input validation and output encoding for the 'id' parameter, and apply vendor-supplied patches. Given the critical CVSS score and industrial control system environment, consider network segmentation and minimizing web interface exposure while deploying the fix.
Ignition 8.1.26 or later
- 1. Back up the current Ignition installation, Gateway backup, and all project files
- 2. Stop the Ignition Gateway service
- 3. Download Ignition version 8.1.26 or later from the official Inductive Automation download page (inductiveautomation.com)
- 4. Run the installer and follow the upgrade prompts, or apply the update via the Gateway's built-in updater if available
- 5. Restart the Ignition Gateway service
- 6. Verify the upgrade was successful by checking the Gateway's version number in the status page
Generated from the published advisory — verify against the referenced sources before acting.
- Consultation4.0 h
- Implementation8.0 h
- Testing6.0 h
- Review / QA4.0 h
An estimate, not a bill — we confirm scope with you before any work starts. Need it this week? Rush from $6,176.
Scan for this in your stack
Free · runs locallyCheck whether your project pulls in CVE-2023-38121 — or any other known-vulnerable package — straight from your lock files. Free and open source; it runs locally and uploads nothing.
References Go to the primary sourcePrimary sources — vendor advisories, patches and trackers. Where our summary and a reference disagree, the reference wins.
Primary sourcesPractitioner notes
ContributedPeer-ranked notes from engineers who’ve handled CVE-2023-38121 in production — separate from our analysis above.
The advisory tells you what broke. It rarely tells you what actually worked. If you’ve dealt with this one, that detail is what the next engineer is searching for.
- The version that genuinely resolved it — not the one the vendor claimed
- A config change or rule that shut the vector down
- A gotcha in the upgrade path that cost you an afternoon
No notes yet
Be the first to add a field note for this CVE — a mitigation you’ve verified, a version caveat, or a link to a working fix. Sign in above to contribute.
A place for practitioners to share what actually worked: a mitigation you’ve tested, a configuration change, a version- or environment-specific caveat, or a link to a verified patch. The most useful notes rise to the top as peers upvote them, so the signal stays high.
- Verified mitigations, workarounds, and config changes
- Version or environment caveats, and links to real fixes
- No weaponised exploit code, or anything meant to cause harm
- No spam, self-promotion, credentials, or personal data