Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate with valid user account
-
DeliveryPlace malicious file on host filesystem
-
ExploitSpecify attacker-controlled component type
-
ExecutionService constructs and runs type
-
ImpactExecute arbitrary code as service account
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V15 - Secure Coding and Architecture Reflection safety, class allowlisting
|
| Exploitation Conditions | Exploitation requires two concrete prerequisites stated in the description: (1) an authenticated user account on the openPDC/openHistorian instance (matching CVSS PR:L), and (2) the ability to place a file on the host filesystem (matching CVSS AT:P). The vulnerable mechanism is the component-loading feature, which constructs and runs any specified type (CWE-470 unsafe reflection) without validating that the type is a legitimate component, so the attacker's constructor code executes with the service account's privileges. Limiting factors that reduce realistic risk: the attacker cannot be fully unauthenticated, must already have (or obtain) filesystem write access on the host, and the resulting code runs only at the privilege level of the affected service account rather than automatically as system/root. |
| Impact | This is a genuine but conditional risk rather than a drop-everything emergency. The input CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H) scores 7.7 (High) and the AT:P (attack requirements present) metric correctly captures the real-world precondition stated in the description: the attacker must already hold an authenticated account AND be able to place a file on the host filesystem. PR:L confirms authentication is required, so this is not a remote-unauthenticated RCE despite the network attack vector. No EPSS score, no CISA KEV listing, and no public POC were provided in the input, so exploitation probability signals are entirely absent; per precision rules this is 'no public exploit identified at time of analysis.' The high VC/VI/VA (full code execution as the service account via CWE-470 unsafe reflection) means impact is severe once the preconditions are met, but the dual requirement of an authenticated account plus filesystem write access materially reduces the realistic attacker population to insiders or already-partially-compromised environments. The network attack vector (AV:N) is somewhat in tension with the description's emphasis on local filesystem file placement - AV:N is defensible because the component-loading request itself can be triggered over the network by an authenticated user, but defenders should note the filesystem-write dependency, which behaves more like a local/adjacent precondition. Net: a real patch-soon priority for electric-sector ICS operators, not a wormable internet-facing crisis. |
| Exploit ScenarioDerived | An authenticated low-privilege user of an openPDC or openHistorian deployment places a malicious assembly or file on the host filesystem, then uses the component-loading mechanism to specify that arbitrary type for instantiation. When the service constructs the specified type, the attacker's constructor code runs with the privileges of the affected service account, yielding code execution on the ICS host. No public exploit code was identified in the provided data. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 09, 2026
Arbitrary constructor code execution in Grid Protection Alliance openPDC and openHistorian is reachable by an authenticated user who is also able to place a file on the host filesystem, because the component-loading routine instantiates any type name it is given without validating that the type is a legitimate component (CWE-470, unsafe reflection). Successful abuse executes attacker-supplied constructor code with the privileges of the affected service account, giving high confidentiality, integrity and availability impact on the affected instance. Exploitation is conditional rather than trivial - CVSS 4.0 scores it 7.7 with attack requirements present (AT:P) and low privileges required (PR:L), an independent assessment agrees on AV:N/AC:H/PR:L with high C/I/A impact, and no public exploit was identified at time of analysis (no CISA KEV listing, no PoC reported).
RemediationAI
No vendor-released patch version is confirmed by the available data; consult the CISA ICS advisory ICSA-26-281-02 (https://www.cisa.gov/news-events/ics-advisories/icsa-26-281-02) and its CSAF record for the vendor's current fixed build and upgrade instructions, and apply the vendor-supplied update as soon as it is published. Where an upgrade cannot be performed immediately, address the two exploitation prerequisites directly: eliminate the filesystem-placement requirement by removing write access to application, plugin, and bin directories from any non-administrative or application-level account (tightening ACLs on the service installation path has the side effect of blocking legitimate operator file drops and should be coordinated with the operations team); and restrict who holds an account on the openPDC/openHistorian instance, enforcing strong unique credentials and disabling dormant or shared accounts, since a valid session is required before the loader can be invoked. Because the payload executes with the service account's rights, reconfigure the service to run under a dedicated least-privilege account with no local administrative membership, which caps the damage but will break any legitimate functionality that depends on elevated access. Additionally, restrict network exposure of the instance's management and configuration interfaces to trusted management subnets via firewall rules or reverse-proxy ACLs (removing remote reachability of the loader endpoint trades away remote administration convenience), and monitor host and application logs for unexpected assembly or type-loading events, new DLLs appearing in application directories, and component-loading calls originating from accounts that do not normally configure plugins - the same telemetry doubles as detections if the compensating controls are bypassed. Do not treat PAT (Purdue) perimeter segmentation alone as a fix; it reduces reachability but does not remediate the unsafe-reflection flaw itself.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 3 packages in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The root cause is CWE-470 (use of externally-controlled input to select classes or code, i.e. 'unsafe reflection'). openPDC and openHistorian are .NET-based phasor data concentrator and historian applications used in electric utility / ICS environments for synchrophasor and time-series telemetry. Their component-loading mechanism accepts a caller-supplied type identifier, constructs that type at runtime, and runs its constructor code; because there is no allowlist or type-validation step, any type resolvable by the runtime - not just sanctioned plugin components - can be selected and instantiated. The attacker therefore does not need a memory-safety bug or a malformed packet: they need (1) a valid account on the instance and (2) the ability to land a file on the host filesystem so that the assembly/type they specify is resolvable. The CISA ICS advisory (ICSA-26-281-02) and its accompanying CSAF document attribute the issue to Grid Protection Alliance; CPE data identifies the affected platforms as openPDC, the openPDC Docker image, and openHistorian across all currently catalogued versions. Impact is bounded by the privilege of the service account under which the vulnerable service runs, so deployments running the service as a low-privilege account limit the blast radius, while those running it with elevated rights expand it.
Know when Openpdc gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
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
Authenticated user triggers it over the network (AV:N, PR:L), but the required filesystem file-placement precondition folds into AC:H since 3.1 lacks an attack-requirements metric; full code execution gives C/I/A:H.
Primary rating from Vendor (icscert).
CVSS VectorVendor: icscert
Lifecycle Timeline
3DescriptionCVE.org
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.
Executive ViewAI
Grid Protection Alliance openPDC and openHistorian contain a high-severity arbitrary code execution flaw that requires an authenticated user with the ability to write a file to the host, allowing code to run as the service account and potentially causing major confidentiality, integrity, and availability impact on the affected instance. These platforms are commonly used in electric utility and critical-infrastructure telemetry, so a compromised deployment could disrupt operational visibility or undermine trust in grid data, and no vendor-released patch is currently available. Leadership should prioritize inventory, least-privilege enforcement, and monitoring for these systems; no public exploit was identified at time of analysis, but the absence of a patch raises the urgency of interim controls.
No vendor-released patch identified at time of analysis. Interim mitigations include restricting filesystem write access to trusted administrators, enforcing least privilege for the openPDC/openHistorian service account, enabling application allowlisting and file-integrity monitoring, disabling unnecessary file-upload or component-loading paths, segmenting affected hosts from general IT/OT networks, and monitoring authentication and component-loading logs for suspicious type names.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
Insecure deserialization in the service console interface of openPDC and openHistorian lets an attacker submit a crafted
Unauthenticated access to the openPDC internal data publisher lets any host that can reach the service connect and subsc
Unauthenticated access to the STTP-based data publisher in Grid Protection Alliance openPDC, the openPDC Docker image, a
An authenticated low-privilege user of openPDC can abuse the Modbus connection feature to make outbound connections to a
EUVD-2026-95783
GHSA-68jv-q5j2-rgqm
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB