{"id":"CVE-2026-101022","state":"PUBLISHED","title":"Grid Protection Alliance openPDC and openHistorian Server-Side Request Forgery (SSRF)","description":"A Modbus connection feature on openPDC accepts a caller-specified destination address and port with no restriction on which internal hosts may be targeted. An authenticated user can attempt connections to arbitrary internal network destinations, revealing which destinations are reachable. With repeated attempts, an attacker may be able to map the internal network.","publishedAt":"2026-10-09T13:55:29.163Z","updatedAt":"2026-10-09T16:46:21.431Z","severity":{"score":5.3,"label":"Medium","version":"4.0","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N","source":"icscert"},"assigner":"icscert","products":["Grid Protection Alliance openPDC","Grid Protection Alliance openPDC (Docker image)","Grid Protection Alliance openHistorian"],"affected":[{"vendor":"Grid Protection Alliance","product":"openPDC","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"2.9.477","versionType":"custom"},{"version":"0","status":"affected","lessThan":"2.9.482","versionType":"custom"},{"version":"2.9.482","status":"unaffected"}]},{"vendor":"Grid Protection Alliance","product":"openPDC (Docker image)","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"2.9.477","versionType":"custom"},{"version":"0","status":"affected","lessThan":"2.9.482","versionType":"custom"}]},{"vendor":"Grid Protection Alliance","product":"openHistorian","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"2.8.580","versionType":"custom"},{"version":"0","status":"affected","lessThan":"2.8.585","versionType":"custom"},{"version":"2.8.585","status":"unaffected"}]}],"references":["https://www.cisa.gov/news-events/ics-advisories/icsa-26-281-02","https://github.com/cisagov/CSAF/blob/develop/csaf_files/OT/white/2026/icsa-26-281-02.json"],"weaknesses":["CWE-918"],"ingestedAt":"2026-10-29T20:10:13.529Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/101xxx/CVE-2026-101022.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-101022","state":"PUBLISHED","datePublished":"2026-10-09T13:55:29.163Z","dateUpdated":"2026-10-09T16:46:21.431Z","assignerShortName":"icscert","assignerOrgId":"7d14cffa-0d7d-4270-9dc0-52cabd5a23a6","dateReserved":"2026-10-05T16:54:01.628Z"},"containers":{"cna":{"title":"Grid Protection Alliance openPDC and openHistorian Server-Side Request Forgery (SSRF)","descriptions":[{"lang":"en","value":"A Modbus connection feature on openPDC accepts a caller-specified destination address and port with no restriction on which internal hosts may be targeted. An authenticated user can attempt connections to arbitrary internal network destinations, revealing which destinations are reachable. With repeated attempts, an attacker may be able to map the internal network."}],"affected":[{"vendor":"Grid Protection Alliance","product":"openPDC","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"2.9.477","versionType":"custom"},{"version":"0","status":"affected","lessThan":"2.9.482","versionType":"custom"},{"version":"2.9.482","status":"unaffected"}]},{"vendor":"Grid Protection Alliance","product":"openPDC (Docker image)","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"2.9.477","versionType":"custom"},{"version":"0","status":"affected","lessThan":"2.9.482","versionType":"custom"}]},{"vendor":"Grid Protection Alliance","product":"openHistorian","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"2.8.580","versionType":"custom"},{"version":"0","status":"affected","lessThan":"2.8.585","versionType":"custom"},{"version":"2.8.585","status":"unaffected"}]}],"references":[{"url":"https://www.cisa.gov/news-events/ics-advisories/icsa-26-281-02"},{"url":"https://github.com/cisagov/CSAF/blob/develop/csaf_files/OT/white/2026/icsa-26-281-02.json"}],"metrics":[{"format":"CVSS","scenarios":[{"lang":"en","value":"GENERAL"}],"cvssV3_1":{"version":"3.1","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"LOW","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"LOW","integrityImpact":"NONE","availabilityImpact":"NONE","baseSeverity":"MEDIUM","baseScore":4.3,"vectorString":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N"}},{"format":"CVSS","scenarios":[{"lang":"en","value":"GENERAL"}],"cvssV4_0":{"attackVector":"NETWORK","attackComplexity":"LOW","attackRequirements":"NONE","privilegesRequired":"LOW","userInteraction":"NONE","vulnConfidentialityImpact":"LOW","subConfidentialityImpact":"NONE","vulnIntegrityImpact":"NONE","subIntegrityImpact":"NONE","vulnAvailabilityImpact":"NONE","subAvailabilityImpact":"NONE","exploitMaturity":"NOT_DEFINED","Safety":"NOT_DEFINED","Automatable":"NOT_DEFINED","Recovery":"NOT_DEFINED","valueDensity":"NOT_DEFINED","vulnerabilityResponseEffort":"NOT_DEFINED","providerUrgency":"NOT_DEFINED","version":"4.0","baseSeverity":"MEDIUM","baseScore":5.3,"vectorString":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-918","lang":"en","description":"CWE-918","type":"CWE"}]}],"providerMetadata":{"shortName":"icscert","orgId":"7d14cffa-0d7d-4270-9dc0-52cabd5a23a6","dateUpdated":"2026-10-09T13:55:29.163Z"},"workarounds":[{"lang":"en","value":"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.","supportingMedia":[{"type":"text/html","base64":false,"value":"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."}]},{"lang":"en","value":"Grid Protection Alliance recommends restricting network access to modbus using a firewall, and disallowing connections to loopback and private (RFC 1918) address ranges unless explicitly required.","supportingMedia":[{"type":"text/html","base64":false,"value":"Grid Protection Alliance recommends restricting network access to modbus using a firewall, and disallowing connections to loopback and private (RFC 1918) address ranges unless explicitly required."}]}],"credits":[{"lang":"en","value":"Shubham Raj (Cipher) of Causal Security reported this vulnerability to CISA.","type":"finder"}],"source":{"advisory":"ICSA-26-281-02","discovery":"EXTERNAL"},"x_generator":{"engine":"Vulnogram 1.0.5"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2026-10-09T16:15:25.319433Z","id":"CVE-2026-101022","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-10-09T16:46:21.431Z"}}]}}}