JWT header parameter injections (jku injection)
{
"keys": [
{ "kty": "RSA", "e": "AQAB", "kid": "75d0ef47-...", "n": "o-yy1wpY..." },
{ "kty": "RSA", "e": "AQAB", "kid": "d8fDFo-...", "n": "fc3f-yy1w..." }
]
}Last updated
JWT header says: "jku": "https://attacker.com/jwks.json"
│
▼
Server makes an HTTP GET request to that URL
│
▼
Response body = the JWK Set JSON (the array of keys)
│
▼
Server picks the key from that array matching the token's `kid`
│
▼
Uses that key to verify the JWT's signature