Skip to main content

JSON-SCADA EUVDEUVD-2026-108130

| CVE-2026-115328 HIGH
SQL Injection (CWE-89)
2026-10-22 VulnCheck GHSA-6wf3-ww94-h8pr
8.7
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate as low-privilege user
  2. Delivery
    Send crafted OPC HistoryReadRequest
  3. Exploit
    Inject stacked SQL via NodeId.Id/StartTime/EndTime
  4. Execution
    Execute statements on historian database
  5. Impact
    Read, modify, or delete historian data regardless of role

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Parameterized queries, prepared statements
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Persistence

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires an authenticated JSON-SCADA account (PR:L) with network access to the OPC HistoryRead API handled by opcApi() in src/server_realtime_auth/index.js; the attacker must be able to submit a HistoryReadRequest and control the NodeId.Id, StartTime, or EndTime values, which are concatenated into the backend SQL query and support stacked statements. The specific feature required is the OPC historian HistoryRead API. The main limiting factor is that valid credentials are needed (not unauthenticated), so an attacker must first obtain or possess an account; however, the flaw explicitly works 'regardless of role,' so no elevated privilege or special configuration is required beyond basic authenticated access, and default deployments appear affected. No user interaction is required.

Impact

This is a genuine high-severity issue but not a drop-everything emergency. The CVSS 4.0 base score of 8.7 is driven by network reachability (AV:N), low attack complexity (AC:L), no attack requirements (AT:N), no user interaction (UI:N), and full High impact to confidentiality, integrity and availability of the vulnerable system (VC:H/VI:H/VA:H). The key limiting signal is PR:L - exploitation requires an authenticated account, so this is not mass, unauthenticated internet exploitation. The notable amplifier is that the description states impact applies 'regardless of role,' meaning any authenticated low-privilege user can fully read, modify, or delete historian data, effectively bypassing the role model (a horizontal/privilege-impact escalation). SC/SI/SA are N, so there is no confirmed scope change to other systems. EXPLICIT DATA GAPS/CONFLICTS: No EPSS score is provided in the input, so exploitation probability cannot be quantified. The CVE is not listed in CISA KEV, and no public exploit code is identified; therefore active-exploitation claims cannot be made. The vuln.today Decision label is 'this_week', consistent with a serious, patch-available flaw that warrants prompt but not emergency remediation. Net assessment: a real priority for any JSON-SCADA operator because an ICS historian is a sensitive asset and even low-privilege accounts gain full data control, tempered by the authentication prerequisite and the absence of KEV/EPSS/PoC signals.

Exploit ScenarioDerived

An attacker holding any low-privilege authenticated JSON-SCADA account sends a crafted OPC HistoryRead API request to opcApi() with stacked SQL statements embedded in the NodeId.Id, StartTime, or EndTime values. Because these parameters are concatenated into the backend query, the attacker reads, alters, or deletes historian data across all locations irrespective of their assigned role. No public working exploit code is identified, though the vulnerable code region (index.js lines 2175-2224 in V0.64-alpha) is referenced publicly in the VulnCheck advisory.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 22, 2026

SQL injection in JSON-SCADA releases before 0.65-alpha lets an authenticated user inject arbitrary SQL through the OPC historian HistoryRead API implemented by opcApi() in src/server_realtime_auth/index.js, by supplying crafted NodeId.Id, StartTime or EndTime values in a HistoryReadRequest. Because stacked statements are accepted, an attacker with any valid account can read, modify or delete historian data across all locations irrespective of their assigned role, giving high confidentiality, integrity and availability impact to the historian. Exploitation requires network reach to the HistoryRead endpoint plus valid credentials (CVSS 4.0 PR:L, aligned with an assessed CVSS 3.1 vector of AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H); no public exploit code is identified at time of analysis, the issue is not in CISA KEV, and VulnCheck reporting places remediation in the current weekly patch cycle rather than an emergency response.

RemediationAI

Apply the vendor fix by upgrading to JSON-SCADA 0.65-alpha or later; the release tag https://github.com/riclolsen/json-scada/releases/tag/V0.65-alpha contains commit 60b65bcd42d6ee21aa8587580ec778c3bb9b4755, which parameterizes or otherwise sanitizes the HistoryReadRequest values reaching the SQL layer, and is the authoritative patch reference alongside the VulnCheck advisory (https://www.vulncheck.com/advisories/json-scada-before-0.65-alpha-sql-injection-via-opc-historyread-api). Because exploitation requires a valid account with network access to the OPC HistoryRead API, reducing exposure in the interim means limiting which accounts can reach the realtime auth server, with the trade-off that legitimate operator and historian clients must be re-homed or given specific allowances, and that this does not remediate the underlying injection for users who do have accounts. No vendor-documented workaround beyond updating is provided in the available sources, and the priority label indicates this should be scheduled within the current weekly patch window rather than treated as an emergency.

Affected VersionsENISA

json-scada 0 <0.65-alpha

Affected Packages

euvd json_scada fix: 0.65-alpha

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

JSON-SCADA is a Node.js SCADA/telemetry platform (CPE cpe:2.3:a:riclolsen:json-scada) that exposes OPC UA style services, including the historian HistoryRead service, through the realtime authentication server. The root cause is CWE-89: values taken from the HistoryReadRequest payload - specifically NodeId.Id, StartTime and EndTime - are concatenated directly into the backend SQL query in opcApi() rather than being bound as parameters. The database layer tolerates stacked statements, so injected SQL is not limited to altering the shape of a single SELECT and can append statements that read, modify or delete historian records. Authorization is enforced on the API entry point but not on the resulting query, which is why the flaw operates regardless of the caller's role once a session exists. The trigger path is the HistoryRead API; no other endpoint or deployment mode is described in the available sources, and the vendor fix is in commit 60b65bcd42d6ee21aa8587580ec778c3bb9b4755 shipped with the V0.65-alpha release.

Know when Json Scada 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

Vendor (VulnCheck) PRIMARY 8.7 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
vuln.today AI 8.8 HIGH

Remote API reachable (AV:N), trivial injection (AC:L), requires an authenticated but any-role account (PR:L), no scope change to other systems (S:U), full read/modify/delete of historian data (C:H/I:H/A:H).

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

JSON-SCADA before 0.65-alpha contains an sql injection vulnerability in opcApi() in src/server_realtime_auth/index.js that allows authenticated users to inject SQL via HistoryReadRequest parameters. Attackers can inject stacked statements through NodeId.Id, StartTime, or EndTime values to read, modify, or delete historian data across all locations regardless of role.

Executive ViewAI

Why It Matters

A high-severity SQL injection vulnerability in JSON-SCADA versions before 0.65-alpha allows any authenticated user, regardless of role, to fully compromise historian data-reading, modifying, or deleting records across all locations. This undermines the integrity of operational data and could disrupt critical industrial processes; leadership must prioritize remediation to prevent insider misuse or credential-based attacks that bypass role-based access controls.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

Prevalence
Low
niche open-source ICS/SCADA historian platform, limited production footprint
Social Media
1
Sightings
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS N/A
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

SQL injection exploits the way applications construct database queries by mixing user input directly into SQL statements.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy