Skip to content
Heist/ feed
Back to feed
High

Security advisory

Type: advisorySources: OSVCVE: CVE-2026-39246

decompress before 4.2.2 allows arbitrary symlink creation during archive extraction. When processing symlink entries (type === 'symlink'), the x.linkname field from the archive is passed directly to fs.symlink() without validation (index.js line 121). The preventWritingThroughSymlink check on line 98 only applies to file entries, not symlink creation. An attacker can craft an archive with symlink entries pointing to sensitive files outside the extraction directory (e.g., /etc/passwd), enabling information disclosure when the application reads the extracted contents.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-39246
Confirmed fixed CVEs
Not specified
Updated in this feed
3 Nov 2026, 09:54 UTC · Revision 1

Source evidence

CVE-2026-39246

core-osv · Original source

Published 9 Jul 2026, 00:00 UTC

decompress before 4.2.2 allows arbitrary symlink creation during archive extraction. When processing symlink entries (type === 'symlink'), the x.linkname field from the archive is passed directly to fs.symlink() without validation (index.js line 121). The preventWritingThroughSymlink check on line 98 only applies to file entries, not symlink creation. An attacker can craft an archive with symlink entries pointing to sensitive files outside the extraction directory (e.g., /etc/passwd), enabling information disclosure when the application reads the extracted contents.

osv:CVE-2026-39246
Complete source record
{
  "id": "19d4ed7ba66dedfc4ae21db21c5777e9d5b2bb23f8bf235cc05d8f656c56ce93",
  "url": "https://osv.dev/vulnerability/CVE-2026-39246",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "CVE-2026-39246",
    "summary": "decompress before 4.2.2 allows arbitrary symlink creation during archive extraction. When processing symlink entries (type === 'symlink'), the x.linkname field from the archive is passed directly to fs.symlink() without validation (index.js line 121). The preventWritingThroughSymlink check on line 98 only applies to file entries, not symlink creation. An attacker can craft an archive with symlink entries pointing to sensitive files outside the extraction directory (e.g., /etc/passwd), enabling information disclosure when the application reads the extracted contents.",
    "evidence": "osv:CVE-2026-39246",
    "products": [],
    "severity": "high",
    "structured": {
      "id": "CVE-2026-39246",
      "aliases": [
        "CVE-2026-39246"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/kevva/decompress",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "last_affected": "84a8c1046946add1a6ae01c54dbebf312e4ffc85"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "cpe": "cpe:2.3:a:decompress_project:decompress:*:*:*:*:*:node.js:*:*",
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "last_affected": "4.2.1"
                      }
                    ],
                    "source": "CPE_RANGE"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v4.2.1",
            "v4.2.0",
            "v4.1.0",
            "v4.0.0",
            "v3.0.0"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-39246.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:27.960205265Z",
      "provider": "osv",
      "references": [
        "https://www.npmjs.com/package/decompress",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/39xxx/CVE-2026-39246.json",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-39246",
        "https://github.com/kevva/decompress/issues/114",
        "https://github.com/kevva/decompress"
      ],
      "provider_metadata": {
        "cna_assigner": "mitre",
        "unresolved_ranges": [
          {
            "extracted_events": [
              {
                "range": [
                  {
                    "fixed": "4.2.2"
                  }
                ],
                "source": "DESCRIPTION"
              }
            ]
          }
        ],
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/39xxx/CVE-2026-39246.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-39246",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 494340,
  "published_at": "2026-07-09T00:00:00+00:00"
}