Skip to content
Heist/ feed
Back to feed
High

OpenSave through 2.4.0 Arbitrary File Read and Write via Peer-Controlled Save Path

Type: advisorySources: OSV

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.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-103398
Confirmed fixed CVEs
Not specified
Updated in this feed
4 Nov 2026, 16:34 UTC · Revision 1

Source evidence

OpenSave through 2.4.0 Arbitrary File Read and Write via Peer-Controlled Save Path

core-osv · Original source

Published 30 Sept 2026, 14:48 UTC

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.

osv:CVE-2026-103398
Complete source record
{
  "id": "0517e0ba29690dbf35a09b2082d72456025027d824d5f795a7bbefc681c87754",
  "url": "https://osv.dev/vulnerability/CVE-2026-103398",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "OpenSave through 2.4.0 Arbitrary File Read and Write via Peer-Controlled Save Path",
    "summary": "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.",
    "evidence": "osv:CVE-2026-103398",
    "products": [],
    "severity": "high",
    "structured": {
      "id": "CVE-2026-103398",
      "aliases": [
        "CVE-2026-103398"
      ],
      "metrics": [
        {
          "type": "CVSS_V4",
          "score": "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"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/liquid-co/opensave",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "last_affected": "f9bb679b4a13403ed8c2c3f54cc99caa3f3a350b"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "last_affected": "2.4.0"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StandardRange"
                  },
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "last_affected": "2.4.0"
                      }
                    ],
                    "source": "DESCRIPTION"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v2.4.0",
            "v2.3.1",
            "v2.3.0"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-103398.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:37.228012498Z",
      "provider": "osv",
      "references": [
        "https://gist.github.com/mansurmavlankulov/2ca66f95965fb9d4aab353bcf2434cdb",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/103xxx/CVE-2026-103398.json",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-103398",
        "https://www.vulncheck.com/advisories/opensave-through-2.4.0-arbitrary-file-read-and-write-via-peer-controlled-save-path",
        "https://github.com/Liquid-co/OpenSave",
        "https://github.com/Liquid-co/OpenSave/blob/v2.4.0/internal/delta/rootguard.go#L16-L30",
        "https://github.com/Liquid-co/OpenSave/blob/v2.4.0/internal/p2p/routes.go#L555-L566"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-73"
        ],
        "cna_assigner": "VulnCheck",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/103xxx/CVE-2026-103398.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-103398",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 504745,
  "published_at": "2026-09-30T14:48:57.725+00:00"
}