{"id":"CVE-2026-34750","aliases":["EUVD-2026-18019","GHSA-frq9-7j6g-v74x"],"status":"published","title":"Payload has Insufficient Filename Validation in Client-Upload Signed-URL Endpoints","description":"Payload is a free and open source headless content management system. Prior to version 3.78.0 in @payloadcms/storage-azure, @payloadcms/storage-gcs, @payloadcms/storage-r2, and @payloadcms/storage-s3, the client-upload signed-URL endpoints for S3, GCS, Azure, and R2 did not properly sanitize filenames. An attacker could craft filenames to escape the intended storage location. This issue has been patched in version 3.78.0 for @payloadcms/storage-azure, @payloadcms/storage-gcs, @payloadcms/storage-r2, and @payloadcms/storage-s3.","severity":{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-12","score":0.00355,"percentile":0.29641,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-22"],"published":"2026-04-01T19:51:59Z","modified":"2026-10-28T02:30:26Z","fixes":[{"ecosystem":"npm","package":"@payloadcms/storage-azure","fixed_in":["3.78.0"],"sources":["ghsa","osv"]},{"ecosystem":"npm","package":"@payloadcms/storage-gcs","fixed_in":["3.78.0"],"sources":["ghsa","osv"]},{"ecosystem":"npm","package":"@payloadcms/storage-r2","fixed_in":["3.78.0"],"sources":["ghsa","osv"]},{"ecosystem":"npm","package":"@payloadcms/storage-s3","fixed_in":["3.78.0"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"npm","package":"@payloadcms/storage-azure","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.78.0"}]}]},{"source":"ghsa","ecosystem":"npm","package":"@payloadcms/storage-gcs","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.78.0"}]}]},{"source":"ghsa","ecosystem":"npm","package":"@payloadcms/storage-r2","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.78.0"}]}]},{"source":"ghsa","ecosystem":"npm","package":"@payloadcms/storage-s3","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.78.0"}]}]},{"source":"osv","ecosystem":"npm","package":"@payloadcms/storage-azure","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"3.78.0"}]}]},{"source":"osv","ecosystem":"npm","package":"@payloadcms/storage-gcs","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"3.78.0"}]}]},{"source":"osv","ecosystem":"npm","package":"@payloadcms/storage-r2","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"3.78.0"}]}]},{"source":"osv","ecosystem":"npm","package":"@payloadcms/storage-s3","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"3.78.0"}]}]}],"products":[{"vendor":"payloadcms","product":"payload"}],"references":[{"url":"https://github.com/payloadcms/payload/security/advisories/GHSA-frq9-7j6g-v74x","tags":["x_refsource_CONFIRM","Mitigation","Vendor Advisory","advisory","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-34750","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-frq9-7j6g-v74x"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/34xxx/CVE-2026-34750.json","tags":["advisory"]},{"url":"https://github.com/payloadcms/payload","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2026-34750","title":"Payload has Insufficient Filename Validation in Client-Upload Signed-URL Endpoints","description":"Payload is a free and open source headless content management system. Prior to version 3.78.0 in @payloadcms/storage-azure, @payloadcms/storage-gcs, @payloadcms/storage-r2, and @payloadcms/storage-s3, the client-upload signed-URL endpoints for S3, GCS, Azure, and R2 did not properly sanitize filenames. An attacker could craft filenames to escape the intended storage location. This issue has been patched in version 3.78.0 for @payloadcms/storage-azure, @payloadcms/storage-gcs, @payloadcms/storage-r2, and @payloadcms/storage-s3.","status":"published","published":"2026-04-01T19:51:59.689Z","modified":"2026-04-02T15:33:58.886Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N","level":"medium","assessor":"cna"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T14:20:14.665567Z"}],"euvd":[{"id":"EUVD-2026-18019","description":"Payload is a free and open source headless content management system. Prior to version 3.78.0 in @payloadcms/storage-azure, @payloadcms/storage-gcs, @payloadcms/storage-r2, and @payloadcms/storage-s3, the client-upload signed-URL endpoints for S3, GCS, Azure, and R2 did not properly sanitize filenames. An attacker could craft filenames to escape the intended storage location. This issue has been patched in version 3.78.0 for @payloadcms/storage-azure, @payloadcms/storage-gcs, @payloadcms/storage-r2, and @payloadcms/storage-s3.","status":"published","published":"2026-04-01T19:51:59Z","modified":"2026-04-02T15:33:58Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N","level":"medium"}],"updated_at":"2026-11-02T19:25:22.606516Z"}],"ghsa":[{"id":"GHSA-frq9-7j6g-v74x","title":"Payload has Insufficient Filename Validation in Client-Upload Signed-URL Endpoints","description":"### Impact\n\nThe client-upload signed-URL endpoints for S3, GCS, Azure, and R2 did not properly sanitize filenames. An attacker could craft filenames to escape the intended storage location.\n\nConsumers are affected if ALL of these are true:\n\n- Payload version **\u003c v3.78.0**\n- Using client-upload signed-URL endpoints for any supported storage adapter\n\n  ## Patches\n\nThis vulnerability has been patched in **v3.78.0**. Filename validation has been hardened for client uploads.\n\nConsumers should upgrade to **v3.78.0** or later.\n\n## Workarounds\n\nConsumers can upgrade:\n\n- Limit access to client-upload signed-URL endpoints to trusted users only.","status":"published","published":"2026-04-01T21:44:09Z","modified":"2026-04-01T21:44:10Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N","level":"medium"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T14:39:47.075804Z"}],"nvd":[{"id":"CVE-2026-34750","description":"Payload is a free and open source headless content management system. Prior to version 3.78.0 in @payloadcms/storage-azure, @payloadcms/storage-gcs, @payloadcms/storage-r2, and @payloadcms/storage-s3, the client-upload signed-URL endpoints for S3, GCS, Azure, and R2 did not properly sanitize filenames. An attacker could craft filenames to escape the intended storage location. This issue has been patched in version 3.78.0 for @payloadcms/storage-azure, @payloadcms/storage-gcs, @payloadcms/storage-r2, and @payloadcms/storage-s3.","status":"published","published":"2026-04-01T20:16:27.337Z","modified":"2026-10-25T23:10:00.167Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N","level":"medium","assessor":"secondary"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T14:12:12.73929Z"}],"osv":[{"id":"CVE-2026-34750","title":"Payload has Insufficient Filename Validation in Client-Upload Signed-URL Endpoints","description":"Payload is a free and open source headless content management system. Prior to version 3.78.0 in @payloadcms/storage-azure, @payloadcms/storage-gcs, @payloadcms/storage-r2, and @payloadcms/storage-s3, the client-upload signed-URL endpoints for S3, GCS, Azure, and R2 did not properly sanitize filenames. An attacker could craft filenames to escape the intended storage location. This issue has been patched in version 3.78.0 for @payloadcms/storage-azure, @payloadcms/storage-gcs, @payloadcms/storage-r2, and @payloadcms/storage-s3.","status":"published","published":"2026-04-01T19:51:59.689Z","modified":"2026-10-28T02:30:26.599976697Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N","level":"medium"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T15:45:02.247031Z"},{"id":"GHSA-frq9-7j6g-v74x","title":"Payload has Insufficient Filename Validation in Client-Upload Signed-URL Endpoints","description":"### Impact\n\nThe client-upload signed-URL endpoints for S3, GCS, Azure, and R2 did not properly sanitize filenames. An attacker could craft filenames to escape the intended storage location.\n\nConsumers are affected if ALL of these are true:\n\n- Payload version **\u003c v3.78.0**\n- Using client-upload signed-URL endpoints for any supported storage adapter\n\n  ## Patches\n\nThis vulnerability has been patched in **v3.78.0**. Filename validation has been hardened for client uploads.\n\nConsumers should upgrade to **v3.78.0** or later.\n\n## Workarounds\n\nConsumers can upgrade:\n\n- Limit access to client-upload signed-URL endpoints to trusted users only.","status":"published","published":"2026-04-01T21:44:09Z","modified":"2026-04-01T21:56:20.986235Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N","level":"medium"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T15:46:46.760785Z"}]}}
