The dashboard blind-spot
// why an external scan matters// THE DASHBOARD SHOWS (WHAT YOU CONFIGURED)
Allowed callback URLs, connections, rules and actions, attack protection, MFA policy — all as you configured them in the tenant.
// IT CAN'T SEE (NEWSCAN DOES)
That confidential-client credentials were shipped to every visitor, that a deployed config still admits localhost, and that once the code has landed on your registered callback, where your code forwards it is entirely your responsibility — and Auth0's allow-list cannot help past that point.
What NewScan records
// proven, then reproducedClient secret in client-side code
CRITICALA client_secret or private key readable in the browser bundle beside confirmed tenant configuration. Auth0 does not issue a secret to a public client, which is precisely why its presence is the finding.
Auth0 configuration exposed
HIGH / MEDIUMA config served anonymously carrying credential material, or a callback/origin allow-list admitting a wildcard or localhost in production. An exact production allow-list is correct and stays silent.
Code issued to an unregistered redirect URI
HIGHThe verified tenant authorization endpoint redirects a code or token to a canary host — the lever behind the Kia dealer-portal and 16-automaker OAuth takeovers.
Callback forwards the code off-origin
HIGHYour own callback takes an attacker-supplied destination and redirects to it carrying the authorization code. An open redirect that forwards no credential is a different, generic class.
What is never flagged
// the false-positive contractA scanner earns its place by what it stays quiet about. These are guarantees, each one asserted by a test that fails the build if it regresses — not best-effort tuning.
client_id, tenant domain, JWKS, RS256 public keys
Public metadata that every correct Auth0 integration publishes. Fingerprint evidence only — never a finding, however many appear together.
A generic /authorize endpoint
Never treated as Auth0. A custom domain is accepted only when its own discovery document identifies Auth0.
Publishing a JWKS endpoint
Correct behaviour, not a vulnerability. The JWT tests stay generic.
Any login, user enumeration, password reset or code redemption
Out of scope. The callback test sends inert synthetic parameters and creates no session.
How it's proved
// training/tech/auth0An Auth0-integrated app plus a local OIDC fixture, and a control publishing the identical client_id, tenant domain, RS256/JWKS document and Universal Login artifacts. The control must score zero.
// FINGERPRINT FIRST
The check is silent unless the product is confirmed by two independent signals. A single, spoofable marker confirms nothing.
// REPRODUCE BEFORE RECORD
Every finding is re-run by our own detector before it is written down. A model's self-assessment is discarded, not merged.
// SEVERITY THAT MAPS
One calibrated severity per finding, translated into PCI DSS, SOC 2, ISO 27001, HITRUST, HIPAA and NIST 800-53 ratings with remediation SLAs.
Run it against your own Auth0
NewScan is free and self-hosted — bring your own key. Every check on this page runs in the deterministic floor with no model and no provider key at all, so scanning your own Auth0 surface is local to you and depends on no hosted resource.