Payload: Incomplete validation during the upload file lifecycle
## Impact Under certain conditions, an authenticated user with permission to modify uploads could cause unintended files to be removed during file cleanup. This may result in data loss or service disruption. You are affected if: - You use Payload upload collections with local file storage. - Untrusted authenticated users can update or delete uploads. Deployments that restrict upload management to trusted users are less exposed. ## Patches Payload now validates uploaded filenames and ensures file cleanup remains within the configured upload directory. Users should upgrade Payload packages to `>= 3.90.0` or `>= 4.0.0-canary.34`. ## Workarounds Restrict upload update and deletion operations to trusted users and validate submitted filenames. These measures are temporary mitigations. Upgrading to a patched version is recommended.
- Products
- payload
- Affected versions
- Not specified
- Fixed versions
- 3.90.0, 4.0.0-canary.34
- CVEs
- CVE-2026-105865
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 28 Oct 2026, 08:48 UTC · Revision 1
Source evidence
Payload: Incomplete validation during the upload file lifecycle
core-osv · Original sourcePublished 7 Oct 2026, 20:29 UTC
## Impact Under certain conditions, an authenticated user with permission to modify uploads could cause unintended files to be removed during file cleanup. This may result in data loss or service disruption. You are affected if: - You use Payload upload collections with local file storage. - Untrusted authenticated users can update or delete uploads. Deployments that restrict upload management to trusted users are less exposed. ## Patches Payload now validates uploaded filenames and ensures file cleanup remains within the configured upload directory. Users should upgrade Payload packages to `>= 3.90.0` or `>= 4.0.0-canary.34`. ## Workarounds Restrict upload update and deletion operations to trusted users and validate submitted filenames. These measures are temporary mitigations. Upgrading to a patched version is recommended.
osv:GHSA-p223-2wr2-j562
payload
Fixed versions: 3.90.0
payload
Fixed versions: 4.0.0-canary.34
Complete source record
{
"id": "4a9953b9d483cc3bdd2e5023d427ede33473af1f4b1df03af0e0f4274413220c",
"url": "https://osv.dev/vulnerability/GHSA-p223-2wr2-j562",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Payload: Incomplete validation during the upload file lifecycle",
"summary": "## Impact Under certain conditions, an authenticated user with permission to modify uploads could cause unintended files to be removed during file cleanup. This may result in data loss or service disruption. You are affected if: - You use Payload upload collections with local file storage. - Untrusted authenticated users can update or delete uploads. Deployments that restrict upload management to trusted users are less exposed. ## Patches Payload now validates uploaded filenames and ensures file cleanup remains within the configured upload directory. Users should upgrade Payload packages to `>= 3.90.0` or `>= 4.0.0-canary.34`. ## Workarounds Restrict upload update and deletion operations to trusted users and validate submitted filenames. These measures are temporary mitigations. Upgrading to a patched version is recommended.",
"evidence": "osv:GHSA-p223-2wr2-j562",
"products": [
{
"name": {
"value": "payload",
"evidence": "/affected/0/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "3.90.0",
"evidence": "/affected/0/ranges"
}
],
"affected_versions": []
},
{
"name": {
"value": "payload",
"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-p223-2wr2-j562",
"aliases": [
"CVE-2026-105865",
"GHSA-p223-2wr2-j562"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H"
}
],
"affected": [
{
"ranges": [
{
"type": "SEMVER",
"events": [
{
"introduced": "0"
},
{
"fixed": "3.90.0"
}
]
}
],
"package": {
"name": "payload",
"purl": "pkg:npm/payload",
"ecosystem": "npm"
},
"database_specific": {
"source": "https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/10/GHSA-p223-2wr2-j562/GHSA-p223-2wr2-j562.json"
}
},
{
"ranges": [
{
"type": "SEMVER",
"events": [
{
"introduced": "4.0.0-canary.0"
},
{
"fixed": "4.0.0-canary.34"
}
]
}
],
"package": {
"name": "payload",
"purl": "pkg:npm/payload",
"ecosystem": "npm"
},
"database_specific": {
"source": "https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/10/GHSA-p223-2wr2-j562/GHSA-p223-2wr2-j562.json"
}
}
],
"modified": "2026-10-07T20:45:06.343437500Z",
"provider": "osv",
"references": [
"https://github.com/payloadcms/payload/security/advisories/GHSA-p223-2wr2-j562",
"https://nvd.nist.gov/vuln/detail/CVE-2026-105865",
"https://github.com/payloadcms/payload/commit/6b74418f628fa633c2f297e5919a9f91b383dc11",
"https://github.com/payloadcms/payload",
"https://github.com/payloadcms/payload/releases/tag/v3.90.0"
],
"provider_metadata": {
"cwe_ids": [
"CWE-22",
"CWE-73"
],
"severity": "HIGH",
"github_reviewed": true,
"nvd_published_at": "2026-10-06T17:17:22Z",
"github_reviewed_at": "2026-10-07T20:29:09Z"
}
},
"related_cves": [
{
"value": "CVE-2026-105865",
"evidence": "/aliases"
}
],
"security_relevant": true,
"severity_evidence": "/database_specific/severity"
},
"source_id": "core-osv",
"document_id": 97271,
"published_at": "2026-10-07T20:29:09+00:00"
}