CTFd 3.7.2

CTFd 3.7.2 has been released with a security fix for a vulnerability where an attacker could extract flags from CTFd provided that an admin interacted with a malicious page.

To mitigate the above vulnerability, CTFd will no longer return 404s in paginated listing pages and API endpoints.

For example,  previously when searching for a user whose name did not exist, if you attempted to browse to the next page, you would receive a 404. Now instead of receiving a 404 you will receive a 200 response with information indicating that a result could not be found.

Similar behavior will also occur with the API. Instead of a 404 response, the API will now respond with a 200 and an empty listing. These were the intended behaviors of the pages and endpoints so we feel that this API change is acceptable given the security risk associated.

As a defense in depth measure, CTFd will  also now add the Cross-Origin-Opener-Policy response header to all responses with the default value of same-origin-allow-popups. This header can be controlled with the newly added  CROSS_ORIGIN_OPENER_POLICY configuration.


Due to the significant amount of admin interaction needed with a malicious page, custom security measures in-place, along with an audit of our traffic logs, we do not believe that any Hosted CTFd customer has been affected by this vulnerability.

For self-hosted users/customers you can determine if you were affected by looking through your logs for significant traffic to the /admin/submissions or /api/v1/submissions endpoints.

If you are unable to easily update your CTFd instance, you can configure your reverse proxy (e.g. nginx) to add the Cross-Origin-Opener-Policy response header with a value of same-origin-allow-popups.

v3.7.2 has already been deployed to Hosted CTFd customers. Self-hosted users can download the latest version of CTFd from Github.