Cloudanix VulnDB

CVE-2023-50218

High · 8.8

CVSS

8.8

EPSS

55.0%

Published

May 3, 2024

CISA due date

—

Cloudanix analysis

Next patch cycle SSVC: Attend

An attacker with a valid login could take control of an affected Ignition automation server and disrupt or manipulate connected operations.

Exploitation
Remote Authenticated
Attacker needs
Low Privilege
Complexity
Low
Impact
Remote Code Execution
Component
Application
Class
Deserialization
Remediation
Upgrade
Effort
Medium
Patch risk
Medium

What it actually does

CVE-2023-50218 is a deserialization of untrusted data vulnerability in Inductive Automation Ignition, specifically in the ModuleInvoke class. A remote attacker with valid low-privileged authentication can submit crafted serialized data that is not properly validated, causing the application to deserialize attacker-controlled objects. Successful exploitation can result in arbitrary code execution in the context of the Ignition service, reported as SYSTEM on affected Windows installations, giving the attacker full control over the application host and potentially connected operational technology integrations.

Why it matters to the business

Successful exploitation can allow an authenticated attacker to take over an Ignition server, disrupt industrial workflows, alter automation logic, access sensitive operational data, or use the server as a foothold into broader IT and OT networks. Because Ignition commonly integrates with PLCs, HMIs, historians, databases, and enterprise systems, compromise can have operational safety, production availability, and incident response consequences beyond the application itself. The CVSS score is high and EPSS is elevated, indicating meaningful exploitation likelihood even though it is not currently listed in CISA KEV and no public exploit maturity is noted in the supplied data.

How an attack unfolds

An attacker first obtains valid credentials for an affected Ignition installation, such as through credential theft, password spraying, reuse of exposed credentials, or compromise of a low-privileged account. The attacker then authenticates to the Ignition service and reaches functionality that invokes the vulnerable ModuleInvoke deserialization path. By sending a crafted request containing malicious serialized data, the attacker causes the server to deserialize attacker-controlled content without adequate validation. If a suitable gadget chain or execution path is available in the target environment, the payload executes arbitrary commands with the privileges of the Ignition service, which may be SYSTEM on Windows. The attacker can then deploy tooling, create persistence, access project resources and credentials, pivot to connected systems, or disrupt automation services.

How to fix it

Upgrade Inductive Automation Ignition to a vendor-fixed release that addresses CVE-2023-50218. The supplied input does not include exact fixed versions, so administrators should consult Inductive Automation’s official advisory and release notes for the applicable Ignition branch and module versions. Where immediate upgrade is not possible, restrict network access to Ignition management and gateway interfaces, require VPN or segmented administrative access, enforce strong multifactor authentication where supported, remove unnecessary user accounts and privileges, rotate potentially exposed credentials, and monitor for suspicious ModuleInvoke activity. Run Ignition services with the least privileges required rather than broad local administrator or SYSTEM-level rights where operationally feasible. In OT environments, coordinate patching through change-management and test procedures to avoid unplanned production impact.

How to confirm the fix worked

Confirm the deployed Ignition version and installed module versions against the vendor advisory to verify they are no longer affected. Validate that the gateway and management interfaces are not exposed to untrusted networks and that only authorized administrative sources can reach them. Review user roles to ensure low-privileged accounts cannot access unnecessary module invocation or administrative functions. After patching, perform authenticated vulnerability scanning or vendor-supported validation where available. Confirm that the service account privileges have been reduced where feasible and that logging captures authentication, gateway activity, module invocation errors, and process execution events on the host.

Typical attack path

  1. Identify an exposed or reachable Inductive Automation Ignition instance.
  2. Obtain valid credentials for the Ignition environment through phishing, credential reuse, brute force, insider access, or prior compromise.
  3. Authenticate to the affected Ignition installation with low-privileged access.
  4. Send a crafted ModuleInvoke request containing malicious serialized data.
  5. Trigger unsafe deserialization on the server.
  6. Execute attacker-controlled code in the Ignition service context, potentially SYSTEM on Windows.
  7. Establish persistence, access sensitive project or integration data, move laterally, or disrupt industrial operations.

