CVE-2026-104629 PUBLISHED

Grid Protection Alliance openPDC and openHistorian Use of Externally-Controlled Input to Select Classes or Code

Assigner: icscert
Reserved: 05.10.2026 Published: 09.10.2026 Updated: 09.10.2026

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.

Metrics

CVSS 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
CVSS Score: 7.7

Product Status

Vendor Grid Protection Alliance
Product openPDC
Versions Default: unaffected
  • affected from 0 to 2.9.477 (excl.)
  • affected from 0 to 2.9.482 (excl.)
  • Version 2.9.482 is unaffected
Vendor Grid Protection Alliance
Product openPDC (Docker image)
Versions Default: unaffected
  • affected from 0 to 2.9.477 (excl.)
  • affected from 0 to 2.9.482 (excl.)
Vendor Grid Protection Alliance
Product openHistorian
Versions Default: unaffected
  • affected from 0 to 2.8.580 (excl.)
  • affected from 0 to 2.8.585 (excl.)
  • Version 2.8.585 is unaffected

Workarounds

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.

Solutions

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.

Credits

  • Shubham Raj (Cipher) of Causal Security reported this vulnerability to CISA. finder

References

Problem Types

  • CWE-470 CWE