OpenPLC Runtime v3 contains an input validation flaw in the /upload-program-action endpoint: the epoch_time field supplied during program uploads is not validated and can be crafted to induce corruption of the programs database. After a successful malformed upload the runtime continues to operate until a restart; on restart the runtime can fail to start because of corrupted database entries, resulting in persistent denial of service requiring complete rebase of the product to recover. This vulnerability was remediated by commit 095ee09.
Security readout for executives and security teams
Plain-English summary
An authenticated user with limited privileges can submit a malformed program upload that corrupts OpenPLC Runtime’s program database. The system may appear healthy until restarted, when it can fail to start and remain unavailable. Recovery may require completely rebuilding the product, creating material operational risk for affected control environments.
Executive priority
Treat this as a high-priority availability issue for operationally important OpenPLC deployments. Prioritize internet-accessible or broadly reachable version 3.0 systems and installations where downtime affects physical processes. Schedule remediation before routine restarts could expose latent corruption, while recognizing that the supplied evidence does not show active exploitation.
Technical view
OpenPLC Runtime 3.0 does not adequately validate the epoch_time field accepted by /upload-program-action. A malformed authenticated upload can corrupt database entries. The runtime continues operating initially, but a later restart can trigger persistent startup failure. CVSS 4.0 rates this 7.1: network-accessible, low complexity, low privileges, no user interaction, high availability impact, and limited integrity impact.
Likely exposure
Exposure is limited to OpenPLC Runtime 3.0 according to the supplied record. Risk is greatest where low-privileged accounts can reach the program-upload endpoint over a network. The bundle does not identify affected configurations beyond version 3.0, so organizations should verify deployed builds and access paths rather than assume all installations are vulnerable.
Exploitation context
The vulnerability is not listed as CISA KEV in the supplied bundle, and no cited evidence establishes active exploitation. Exploitation requires low-privileged authenticated access but no user interaction. The disruptive effect is delayed: corruption occurs during upload, while persistent denial of service becomes apparent after restart.
Researcher notes
The core issue is insufficient validation of epoch_time during program upload, mapped to CWE-20 and CWE-664. Commit 095ee09623dd229b64ad3a1db38a901a3772f6fc is identified as the remediation. The bundle does not name a fixed release, provide forensic indicators, or establish exploitation in the wild. Avoid destructive validation against production because triggering may create delayed, persistent failure.
Mitigation direction
Identify all OpenPLC Runtime 3.0 instances and their program-upload interface exposure.
Update to a vendor-supported build containing commit 095ee09; confirm the included release through vendor guidance.
Until updated, restrict /upload-program-action to trusted administrators and trusted management networks.
Prepare recovery procedures because a corrupted database may require a complete product rebase.
Validation and detection
Verify installed versions and confirm the deployed source or package contains commit 095ee09.
Review network paths and access controls for /upload-program-action, including accounts permitted to upload programs.
Inspect upload and restart records for unexplained failures; the sources provide no reliable exploitation indicators.
Test restart and recovery only in an isolated replica to avoid disrupting operational systems.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cwe · low confidence lookup
CWE-20: Exact CWE lookup
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
The CVE wording references database injection or access, so collection and exfiltration review may help. This is a Glexia inferred lookup path, not an official MITRE, ATT&CK, or CVE Program mapping.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.
CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.
CWE-20 · source CWE mapping
Improper Input Validation
Improper Input Validation represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.
Improper Control of a Resource Through its Lifetime
Improper Control of a Resource Through its Lifetime represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.