{"id":"CVE-2026-103398","state":"PUBLISHED","title":"OpenSave through 2.4.0 Arbitrary File Read and Write via Peer-Controlled Save Path","description":"OpenSave through 2.4.0 fails to properly validate save paths supplied by paired peers in the manifest request handler. Attackers can specify arbitrary directories outside configured save locations to read and write files through manifest and sync routes.","publishedAt":"2026-09-30T14:48:57.725Z","updatedAt":"2026-10-01T14:50:05.631Z","severity":{"score":8.6,"label":"High","version":"4.0","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N","source":"VulnCheck"},"assigner":"VulnCheck","products":["Liquid-co OpenSave"],"affected":[{"vendor":"Liquid-co","product":"OpenSave","packageURL":"pkg:github/Liquid-co/OpenSave","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThanOrEqual":"2.4.0","versionType":"semver"}],"repo":"https://github.com/Liquid-co/OpenSave"}],"references":["https://gist.github.com/mansurmavlankulov/2ca66f95965fb9d4aab353bcf2434cdb","https://github.com/Liquid-co/OpenSave/blob/v2.4.0/internal/p2p/routes.go#L555-L566","https://github.com/Liquid-co/OpenSave/blob/v2.4.0/internal/delta/rootguard.go#L16-L30","https://github.com/Liquid-co/OpenSave","https://www.vulncheck.com/advisories/opensave-through-2.4.0-arbitrary-file-read-and-write-via-peer-controlled-save-path"],"weaknesses":["CWE-73"],"ingestedAt":"2026-10-29T20:10:23.711Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/103xxx/CVE-2026-103398.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-103398","state":"PUBLISHED","datePublished":"2026-09-30T14:48:57.725Z","dateUpdated":"2026-10-01T14:50:05.631Z","assignerShortName":"VulnCheck","assignerOrgId":"83251b91-4cc7-4094-a5c7-464a1b83ea10","dateReserved":"2026-09-30T14:28:18.192Z"},"containers":{"cna":{"title":"OpenSave through 2.4.0 Arbitrary File Read and Write via Peer-Controlled Save Path","descriptions":[{"lang":"en","value":"OpenSave through 2.4.0 fails to properly validate save paths supplied by paired peers in the manifest request handler. Attackers can specify arbitrary directories outside configured save locations to read and write files through manifest and sync routes."}],"affected":[{"vendor":"Liquid-co","product":"OpenSave","packageURL":"pkg:github/Liquid-co/OpenSave","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThanOrEqual":"2.4.0","versionType":"semver"}],"repo":"https://github.com/Liquid-co/OpenSave"}],"references":[{"url":"https://gist.github.com/mansurmavlankulov/2ca66f95965fb9d4aab353bcf2434cdb","tags":["third-party-advisory"]},{"url":"https://github.com/Liquid-co/OpenSave/blob/v2.4.0/internal/p2p/routes.go#L555-L566","tags":["technical-description"]},{"url":"https://github.com/Liquid-co/OpenSave/blob/v2.4.0/internal/delta/rootguard.go#L16-L30","tags":["technical-description"]},{"url":"https://github.com/Liquid-co/OpenSave","tags":["product"]},{"url":"https://www.vulncheck.com/advisories/opensave-through-2.4.0-arbitrary-file-read-and-write-via-peer-controlled-save-path","name":"VulnCheck Advisory: OpenSave through 2.4.0 Arbitrary File Read and Write via Peer-Controlled Save Path","tags":["third-party-advisory"]}],"metrics":[{"format":"CVSS","cvssV4_0":{"version":"4.0","vectorString":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N","attackVector":"NETWORK","attackComplexity":"LOW","attackRequirements":"NONE","privilegesRequired":"LOW","userInteraction":"NONE","vulnConfidentialityImpact":"HIGH","vulnIntegrityImpact":"HIGH","vulnAvailabilityImpact":"NONE","subConfidentialityImpact":"NONE","subIntegrityImpact":"NONE","subAvailabilityImpact":"NONE","baseScore":8.6,"baseSeverity":"HIGH"}},{"format":"CVSS","cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"LOW","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"HIGH","integrityImpact":"HIGH","availabilityImpact":"NONE","baseScore":8.1,"baseSeverity":"HIGH"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-73","lang":"en","description":"External Control of File Name or Path","type":"CWE"}]}],"providerMetadata":{"shortName":"VulnCheck","orgId":"83251b91-4cc7-4094-a5c7-464a1b83ea10","dateUpdated":"2026-10-01T14:50:05.631Z"},"datePublic":"2026-09-09T00:00:00.000Z","credits":[{"lang":"en","value":"Mansurzhan Mavlankulov","type":"finder"}],"x_generator":{"engine":"vulncheck-endgame"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2026-09-30T15:37:56.394331Z","id":"CVE-2026-103398","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"total"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-09-30T15:40:58.359Z"}}]}}}