Description
A component loading mechanism in openPDC and openHistorian will construct and run any specified type, which may be an invalid component to load. An attacker with an authenticated user account and the ability to place a file on the host filesystem can use this to run arbitrary constructor code, and this code runs with the privileges of the affected service account.
Published: 2026-10-09
Score: 7.7 High
EPSS: < 1% Very Low
KEV: No
Impact: Code Execution on service account
Action: Immediate Patch
AI Analysis

Impact

The vulnerability arises from a component loading mechanism that accepts externally controlled input to specify a type to instantiate. The mechanism will construct and run the specified type, even if it is an invalid component, allowing execution of arbitrary constructor code. Because the constructor runs with the privileges of the service account, a successful exploitation results in code execution with those privileges. This flaw implements an uncontrolled class instantiation weakness, mapped to CWE-470.

Affected Systems

Grid Protection Alliance products openPDC (including the Docker image) and openHistorian are affected. Versions before openPDC 2.9.477 and before openHistorian 2.8.580 contain the vulnerability; the fixes were released in those subsequent releases and incorporate additional verification and integrity checks for adapters.

Risk and Exploitability

The CVSS score of 7.7 indicates a high severity vulnerability. EPSS is not available, so the current estimation of exploitation probability is unknown. The vulnerability is not listed in the CISA KEV catalog, implying no publicly known exploited versions. The attack requires an authenticated user who can place a file on the host filesystem and cause the affected service to load a malicious component. The likely attack vector therefore involves local or network-based authentication and file write capabilities, with the attacker able to influence the component loader to instantiate attacker-specified code.

Generated by OpenCVE AI on October 9, 2026 at 15:51 UTC.

Remediation

Vendor Solution

Grid Protection Alliance has added additional verification and integrity checks of adapters in openPDC version 2.9.477 and later and openHistorian version 2.8.580 and later.


Vendor Workaround

Grid Protection Alliance does not recommend production use of published Docker images in any case. The fix for this vulnerability has not been published to the Docker image.


OpenCVE Recommended Actions

  • Upgrade openPDC to version 2.9.477 or later and openHistorian to version 2.8.580 or later, which include additional verification and integrity checks for adapters.
  • If an upgrade is not immediately possible, avoid using the Docker image in production environments and restrict file write access to the host filesystem for the service account to the smallest necessary set of directories.
  • Deploy network segmentation or firewall rules to limit unauthenticated users from interacting with the component loading endpoints, ensuring that only trusted administrative accounts can trigger the loading mechanism.

Generated by OpenCVE AI on October 9, 2026 at 15:51 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sun, 11 Oct 2026 12:45:00 +0000

Type Values Removed Values Added
First Time appeared Grid Protection Alliance
Grid Protection Alliance openhistorian
Grid Protection Alliance openpdc
Vendors & Products Grid Protection Alliance
Grid Protection Alliance openhistorian
Grid Protection Alliance openpdc

Fri, 09 Oct 2026 17:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Fri, 09 Oct 2026 14:15:00 +0000

Type Values Removed Values Added
Description A component loading mechanism in openPDC and openHistorian will construct and run any specified type, which may be an invalid component to load. An attacker with an authenticated user account and the ability to place a file on the host filesystem can use this to run arbitrary constructor code, and this code runs with the privileges of the affected service account.
Title Grid Protection Alliance openPDC and openHistorian Use of Externally-Controlled Input to Select Classes or Code
Weaknesses CWE-470
References
Metrics cvssV3_1

{'score': 8.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'}

cvssV4_0

{'score': 7.7, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N'}


Subscriptions

Grid Protection Alliance Openhistorian Openpdc
cve-icon MITRE

Status: PUBLISHED

Assigner: icscert

Published:

Updated: 2026-10-09T16:46:14.619Z

Reserved: 2026-10-05T16:54:01.635Z

Link: CVE-2026-104629

cve-icon Vulnrichment

Updated: 2026-10-09T16:16:16.034Z

cve-icon NVD

Status : Awaiting Analysis

Published: 2026-10-09T14:17:11.027

Modified: 2026-10-09T17:16:45.117

Link: CVE-2026-104629

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-11T12:26:52Z

Weaknesses
  • CWE-470

    Use of Externally-Controlled Input to Select Classes or Code ('Unsafe Reflection')