Payload has Server-Side Request Forgery (SSRF) in External File URL Uploads
Payload is a free and open source headless content management system. Prior to 3.75.0, a Server-Side Request Forgery (SSRF) vulnerability exists in Payload's external file upload functionality. When processing external URLs for file uploads, insufficient validation of HTTP redirects could allow an authenticated attacker to access internal network resources. The Payload environment must have at least one collection with `upload` enabled and a user who has `create` access to that upload-enabled collection in order to be vulnerable. An authenticated user with upload collection write permissions could potentially access internal services. Response content from internal services could be retrieved through the application. This vulnerability has been patched in v3.75.0. As a workaround, one may mitigate this vulnerability by disabling external file uploads via the `disableExternalFile` upload collection option, or by restricting `create` access on upload-enabled collections to trusted users only.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-27567
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 7 Nov 2026, 19:15 UTC · Revision 1
Source evidence
Payload has Server-Side Request Forgery (SSRF) in External File URL Uploads
core-osv · Original sourcePublished 24 Feb 2026, 14:22 UTC
Payload is a free and open source headless content management system. Prior to 3.75.0, a Server-Side Request Forgery (SSRF) vulnerability exists in Payload's external file upload functionality. When processing external URLs for file uploads, insufficient validation of HTTP redirects could allow an authenticated attacker to access internal network resources. The Payload environment must have at least one collection with `upload` enabled and a user who has `create` access to that upload-enabled collection in order to be vulnerable. An authenticated user with upload collection write permissions could potentially access internal services. Response content from internal services could be retrieved through the application. This vulnerability has been patched in v3.75.0. As a workaround, one may mitigate this vulnerability by disabling external file uploads via the `disableExternalFile` upload collection option, or by restricting `create` access on upload-enabled collections to trusted users only.
osv:CVE-2026-27567
Complete source record
{
"id": "4e6dc3a37166d0d1a665e6a2616b6a2b91a4e4b5738b6016d5b8905537c16119",
"url": "https://osv.dev/vulnerability/CVE-2026-27567",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Payload has Server-Side Request Forgery (SSRF) in External File URL Uploads",
"summary": "Payload is a free and open source headless content management system. Prior to 3.75.0, a Server-Side Request Forgery (SSRF) vulnerability exists in Payload's external file upload functionality. When processing external URLs for file uploads, insufficient validation of HTTP redirects could allow an authenticated attacker to access internal network resources. The Payload environment must have at least one collection with `upload` enabled and a user who has `create` access to that upload-enabled collection in order to be vulnerable. An authenticated user with upload collection write permissions could potentially access internal services. Response content from internal services could be retrieved through the application. This vulnerability has been patched in v3.75.0. As a workaround, one may mitigate this vulnerability by disabling external file uploads via the `disableExternalFile` upload collection option, or by restricting `create` access on upload-enabled collections to trusted users only.",
"evidence": "osv:CVE-2026-27567",
"products": [],
"severity": "medium",
"structured": {
"id": "CVE-2026-27567",
"aliases": [
"CVE-2026-27567",
"GHSA-hhfx-5x8j-f5f6"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:N"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/payloadcms/payload",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "00e2ffb18771ef12945ed728a7bcc92492a4da04"
},
{
"fixed": "1041bb6"
}
],
"database_specific": {
"extracted_events": [
{
"cpe": "cpe:2.3:a:payloadcms:payload:*:*:*:*:*:node.js:*:*",
"range": [
{
"introduced": "0"
},
{
"fixed": "3.75.0"
}
],
"source": "CPE_RANGE"
},
{
"range": [
{
"fixed": "1041bb6"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "00e2ffb18771ef12945ed728a7bcc92492a4da04"
}
],
"source": "REFERENCES_TAG",
"original_tag": "v3.75.0"
}
]
}
}
],
"versions": [
"v3.74.0",
"v3.73.0",
"v3.72.0",
"v3.71.1",
"v3.71.0",
"v3.70.0",
"v3.69.0",
"v3.68.5",
"v3.68.4",
"v3.68.3",
"v3.68.2",
"v3.68.1",
"v3.68.0",
"v3.67.0",
"v3.66.0",
"v3.65.0",
"v3.64.0",
"v3.63.0",
"v3.62.0",
"v3.61.1",
"v3.61.0",
"v3.60.0",
"v3.59.1",
"v3.59.0",
"v3.58.0",
"v3.57.0",
"v3.56.0",
"v3.55.1",
"v3.55.0",
"v3.54.0",
"v3.50.0",
"v3.5.0",
"v3.53.0",
"v3.52.0",
"v3.51.0",
"v3.49.1",
"v3.49.0",
"v3.48.0",
"v3.47.0",
"v3.46.0",
"v3.45.0",
"v3.44.0",
"v3.43.0",
"v3.42.0",
"v3.41.0",
"v3.40.0",
"v3.39.1",
"v3.39.0",
"v3.38.0",
"v3.37.0",
"v3.36.1",
"v3.36.0",
"v3.35.1",
"v3.35.0",
"v3.34.0",
"v3.33.0",
"v3.32.0",
"v3.31.0",
"v3.30.0",
"v3.29.0",
"v3.28.1",
"eslint/3.28.0",
"v3.28.0",
"v3.27.0",
"v3.26.0",
"v3.25.0",
"v3.24.0",
"v3.23.0",
"v3.22.0",
"v3.21.0",
"v3.20.0",
"v3.19.0",
"v3.18.0",
"v3.17.1",
"v3.17.0",
"v3.16.0",
"v3.15.1",
"v3.15.0",
"v3.14.0",
"v3.13.0",
"v3.12.0",
"v3.11.0",
"v3.10.0",
"eslint/3.9.0",
"v3.9.0",
"v3.8.0",
"v3.7.0",
"v3.6.0",
"v3.4.0",
"v3.3.0",
"v3.2.2",
"v3.2.1",
"v3.2.0",
"v3.1.1",
"v3.1.0",
"v3.0.2",
"v3.0.1",
"eslint/3.0.0",
"v3.0.0",
"v3.0.0-beta.135",
"v3.0.0-beta.134",
"v3.0.0-beta.133",
"v3.0.0-beta.132",
"v3.0.0-beta.131",
"v3.0.0-beta.130",
"v3.0.0-beta.129",
"v3.0.0-beta.128",
"v3.0.0-beta.127",
"v3.0.0-beta.126",
"v3.0.0-beta.125",
"v3.0.0-beta.124",
"v3.0.0-beta.123",
"v3.0.0-beta.122",
"v3.0.0-beta.121",
"v3.0.0-beta.120",
"v3.0.0-beta.119",
"v3.0.0-beta.118",
"v3.0.0-beta.117",
"v3.0.0-beta.116",
"v3.0.0-beta.114",
"v3.0.0-beta.113",
"v3.0.0-beta.112",
"v3.0.0-beta.111",
"v3.0.0-beta.110",
"v3.0.0-beta.109",
"v3.0.0-beta.108",
"v3.0.0-beta.107",
"v3.0.0-beta.106",
"v3.0.0-beta.105",
"v3.0.0-beta.104",
"v3.0.0-beta.103",
"v3.0.0-beta.102",
"v3.0.0-beta.101",
"v3.0.0-beta.100",
"v3.0.0-beta.99",
"v3.0.0-beta.98",
"eslint/3.0.0-beta.97",
"v3.0.0-beta.97",
"v3.0.0-beta.95",
"v3.0.0-beta.96",
"v3.0.0-beta.94",
"v3.0.0-beta.93",
"v3.0.0-beta.92",
"v3.0.0-beta.91",
"v3.0.0-beta.90",
"v3.0.0-beta.89",
"v3.0.0-beta.88",
"v3.0.0-beta.87",
"v3.0.0-beta.86",
"v3.0.0-beta.85",
"v3.0.0-beta.84",
"v3.0.0-beta.83",
"v3.0.0-beta.82",
"v3.0.0-beta.81",
"v3.0.0-beta.80",
"v3.0.0-beta.79",
"v3.0.0-beta.78",
"v3.0.0-beta.77",
"v3.0.0-beta.76",
"v3.0.0-beta.75",
"v3.0.0-beta.74",
"v3.0.0-beta.73",
"v3.0.0-beta.72",
"v3.0.0-beta.71",
"v3.0.0-beta.70",
"v3.0.0-beta.69",
"v3.0.0-beta.68",
"v3.0.0-beta.67",
"v3.0.0-beta.66",
"v3.0.0-beta.65",
"v3.0.0-beta.64",
"v3.0.0-beta.63",
"v3.0.0-beta.62",
"v3.0.0-beta.61",
"v3.0.0-beta.60",
"eslint/3.0.0-beta.59",
"v3.0.0-beta.59",
"v3.0.0-beta.58",
"v3.0.0-beta.57",
"v3.0.0-beta.56",
"v3.0.0-beta.55",
"v3.0.0-beta.54",
"v3.0.0-beta.53",
"v3.0.0-beta.52",
"v3.0.0-beta.51",
"v3.0.0-beta.50",
"v3.0.0-beta.49",
"v3.0.0-beta.48",
"v3.0.0-beta.47",
"v3.0.0-beta.45",
"v3.0.0-beta.44",
"v3.0.0-beta.43",
"v3.0.0-beta.42",
"v3.0.0-beta.39",
"v3.0.0-beta.37",
"v3.0.0-beta.35",
"v3.0.0-beta.33",
"v3.0.0-beta.32",
"v3.0.0-beta.31",
"v3.0.0-beta.30",
"v3.0.0-beta.29",
"v3.0.0-beta.26",
"v3.0.0-beta.28",
"v3.0.0-beta.27",
"v3.0.0-beta.25",
"v3.0.0-beta.24",
"v3.0.0-beta.23",
"3.0.0-beta.23",
"v3.0.0-beta.22",
"3.0.0-beta.22",
"v3.0.0-beta.21",
"v3.0.0-beta.20",
"v3.0.0-beta.19",
"v3.0.0-beta.18",
"v3.0.0-beta.15",
"v3.0.0-beta.14",
"v3.0.0-beta.13",
"v3.0.0-beta.10",
"v3.0.0-beta.9",
"v3.0.0-beta.6",
"v3.0.0-beta.4",
"v3.0.0-beta.5",
"v3.0.0-beta.3",
"v3.0.0-beta.2",
"v3.0.0-beta.1",
"v3.0.0-beta.0",
"v3.0.0-alpha.59",
"v3.0.0-alpha.58",
"v3.0.0-alpha.57",
"v3.0.0-alpha.55",
"v3.0.0-alpha.54",
"v3.0.0-alpha.53",
"v3.0.0-alpha.52",
"v3.0.0-alpha.50",
"v3.0.0-alpha.49",
"v3.0.0-alpha.46",
"v3.0.0-alpha.45",
"v3.0.0-alpha.41",
"v3.0.0-alpha.40",
"v3.0.0-alpha.39",
"v3.0.0-alpha.37",
"v3.0.0-alpha.35",
"v3.0.0-alpha.30",
"v3.0.0-alpha.29",
"v3.0.0-alpha.25",
"v3.0.0-alpha.23",
"v3.0.0-alpha.22",
"v3.0.0-alpha.19",
"v3.0.0-alpha.18",
"v3.0.0-alpha.16",
"v3.0.0-alpha.15",
"v3.0.0-alpha.14",
"v3.0.0-alpha.12",
"bundler-webpack/1.0.5",
"richtext-slate/1.1.0",
"richtext-lexical/0.1.16",
"db-postgres/0.1.11",
"db-mongodb/1.0.5",
"v2.0.14",
"payload/2.0.14",
"plugin-stripe/0.0.16",
"plugin-cloud/2.2.6",
"v2.0.13",
"payload/2.0.13",
"richtext-slate/1.0.7",
"richtext-lexical/0.1.15",
"v2.0.12",
"payload/2.0.12",
"live-preview-react/0.1.5",
"live-preview/0.1.5",
"richtext-lexical/0.1.14",
"db-postgres/0.1.10",
"db-mongodb/1.0.4",
"bundler-webpack/1.0.4",
"bundler-vite/0.1.3",
"v2.0.11",
"payload/2.0.11",
"v2.0.10",
"payload/2.0.10",
"v2.0.9",
"live-preview-react/0.1.4",
"richtext-lexical/0.1.13",
"live-preview/0.1.4",
"v2.0.8",
"create-payload-app/1.0.0",
"richtext-slate/1.0.6",
"richtext-lexical/0.1.12",
"plugin-nested-docs/1.0.8",
"db-postgres/0.1.8",
"v2.0.7",
"payload/2.0.7",
"db-postgres/0.1.7",
"@payloadcms/db-postgres/0.1.7",
"richtext-lexical/0.1.10",
"richtext-slate/1.0.5",
"v2.0.6",
"payload/2.0.6",
"richtext-lexical/0.1.9",
"richtext-slate/1.0.4",
"db-postgres/0.1.5",
"richtext-lexical/0.1.5",
"v2.0.4",
"payload/2.0.4",
"db-mongodb/1.0.3",
"db-postgres/0.1.3",
"live-preview-react/0.1.2",
"live-preview/0.1.2",
"v2.0.3",
"payload/2.0.3",
"bundler-vite/0.1.2",
"v2.0.2",
"v2.0.0",
"v1.9.1",
"v1.8.4-canary.2",
"v1.8.4",
"v1.8.4-canary.4",
"v1.8.4-canary.3",
"v1.8.4-canary.1",
"v1.8.4-canary.0",
"v1.8.3",
"v1.8.3-canary.2",
"v1.8.3-canary.1",
"v1.8.2",
"v1.8.1",
"v1.8.0",
"v1.7.4",
"v1.7.3",
"v1.7.2",
"v1.6.22",
"v1.6.21",
"v1.6.20",
"v1.6.19",
"v1.6.18",
"v1.6.17",
"v1.6.15",
"v1.6.14",
"v1.6.13",
"v1.6.12",
"v1.6.11",
"v1.6.10",
"v1.6.9",
"v1.6.7",
"v1.6.6",
"v1.6.5",
"v1.6.4",
"v1.6.3",
"v1.6.2",
"v1.6.1",
"v1.5.9",
"v1.5.6",
"v1.5.8",
"v1.5.7",
"v1.5.5",
"v1.5.4",
"v1.5.3",
"v1.5.2",
"v1.5.1",
"v1.5.0",
"v1.4.2",
"v1.4.1",
"v1.4.0",
"v1.3.3",
"v1.3.4",
"v1.3.2",
"v1.3.1",
"v1.3.0",
"v1.2.5",
"v1.2.3",
"v1.2.4",
"v1.2.2",
"v1.2.1",
"v1.2.0",
"v1.1.26",
"v1.1.25",
"v1.1.24",
"v1.1.23",
"v1.1.22",
"v1.1.21",
"v1.1.20",
"v1.1.19",
"v1.1.18",
"v1.1.17",
"v1.1.16",
"v1.1.15",
"v1.1.14",
"v1.1.13",
"v1.1.11",
"v1.1.10",
"v1.1.9",
"v1.1.8",
"v1.1.7",
"v1.1.6",
"v1.1.5",
"v1.1.4",
"v1.0.36",
"v1.0.35",
"v1.0.34",
"v1.0.33",
"v1.0.30",
"v1.0.29",
"v1.0.28",
"v1.0.27",
"v1.0.26",
"v1.0.25",
"v1.0.24",
"v1.0.23",
"v1.0.22",
"v1.0.21",
"v1.0.20",
"v1.0.19",
"v1.0.18",
"v1.0.17",
"v1.0.16",
"v1.0.15",
"v1.0.14",
"v1.0.13",
"v1.0.12",
"v1.0.10",
"v1.0.9",
"v1.0.8",
"v1.0.7",
"v1.0.6",
"v1.0.5",
"v1.0.4",
"v0.20.1",
"v0.19.2",
"v0.18.5",
"v0.18.4",
"v0.18.3",
"v0.18.2",
"v0.18.1",
"v0.18.0",
"v0.17.3",
"v0.17.2",
"v0.17.1",
"v0.17.0",
"v0.16.4",
"v0.16.3",
"v0.16.2",
"v0.16.1",
"v0.15.13",
"v0.15.12",
"v0.15.11",
"v0.15.10",
"v0.15.9",
"v0.15.8",
"v0.15.7",
"v0.15.6",
"v0.15.5",
"v0.15.4",
"v0.15.3",
"v0.15.2",
"v0.15.1",
"v0.15.0",
"v0.14.0",
"v0.13.6",
"v0.13.5",
"v0.13.4",
"v0.13.3",
"v0.13.2",
"v0.13.1",
"v0.13.0",
"v0.12.3",
"v0.12.2",
"v0.12.1",
"v0.12.0",
"v0.11.0",
"v0.10.11",
"v0.10.10",
"v0.10.7",
"v0.7.6",
"v0.7.5",
"v0.7.4",
"v0.7.3",
"v0.7.2",
"v0.6.10",
"v0.6.9",
"v0.6.8",
"v0.6.7",
"v0.6.6",
"v0.6.5",
"v0.6.4",
"v0.6.3",
"v0.6.2",
"v0.6.1",
"v0.6.0",
"v0.5.10",
"v0.5.9",
"v0.5.8",
"v0.5.7",
"v0.3.0",
"v0.2.13",
"v0.2.12",
"v0.2.11",
"v0.2.10",
"v0.2.9",
"v0.2.8",
"v0.2.6",
"v0.2.5",
"v0.2.4",
"v0.2.3",
"v0.2.2",
"v0.2.0",
"v0.1.146",
"v0.1.145",
"v0.1.144",
"v0.1.143",
"v0.1.142",
"v0.1.141",
"v0.1.140",
"v0.1.139",
"v0.1.138",
"v0.1.127",
"v0.1.126",
"v0.1.125",
"v0.1.124",
"v0.1.123",
"v0.1.122",
"v0.1.121",
"v0.1.20",
"v0.1.19",
"v0.1.18",
"v0.1.17",
"v0.1.16",
"v0.0.141",
"v0.0.140",
"v0.0.139",
"v0.0.138",
"v0.0.137",
"v0.0.136",
"v0.0.135",
"v0.0.134",
"v0.0.133",
"v0.0.132",
"v0.0.131",
"v0.0.130",
"v0.0.129",
"v0.0.128",
"v0.0.126",
"v0.0.125",
"v0.0.124",
"v0.0.123",
"v0.0.122",
"v0.0.121",
"v0.0.120",
"v0.0.119",
"v0.0.118",
"v0.0.117",
"v0.0.116",
"v0.0.115",
"v0.0.114",
"v0.0.113",
"v0.0.112",
"v0.0.111",
"v0.0.110",
"v0.0.109",
"v0.0.108",
"v0.0.107",
"v0.0.106",
"v0.0.105",
"v0.0.104",
"v0.0.103",
"v0.0.102",
"v0.0.101",
"v0.0.99",
"v0.0.98",
"v0.0.97",
"v0.0.96",
"v0.0.95",
"v0.0.94",
"v0.0.93",
"v0.0.92",
"v0.0.91",
"v0.0.90",
"v0.0.89",
"v0.0.88",
"v0.0.87",
"v0.0.86",
"v0.0.85",
"v0.0.84",
"v0.0.83",
"v0.0.82",
"v0.0.81",
"v0.0.80",
"v0.0.79",
"v0.0.78",
"v0.0.77",
"v0.0.76",
"v0.0.75",
"v0.0.74",
"v0.0.73",
"v0.0.72",
"v0.0.71",
"v0.0.70",
"v0.0.69",
"v0.0.68",
"v0.0.67",
"v0.0.66",
"v0.0.65",
"v0.0.64",
"v0.0.63",
"v0.0.62",
"v0.0.61",
"v0.0.60",
"v0.0.59",
"v0.0.58",
"v0.0.57",
"v0.0.56",
"v0.0.55",
"v0.0.54",
"v0.0.53",
"v0.0.52",
"v0.0.51",
"v0.0.50",
"v0.0.49",
"v0.0.48",
"v0.0.47",
"v0.0.46",
"v0.0.45",
"v0.0.44",
"v0.0.43",
"v0.0.42",
"v0.0.41",
"v0.0.40",
"v0.0.39",
"v0.0.38",
"v0.0.37",
"v0.0.36",
"v0.0.35",
"v0.0.34",
"v0.0.33",
"v0.0.32",
"v0.0.31",
"v0.0.30",
"v0.0.29",
"v0.0.28",
"v0.0.24",
"v0.0.27",
"v0.0.26",
"v0.0.22",
"v0.0.21",
"v0.0.20",
"v0.0.19",
"v0.0.18",
"v0.0.17",
"v0.0.16",
"v0.0.15",
"v0.0.14",
"v0.0.13",
"v0.0.12",
"v0.0.11",
"v0.0.10",
"v0.0.9",
"v0.0.8",
"v0.0.7",
"v0.0.6",
"v0.0.5",
"v0.0.4",
"v0.0.3",
"v0.0.2"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-27567.json"
}
}
],
"modified": "2026-10-28T02:30:51.773399976Z",
"provider": "osv",
"references": [
"https://github.com/payloadcms/payload/releases/tag/v3.75.0",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/27xxx/CVE-2026-27567.json",
"https://github.com/payloadcms/payload/security/advisories/GHSA-hhfx-5x8j-f5f6",
"https://nvd.nist.gov/vuln/detail/CVE-2026-27567",
"https://github.com/payloadcms/payload/commit/1041bb6"
],
"provider_metadata": {
"cwe_ids": [
"CWE-918"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/27xxx/CVE-2026-27567.json"
}
},
"related_cves": [
{
"value": "CVE-2026-27567",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 520199,
"published_at": "2026-02-24T14:22:37.803+00:00"
}