Files
vuln-cve/data/2026/18xxx/CVE-2026-18353.json
T

152 lines
6.8 KiB
JSON

{
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"cveMetadata": {
"cveId": "CVE-2026-18353",
"assignerOrgId": "e51fbebd-6053-4e49-959f-1b94eeb69a2c",
"state": "PUBLISHED",
"assignerShortName": "eclipse",
"dateReserved": "2026-07-30T07:10:40.527Z",
"datePublished": "2026-07-30T07:23:04.083Z",
"dateUpdated": "2026-07-30T13:02:36.576Z"
},
"containers": {
"cna": {
"providerMetadata": {
"orgId": "e51fbebd-6053-4e49-959f-1b94eeb69a2c",
"shortName": "eclipse",
"dateUpdated": "2026-07-30T07:23:04.083Z"
},
"problemTypes": [
{
"descriptions": [
{
"lang": "en",
"cweId": "CWE-918",
"description": "CWE-918 Server-Side Request Forgery (SSRF)",
"type": "CWE"
}
]
}
],
"affected": [
{
"vendor": "Eclipse Foundation",
"product": "Eclipse CSI - PIA",
"repo": "https://github.com/eclipse-csi/pia",
"versions": [
{
"status": "affected",
"version": "0.4.0",
"lessThan": "0.6.0",
"versionType": "semver"
}
],
"defaultStatus": "unaffected"
}
],
"descriptions": [
{
"lang": "en",
"value": "PIA's `POST /v1/upload/sbom` endpoint accepts a Bearer JWT and checks its **unverified** `iss` claim against an issuer allowlist using Python's `urlparse` before performing OIDC discovery with `requests`. Because `urlparse` and `requests`/`urllib3` parse an authority string containing a backslash (e.g. `https://attacker-host\\@ci.eclipse.org/`) into *different* hostnames, an attacker can craft an issuer that passes the allowlist check yet drives `requests` — and subsequently `urllib.request.urlopen` for JWKS retrieval — to connect to an arbitrary attacker-chosen host, port, and scheme.",
"supportingMedia": [
{
"type": "text/html",
"base64": false,
"value": "<p><span>PIA's `POST /v1/upload/sbom` endpoint accepts a Bearer JWT and checks its **unverified** `iss` claim against an issuer allowlist using Python's `urlparse` before performing OIDC discovery with `requests`. Because `urlparse` and `requests`/`urllib3` parse an authority string containing a backslash (e.g. `https://attacker-host\\@ci.eclipse.org/`) into *different* hostnames, an attacker can craft an issuer that passes the allowlist check yet drives `requests` — and subsequently `urllib.request.urlopen` for JWKS retrieval — to connect to an arbitrary attacker-chosen host, port, and scheme.</span></p>"
}
]
}
],
"references": [
{
"url": "https://github.com/eclipse-csi/pia/security/advisories/GHSA-v249-9xjm-qhgf"
}
],
"metrics": [
{
"format": "CVSS",
"scenarios": [
{
"lang": "en",
"value": "GENERAL"
}
],
"cvssV4_0": {
"attackVector": "NETWORK",
"attackComplexity": "LOW",
"attackRequirements": "NONE",
"privilegesRequired": "NONE",
"userInteraction": "NONE",
"vulnConfidentialityImpact": "LOW",
"subConfidentialityImpact": "NONE",
"vulnIntegrityImpact": "HIGH",
"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": "HIGH",
"baseScore": 8.8,
"vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:H/VA:N/SC:N/SI:N/SA:N"
}
}
],
"x_generator": {
"engine": "Vulnogram 1.0.4"
},
"title": "Unauthenticated SSRF in PIA via OIDC issuer allowlist bypass",
"source": {
"discovery": "UNKNOWN"
}
},
"adp": [
{
"references": [
{
"url": "https://github.com/eclipse-csi/pia/security/advisories/GHSA-v249-9xjm-qhgf",
"tags": [
"exploit"
]
}
],
"metrics": [
{
"other": {
"type": "ssvc",
"content": {
"timestamp": "2026-07-30T13:02:07.580629Z",
"id": "CVE-2026-18353",
"options": [
{
"Exploitation": "poc"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"version": "2.0.3"
}
}
}
],
"title": "CISA ADP Vulnrichment",
"providerMetadata": {
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP",
"dateUpdated": "2026-07-30T13:02:36.576Z"
}
}
]
}
}