Impact
The Cloudflare Access auth provider verifies a token's signature and team issuer, but affected versions do not verify that the token was issued for the Backstage application. A user holding a valid token for another Access application in the same Cloudflare Zero Trust team may therefore be able to authenticate to Backstage if that token reaches the auth endpoint without the Backstage application's audience already being enforced upstream.
Cloudflare Access normally evaluates the protected application before forwarding requests. The reported reproduction exercises the provider directly and does not demonstrate bypass through the ordinary Cloudflare-protected Backstage URL. Relevant deployment topologies include direct origin access, alternate routes around the intended Access application, or another proxy forwarding the assertion unchanged.
A successful sign-in also depends on the deployment's sign-in resolver mapping the presented identity to a Backstage user. The resulting impact depends on the permissions assigned to that identity.
Patches
Upgrade @backstage/plugin-auth-backend-module-cloudflare-access-provider to version 0.5.0 or later. The fixed package is available in Backstage v1.55.0.
This is a breaking configuration change. Before upgrading, set auth.providers.cfaccess.audience to the Audience (AUD) tag for the Backstage application in Cloudflare Zero Trust:
yaml auth: providers: cfaccess: teamName: example audience: ${AUTHCFACCESSAUDIENCE}
Workarounds
- Restrict access to the Backstage auth endpoint to the intended Cloudflare Access application. - Use a custom authenticator that validates the application audience. - Disable the provider until the patched package can be deployed.