GCVE Workshop - 22 September 2026 (14:00-18:00), Luxembourg Before The Vulnopticon Conference - Registration

GHSA-Q6VM-XQC9-V3FF

Vulnerability from github – Published: 2026-07-28 20:16 – Updated: 2026-07-28 20:16
VLAI
Summary
Fission: Zip Slip in pkg/utils/zip.go:Unarchive allows fetcher to write outside the destination directory
Details

Unarchive in pkg/utils/zip.go joined each archive entry name with the destination directory via filepath.Join and wrote the result without checking whether the resolved path stayed under the destination. A zip entry named ../../tmp/evil therefore landed at /tmp/evil. An attacker who could control a Package.Spec.Source.URL or Deployment.URL archive could induce the fetcher (running as the per-environment pod's fission-fetcher sidecar) to write files anywhere that process could reach: into other tenants' /packages/<ns>/ directories, into mounted secret/config volumes, or into the fetcher's own binary.

### Affected

  • Project: github.com/fission/fission
  • Versions: all up to and including v1.24.0
  • Audited commit: 647c141
  • Component: pkg/utils/zip.go (Unarchive)
  • Configuration: default; triggered when the fetcher downloads and extracts a zip archive

Fix section (paste into the Fix / Patches field)

Fixed in v1.25.0 by:

  • PR #3444 (commit 55704aca) — Unarchive now opens an os.Root on the destination, validates each archive entry name (rejects absolute paths and .. traversal), and refuses symlink entries up front. The os.Root confines every mkdir / create to the destination in the kernel.

Regression coverage: TestUnarchiveZipSlip in pkg/utils/zip_test.go exercises parent-traversal, absolute-path, and symlink entries.

Show details on source website

{
  "affected": [
    {
      "database_specific": {
        "last_known_affected_version_range": "\u003c= 1.24.0"
      },
      "package": {
        "ecosystem": "Go",
        "name": "github.com/fission/fission"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0"
            },
            {
              "fixed": "1.25.0"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    }
  ],
  "aliases": [
    "CVE-2026-50567"
  ],
  "database_specific": {
    "cwe_ids": [
      "CWE-22"
    ],
    "github_reviewed": true,
    "github_reviewed_at": "2026-07-28T20:16:52Z",
    "nvd_published_at": "2026-06-10T18:17:13Z",
    "severity": "HIGH"
  },
  "details": "`Unarchive` in `pkg/utils/zip.go` joined each archive entry name with the destination directory via `filepath.Join` and wrote the result without checking whether the resolved path stayed under the destination. A zip entry named\n  `../../tmp/evil` therefore landed at `/tmp/evil`. An attacker who could control a `Package.Spec.Source.URL` or `Deployment.URL` archive could induce the fetcher (running as the per-environment pod\u0027s `fission-fetcher` sidecar) to write\n  files anywhere that process could reach: into other tenants\u0027 `/packages/\u003cns\u003e/` directories, into mounted secret/config volumes, or into the fetcher\u0027s own binary.\n\n  ### Affected\n\n  - Project: `github.com/fission/fission`\n  - Versions: all up to and including v1.24.0\n  - Audited commit: `647c141`\n  - Component: `pkg/utils/zip.go` (`Unarchive`)\n  - Configuration: default; triggered when the fetcher downloads and extracts a zip archive\n\n  Fix section (paste into the Fix / Patches field)\n\n  Fixed in [v1.25.0](https://github.com/fission/fission/releases/tag/v1.25.0) by:\n\n  - [PR #3444](https://github.com/fission/fission/pull/3444) (commit [`55704aca`](https://github.com/fission/fission/commit/55704aca1b8d6f45bc7c7c2e4805c7e14875ec0f)) \u2014 `Unarchive` now opens an `os.Root` on the destination, validates each\n  archive entry name (rejects absolute paths and `..` traversal), and refuses symlink entries up front. The `os.Root` confines every `mkdir` / `create` to the destination in the kernel.\n\n  Regression coverage: `TestUnarchiveZipSlip` in `pkg/utils/zip_test.go` exercises parent-traversal, absolute-path, and symlink entries.",
  "id": "GHSA-q6vm-xqc9-v3ff",
  "modified": "2026-07-28T20:16:52Z",
  "published": "2026-07-28T20:16:52Z",
  "references": [
    {
      "type": "WEB",
      "url": "https://github.com/fission/fission/security/advisories/GHSA-q6vm-xqc9-v3ff"
    },
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-50567"
    },
    {
      "type": "WEB",
      "url": "https://github.com/fission/fission/pull/3444"
    },
    {
      "type": "PACKAGE",
      "url": "https://github.com/fission/fission"
    },
    {
      "type": "WEB",
      "url": "https://github.com/fission/fission/releases/tag/v1.25.0"
    }
  ],
  "schema_version": "1.4.0",
  "severity": [
    {
      "score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:N/I:H/A:N",
      "type": "CVSS_V3"
    }
  ],
  "summary": " Fission: Zip Slip in pkg/utils/zip.go:Unarchive allows fetcher to write outside the destination directory"
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…

Related by attack behaviour

Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.


Loading…