How to detect it

To determine whether exploitation already occurred, review Ignition gateway, wrapper, application, and audit logs for unusual authenticated requests around module invocation, deserialization failures, Java exceptions, unexpected module behavior, or activity from unfamiliar users and source IPs. Correlate Ignition authentication events with host telemetry showing child processes spawned by the Ignition Java service, especially command shells, PowerShell, curl, certutil, bitsadmin, wscript, cscript, Python, or other scripting and download utilities. On Windows, examine Security, System, PowerShell, Sysmon, and service-control logs for new services, scheduled tasks, privilege changes, encoded commands, suspicious outbound connections, and files written by the Ignition service account. On Linux, review systemd, shell history, cron, auditd, process accounting, and web/application logs for commands executed under the Ignition service user. Also inspect Ignition project files, module directories, temporary directories, and startup scripts for unauthorized modifications. Because this is an authenticated RCE, suspicious valid-user behavior is especially important: logins from new geographies, unusual hours, newly created users, failed-then-successful login sequences, and low-privileged accounts performing administrative or module-related actions should be investigated.

  • ModuleInvoke
  • java.io.InvalidClassException
  • java.io.StreamCorruptedException
  • java.io.OptionalDataException
  • java.lang.ClassNotFoundException
  • java.lang.reflect.InvocationTargetException
  • ObjectInputStream
  • deserialization
  • wrapper.log
  • ignition
  • IgnitionGateway
  • powershell.exe
  • cmd.exe
  • certutil.exe
  • bitsadmin.exe
  • curl.exe
  • wscript.exe
  • cscript.exe
  • rundll32.exe
  • regsvr32.exe
  • schtasks.exe
  • sc.exe
  • /var/lib/ignition
  • /usr/local/bin/ignition
  • C:\Program Files\Inductive Automation\Ignition
  • C:\Program Files\Inductive Automation\Ignition\logs
  • C:\Program Files\Inductive Automation\Ignition\data\modules

What your security team should do

  • Prioritize patching or upgrading affected Inductive Automation Ignition servers because the vulnerability enables authenticated remote code execution with high confidentiality, integrity, and availability impact.
  • Inventory all Ignition gateways and modules, including systems in OT, lab, disaster recovery, and vendor-managed environments.
  • Restrict access to Ignition gateway and administrative interfaces to trusted management networks or VPN users only.
  • Audit all Ignition user accounts, remove stale accounts, enforce strong passwords, and enable multifactor authentication where supported.
  • Review logs for suspicious authenticated activity, unexpected ModuleInvoke errors, abnormal serialized payload handling, and unusual process creation by the Ignition service account.
  • Hunt for post-exploitation activity on Ignition hosts, especially command shells, script interpreters, remote access tools, new services, scheduled tasks, and outbound connections spawned from the Ignition service.
  • Rotate credentials stored in or used by Ignition if compromise is suspected, including database, historian, PLC, API, and enterprise integration credentials.
  • Apply least-privilege hardening to the Ignition service account and segment Ignition servers from unnecessary IT and OT network paths.

The record

Inductive Automation Ignition ModuleInvoke Deserialization of Untrusted Data Remote Code Execution Vulnerability. This vulnerability allows remote attackers to execute arbitrary code on affected installations of Inductive Automation Ignition. Authentication is required to exploit this vulnerability. The specific flaw exists within the ModuleInvoke class. The issue results from the lack of proper validation of user-supplied data, which can result in deserialization of untrusted data. An attacker can leverage this vulnerability to execute code in the context of SYSTEM. Was ZDI-CAN-21624.

Affected packages

Ecosystem Package Introduced Fixed

Related vulnerabilities