Grid Protection Alliance openPDC and openHistorian Use of Externally-Controlled Input to Select Classes or Code
Summary
| CVE | CVE-2026-104629 |
|---|---|
| State | PUBLISHED |
| Assigner | icscert |
| Source Priority | CVE Program / NVD first with legacy fallback |
| Published | 2026-10-09 14:17:11 UTC |
| Updated | 2026-10-09 17:16:45 UTC |
| 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. |
Risk And Classification
Primary CVSS: v4.0 7.7 HIGH from [email protected]
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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
EPSS: 0.003370000 probability, percentile 0.251220000 (date 2026-10-10)
Problem Types: CWE-470 | CWE-470 CWE-470
| Version | Source | Type | Score | Severity | Vector |
|---|---|---|---|---|---|
| 4.0 | [email protected] | Secondary | 7.7 | HIGH | 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/E:X/C... |
| 4.0 | CNA | CVSS | 7.7 | HIGH | 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 |
| 3.1 | [email protected] | Secondary | 8.8 | HIGH | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| 3.1 | CNA | CVSS | 8.8 | HIGH | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
CVSS v4.0 Breakdown
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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
CVSS v3.1 Breakdown
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Vendor Declared Affected Products
| Source | Vendor | Product | Version | Platforms |
|---|---|---|---|---|
| CNA | Grid Protection Alliance | OpenPDC | affected 2.9.477 custom | Not specified |
| CNA | Grid Protection Alliance | OpenPDC | affected 2.9.482 custom | Not specified |
| CNA | Grid Protection Alliance | OpenPDC | unaffected 2.9.482 | Not specified |
| CNA | Grid Protection Alliance | OpenPDC Docker Image | affected 2.9.477 custom | Not specified |
| CNA | Grid Protection Alliance | OpenPDC Docker Image | affected 2.9.482 custom | Not specified |
| CNA | Grid Protection Alliance | OpenHistorian | affected 2.8.580 custom | Not specified |
| CNA | Grid Protection Alliance | OpenHistorian | affected 2.8.585 custom | Not specified |
| CNA | Grid Protection Alliance | OpenHistorian | unaffected 2.8.585 | Not specified |
References
| Reference | Source | Link | Tags |
|---|---|---|---|
| github.com/cisagov/CSAF/blob/develop/csaf_files/OT/white/2026/icsa-26-28... | [email protected] | github.com | |
| www.cisa.gov/news-events/ics-advisories/icsa-26-281-02 | [email protected] | www.cisa.gov | |
| CVE Program record | CVE.ORG | www.cve.org | canonical |
| NVD vulnerability detail | NVD | nvd.nist.gov | canonical, analysis |
Vendor Comments And Credit
Discovery Credit
CNA: Shubham Raj (Cipher) of Causal Security reported this vulnerability to CISA. (en)
Additional Advisory Data
Solutions
CNA: 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.
Workarounds
CNA: 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.