A vulnerability has been found in CTFd up to 3.8.4. The affected element is the function _is_safe_url of the file CTFd/utils/validators/__init__.py. Such manipulation of the argument Next leads to open redirect. The attack can be launched remotely. The exploit has been disclosed to the public and may be used. The name of the patch is 5d8515842fd1ab2c3a9f2dde9ffca907aa334ea9. Upgrading the affected component is recommended.
PUBLISHED5.2ApplicationCWE-601x_open-source
CTFd __init__.py _is_safe_url redirect
Problem type
Affected products
CTFd
3.8.0 - AFFECTED
3.8.1 - AFFECTED
3.8.2 - AFFECTED
3.8.3 - AFFECTED
3.8.4 - AFFECTED
References
VDB-394533 | CTFd __init__.py _is_safe_url redirect
https://vuldb.com/vuln/394533
VDB-394533 | CTI Indicators (IOB, IOC, TTP, IOA)
https://vuldb.com/vuln/394533/cti
CVE-2026-78145 | CVE Analysis and Report
https://vuldb.com/cve/CVE-2026-78145
Submit #882469 | CTFd https://github.com/CTFd/CTFd v3.8.4 Open Redirect
https://vuldb.com/submit/882469
mblunt.dev
https://mblunt.dev/writeups/ctfd-open-redirect/
github.com
https://github.com/CTFd/CTFd/pull/3026
github.com
https://github.com/CTFd/CTFd/commit/5d8515842fd1ab2c3a9f2dde9ffca907aa334ea9
github.com
https://github.com/CTFd/CTFd/releases/tag/3.8.4
github.com
https://github.com/CTFd/CTFd/
JSON source
https://cveawg.mitre.org/api/cve/CVE-2026-78145Click to expand
{
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"cveMetadata": {
"cveId": "CVE-2026-78145",
"assignerOrgId": "1af790b2-7ee1-4545-860a-a788eba489b5",
"assignerShortName": "VulDB",
"dateUpdated": "2026-08-23T22:45:11.793Z",
"dateReserved": "2026-08-23T06:27:57.055Z",
"datePublished": "2026-08-23T22:45:11.793Z",
"state": "PUBLISHED"
},
"containers": {
"cna": {
"providerMetadata": {
"orgId": "1af790b2-7ee1-4545-860a-a788eba489b5",
"shortName": "VulDB",
"dateUpdated": "2026-08-23T22:45:11.793Z"
},
"title": "CTFd __init__.py _is_safe_url redirect",
"descriptions": [
{
"lang": "en",
"value": "A vulnerability has been found in CTFd up to 3.8.4. The affected element is the function _is_safe_url of the file CTFd/utils/validators/__init__.py. Such manipulation of the argument Next leads to open redirect. The attack can be launched remotely. The exploit has been disclosed to the public and may be used. The name of the patch is 5d8515842fd1ab2c3a9f2dde9ffca907aa334ea9. Upgrading the affected component is recommended."
}
],
"affected": [
{
"vendor": "n/a",
"product": "CTFd",
"cpes": [
"cpe:2.3:a:ctfd:ctfd:*:*:*:*:*:*:*:*"
],
"versions": [
{
"version": "3.8.0",
"status": "affected"
},
{
"version": "3.8.1",
"status": "affected"
},
{
"version": "3.8.2",
"status": "affected"
},
{
"version": "3.8.3",
"status": "affected"
},
{
"version": "3.8.4",
"status": "affected"
}
]
}
],
"problemTypes": [
{
"descriptions": [
{
"lang": "en",
"description": "Open Redirect",
"cweId": "CWE-601",
"type": "CWE"
}
]
}
],
"references": [
{
"url": "https://vuldb.com/vuln/394533",
"name": "VDB-394533 | CTFd __init__.py _is_safe_url redirect",
"tags": [
"vdb-entry",
"technical-description"
]
},
{
"url": "https://vuldb.com/vuln/394533/cti",
"name": "VDB-394533 | CTI Indicators (IOB, IOC, TTP, IOA)",
"tags": [
"signature",
"permissions-required"
]
},
{
"url": "https://vuldb.com/cve/CVE-2026-78145",
"name": "CVE-2026-78145 | CVE Analysis and Report",
"tags": [
"third-party-advisory"
]
},
{
"url": "https://vuldb.com/submit/882469",
"name": "Submit #882469 | CTFd https://github.com/CTFd/CTFd v3.8.4 Open Redirect",
"tags": [
"third-party-advisory"
]
},
{
"url": "https://mblunt.dev/writeups/ctfd-open-redirect/",
"tags": [
"exploit"
]
},
{
"url": "https://github.com/CTFd/CTFd/pull/3026",
"tags": [
"issue-tracking",
"patch"
]
},
{
"url": "https://github.com/CTFd/CTFd/commit/5d8515842fd1ab2c3a9f2dde9ffca907aa334ea9",
"tags": [
"patch"
]
},
{
"url": "https://github.com/CTFd/CTFd/releases/tag/3.8.4",
"tags": [
"patch"
]
},
{
"url": "https://github.com/CTFd/CTFd/",
"tags": [
"product"
]
}
],
"metrics": [
{},
{
"cvssV3_1": {
"version": "3.1",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N/E:P/RL:O/RC:C",
"baseScore": 4.3,
"baseSeverity": "MEDIUM"
}
},
{
"cvssV3_0": {
"version": "3.0",
"vectorString": "CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N/E:P/RL:O/RC:C",
"baseScore": 4.3,
"baseSeverity": "MEDIUM"
}
},
{
"cvssV2_0": {
"version": "2.0",
"vectorString": "AV:N/AC:L/Au:N/C:N/I:P/A:N/E:POC/RL:OF/RC:C",
"baseScore": 5
}
}
],
"timeline": [
{
"time": "2026-08-23T00:00:00.000Z",
"lang": "en",
"value": "Advisory disclosed"
},
{
"time": "2026-08-23T02:00:00.000Z",
"lang": "en",
"value": "VulDB entry created"
},
{
"time": "2026-08-23T08:33:02.000Z",
"lang": "en",
"value": "VulDB entry last update"
}
],
"credits": [
{
"lang": "en",
"value": "mblunt (VulDB User)",
"type": "reporter"
}
],
"tags": [
"x_open-source"
]
}
}
}