Skip to content
Heist/ feed
Back to feed
HighFix available

Payload: Client uploads could overwrite S3 objects

Type: advisorySources: OSV

### Impact An authenticated user could overwrite an existing S3 object belonging to another upload collection, bypassing that collection’s access controls and prior file validation. You are affected if ALL of these are true: - Client uploads are enabled for multiple collections that share an S3 bucket. - useCompositePrefixes is not configured or is set to `false`. ### Patches Users should upgrade Payload packages to `>= 3.90.0` or `>= 4.0.0-canary.34`. ### Workarounds Disable client uploads until you can upgrade.

Products
@payloadcms/storage-s3
Affected versions
Not specified
Fixed versions
3.90.0, 4.0.0-canary.34
CVEs
CVE-2026-105867
Confirmed fixed CVEs
Not specified
Updated in this feed
28 Oct 2026, 08:48 UTC · Revision 1

Source evidence

Payload: Client uploads could overwrite S3 objects

core-osv · Original source

Published 7 Oct 2026, 20:28 UTC

### Impact An authenticated user could overwrite an existing S3 object belonging to another upload collection, bypassing that collection’s access controls and prior file validation. You are affected if ALL of these are true: - Client uploads are enabled for multiple collections that share an S3 bucket. - useCompositePrefixes is not configured or is set to `false`. ### Patches Users should upgrade Payload packages to `>= 3.90.0` or `>= 4.0.0-canary.34`. ### Workarounds Disable client uploads until you can upgrade.

osv:GHSA-7vg8-29qx-jgj8

@payloadcms/storage-s3

Fixed versions: 3.90.0

@payloadcms/storage-s3

Fixed versions: 4.0.0-canary.34

Complete source record
{
  "id": "a430262d04d2d80e8f2f73f17126eb4f84839e5496fb5ccc9c3cd39125a0fcab",
  "url": "https://osv.dev/vulnerability/GHSA-7vg8-29qx-jgj8",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Payload: Client uploads could overwrite S3 objects",
    "summary": "### Impact An authenticated user could overwrite an existing S3 object belonging to another upload collection, bypassing that collection’s access controls and prior file validation. You are affected if ALL of these are true: - Client uploads are enabled for multiple collections that share an S3 bucket. - useCompositePrefixes is not configured or is set to `false`. ### Patches Users should upgrade Payload packages to `>= 3.90.0` or `>= 4.0.0-canary.34`. ### Workarounds Disable client uploads until you can upgrade.",
    "evidence": "osv:GHSA-7vg8-29qx-jgj8",
    "products": [
      {
        "name": {
          "value": "@payloadcms/storage-s3",
          "evidence": "/affected/0/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "3.90.0",
            "evidence": "/affected/0/ranges"
          }
        ],
        "affected_versions": []
      },
      {
        "name": {
          "value": "@payloadcms/storage-s3",
          "evidence": "/affected/1/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "4.0.0-canary.34",
            "evidence": "/affected/1/ranges"
          }
        ],
        "affected_versions": []
      }
    ],
    "severity": "high",
    "structured": {
      "id": "GHSA-7vg8-29qx-jgj8",
      "aliases": [
        "CVE-2026-105867",
        "GHSA-7vg8-29qx-jgj8"
      ],
      "metrics": [
        {
          "type": "CVSS_V4",
          "score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:L/SC:N/SI:N/SA:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "type": "SEMVER",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "3.90.0"
                }
              ]
            }
          ],
          "package": {
            "name": "@payloadcms/storage-s3",
            "purl": "pkg:npm/%40payloadcms/storage-s3",
            "ecosystem": "npm"
          },
          "database_specific": {
            "source": "https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/10/GHSA-7vg8-29qx-jgj8/GHSA-7vg8-29qx-jgj8.json"
          }
        },
        {
          "ranges": [
            {
              "type": "SEMVER",
              "events": [
                {
                  "introduced": "4.0.0-canary.0"
                },
                {
                  "fixed": "4.0.0-canary.34"
                }
              ]
            }
          ],
          "package": {
            "name": "@payloadcms/storage-s3",
            "purl": "pkg:npm/%40payloadcms/storage-s3",
            "ecosystem": "npm"
          },
          "database_specific": {
            "source": "https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/10/GHSA-7vg8-29qx-jgj8/GHSA-7vg8-29qx-jgj8.json"
          }
        }
      ],
      "modified": "2026-10-07T20:45:04.347253409Z",
      "provider": "osv",
      "references": [
        "https://github.com/payloadcms/payload/security/advisories/GHSA-7vg8-29qx-jgj8",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-105867",
        "https://github.com/payloadcms/payload/commit/2df8238fbf17edfce335c399b90bf524ba9906a2",
        "https://github.com/payloadcms/payload",
        "https://github.com/payloadcms/payload/releases/tag/v3.90.0"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-639"
        ],
        "severity": "HIGH",
        "github_reviewed": true,
        "nvd_published_at": "2026-10-06T17:17:23Z",
        "github_reviewed_at": "2026-10-07T20:28:59Z"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-105867",
        "evidence": "/aliases"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/database_specific/severity"
  },
  "source_id": "core-osv",
  "document_id": 97261,
  "published_at": "2026-10-07T20:28:59+00:00"
}