Skip to content
Heist/ feed
Back to feed
High

SSH.NET: ScpClient Recursive Download Allows Arbitrary File Write via Server-Controlled SCP Filenames

Type: advisorySources: OSV

SSH.NET is a Secure Shell (SSH) library for .NET. In 2025.1.0 and earlier, ScpClient.Download(string directoryName, DirectoryInfo directoryInfo) trusts file and directory names returned by a remote SCP server and combines them with the requested local directory without containment validation, allowing a malicious, compromised, or man-in-the-middle server to use ../ sequences or absolute paths to create or overwrite files anywhere writable by the client process. This issue is fixed in version 2026.0.0.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-48798
Confirmed fixed CVEs
Not specified
Updated in this feed
2 Nov 2026, 21:18 UTC · Revision 1

Source evidence

SSH.NET: ScpClient Recursive Download Allows Arbitrary File Write via Server-Controlled SCP Filenames

core-osv · Original source

Published 18 Aug 2026, 14:57 UTC

SSH.NET is a Secure Shell (SSH) library for .NET. In 2025.1.0 and earlier, ScpClient.Download(string directoryName, DirectoryInfo directoryInfo) trusts file and directory names returned by a remote SCP server and combines them with the requested local directory without containment validation, allowing a malicious, compromised, or man-in-the-middle server to use ../ sequences or absolute paths to create or overwrite files anywhere writable by the client process. This issue is fixed in version 2026.0.0.

osv:CVE-2026-48798
Complete source record
{
  "id": "bc646766ad2241a0be5f0d730582fbb2525f22ee8a3738a4d4b537759e811b1a",
  "url": "https://osv.dev/vulnerability/CVE-2026-48798",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "SSH.NET: ScpClient Recursive Download Allows Arbitrary File Write via Server-Controlled SCP Filenames",
    "summary": "SSH.NET is a Secure Shell (SSH) library for .NET. In 2025.1.0 and earlier, ScpClient.Download(string directoryName, DirectoryInfo directoryInfo) trusts file and directory names returned by a remote SCP server and combines them with the requested local directory without containment validation, allowing a malicious, compromised, or man-in-the-middle server to use ../ sequences or absolute paths to create or overwrite files anywhere writable by the client process. This issue is fixed in version 2026.0.0.",
    "evidence": "osv:CVE-2026-48798",
    "products": [],
    "severity": "high",
    "structured": {
      "id": "CVE-2026-48798",
      "aliases": [
        "CVE-2026-48798",
        "GHSA-q939-rpr3-3284"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:L"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/sshnet/ssh.net",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "7b2fd3dbf2c86a80a7b06cea020aa5f821c9902e"
                },
                {
                  "fixed": "600be0de543765995a189b5d7cd4efac5007f3ce"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "2026.0.0"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StringRangeExpression"
                  },
                  {
                    "range": [
                      {
                        "fixed": "600be0de543765995a189b5d7cd4efac5007f3ce"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  },
                  {
                    "range": [
                      {
                        "fixed": "7b2fd3dbf2c86a80a7b06cea020aa5f821c9902e"
                      }
                    ],
                    "source": "REFERENCES_TAG",
                    "original_tag": "2026.0.0"
                  }
                ]
              }
            }
          ],
          "versions": [
            "2025.1.0",
            "2025.0.0",
            "2024.2.0",
            "2024.1.0",
            "2024.0.0",
            "2023.0.1",
            "2023.0.0",
            "2016.1.0"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-48798.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:23.545438774Z",
      "provider": "osv",
      "references": [
        "https://github.com/sshnet/SSH.NET/releases/tag/2026.0.0",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/48xxx/CVE-2026-48798.json",
        "https://github.com/sshnet/SSH.NET/security/advisories/GHSA-q939-rpr3-3284",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-48798",
        "https://github.com/sshnet/SSH.NET/commit/600be0de543765995a189b5d7cd4efac5007f3ce"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-22",
          "CWE-73"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/48xxx/CVE-2026-48798.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-48798",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 490174,
  "published_at": "2026-08-18T14:57:05.059+00:00"
}