/

CVE-2026-100730

Severity:

CRITICAL RISK

(9.8)

Unsafe Deserialization (CWE-502) in openPDC Console

CVE-2026-100730

Awaiting Analysis

Vulnerability type

Category:

Unsafe Deserialization

CWE:

CWE-502

Impact:

Remote Code Execution

Severity:

CRITICAL RISK

(9.8)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

A service console in openPDC and openHistorian deserializes data structures supplied by clients, allowing an attacker to cause arbitrary object graphs to be processed. Depending on authentication settings, an attacker may need valid authentication or may reach the function without authentication, potentially enabling remote code execution as the affected service account.

A service console in openPDC and openHistorian deserializes data structures supplied by clients, allowing an attacker to cause arbitrary object graphs to be processed. Depending on authentication settings, an attacker may need valid authentication or may reach the function without authentication, potentially enabling remote code execution as the affected service account.

Affected context

The vulnerability occurs in the service console interface of openPDC and openHistorian when client-supplied data is deserialized without sufficiently restricting the types or object structures that can be instantiated. Systems using Windows Authentication may limit access to authenticated users, while deployments without that control may expose the function to unauthenticated network clients.

The vulnerability occurs in the service console interface of openPDC and openHistorian when client-supplied data is deserialized without sufficiently restricting the types or object structures that can be instantiated. Systems using Windows Authentication may limit access to authenticated users, while deployments without that control may expose the function to unauthenticated network clients.

Exploit preconditions

  • Attack surface: Network-accessible service console interface
  • Required access: Valid authentication where Windows Authentication is enabled; potentially no authentication where it is disabled
  • Trigger point: Processing of a client-supplied serialized data structure
  • Why exploitation is possible: The service accepts and deserializes an arbitrary object graph without adequately constraining permitted object types
  • Attack surface: Network-accessible service console interface
  • Required access: Valid authentication where Windows Authentication is enabled; potentially no authentication where it is disabled
  • Trigger point: Processing of a client-supplied serialized data structure
  • Why exploitation is possible: The service accepts and deserializes an arbitrary object graph without adequately constraining permitted object types

Why this happens

The underlying bug is unsafe deserialization, mapped to CWE-502. A client-controlled serialized structure is treated as a valid object graph and reconstructed by the service without a sufficiently restrictive type allowlist or equivalent safety boundary. If the deserialization mechanism permits dangerous object construction, specially crafted input may cause code to run during or after object reconstruction.

The underlying bug is unsafe deserialization, mapped to CWE-502. A client-controlled serialized structure is treated as a valid object graph and reconstructed by the service without a sufficiently restrictive type allowlist or equivalent safety boundary. If the deserialization mechanism permits dangerous object construction, specially crafted input may cause code to run during or after object reconstruction.

Potential impact

  • An attacker may execute arbitrary code on the host
  • The affected service account could be compromised
  • The attacker could alter, delete, or disclose operational data
  • The compromise could enable lateral movement or disruption of monitoring services
  • An attacker may execute arbitrary code on the host
  • The affected service account could be compromised
  • The attacker could alter, delete, or disclose operational data
  • The compromise could enable lateral movement or disruption of monitoring services

General mitigation guidance

Mitigation generally focuses on eliminating unsafe deserialization of

client-controlled data and reducing the privileges available to the service.

Common defensive patterns include:

  • Replacing general-purpose deserialization with safe, data-only formats and parsers
  • Enforcing strict schemas and type allowlists before accepting structured input
  • Treating all network-supplied serialized data as untrusted
  • Restricting console exposure to trusted networks and requiring strong authentication
  • Running the affected service with least privilege and isolated service identities
  • Applying network segmentation and minimizing the service account's access to host and operational resources

Mitigation generally focuses on eliminating unsafe deserialization of

client-controlled data and reducing the privileges available to the service.

Common defensive patterns include:

  • Replacing general-purpose deserialization with safe, data-only formats and parsers
  • Enforcing strict schemas and type allowlists before accepting structured input
  • Treating all network-supplied serialized data as untrusted
  • Restricting console exposure to trusted networks and requiring strong authentication
  • Running the affected service with least privilege and isolated service identities
  • Applying network segmentation and minimizing the service account's access to host and operational resources

How teams detect issues like this

Organizations can look for:

  • Static-analysis findings involving general-purpose deserialization APIs
  • Code paths that reconstruct types or object graphs from network input
  • Review signals showing missing type allowlists, schema validation, or authentication checks
  • Network monitoring for unexpected connections to service console ports
  • Policy enforcement requiring authenticated, segmented access to administrative interfaces
  • Automated code-review tools that flag unsafe deserialization patterns and untrusted data flows

Organizations can look for:

  • Static-analysis findings involving general-purpose deserialization APIs
  • Code paths that reconstruct types or object graphs from network input
  • Review signals showing missing type allowlists, schema validation, or authentication checks
  • Network monitoring for unexpected connections to service console ports
  • Policy enforcement requiring authenticated, segmented access to administrative interfaces
  • Automated code-review tools that flag unsafe deserialization patterns and untrusted data flows

Sources

SourceLink
github.comgithub.com/cisagov/CSAF/blob/develop/csaf_files/OT/white/2026/icsa-26-281-02.json
cisa.govcisa.gov/news-events/ics-advisories/icsa-26-281-02

Frequently asked

questions

Yes. The service console is network-accessible, and exploitation may be possible remotely when an attacker can reach the interface. Authentication requirements depend on whether Windows Authentication is enabled.

No. Deployments using Windows Authentication generally require the attacker to authenticate first. Deployments without that control may expose the vulnerable function to unauthenticated network attackers.

Avoid deserializing client-controlled object graphs. Prefer data-only formats, strict schemas, and explicit type allowlists, while ensuring that authentication and authorization occur before processing sensitive requests.

Treat serialized network input as untrusted, enforce secure parser policies during development, expose administrative interfaces only through segmented networks, and run services with the minimum privileges they require.

Yes. The service console is network-accessible, and exploitation may be possible remotely when an attacker can reach the interface. Authentication requirements depend on whether Windows Authentication is enabled.

No. Deployments using Windows Authentication generally require the attacker to authenticate first. Deployments without that control may expose the vulnerable function to unauthenticated network attackers.

Avoid deserializing client-controlled object graphs. Prefer data-only formats, strict schemas, and explicit type allowlists, while ensuring that authentication and authorization occur before processing sensitive requests.

Treat serialized network input as untrusted, enforce secure parser policies during development, expose administrative interfaces only through segmented networks, and run services with the minimum privileges they require.

Find out what's already
exploitable in your codebase.