Skip to content

Commit 00b72e3

Browse files
committed
Also make sure audience claims in token contain only strings
The spec mandates that the audience claims must be strings (or a single string). Without this check, an `audience=None` argument to decode() would succeeed when the token contained a claim like ['urn:foo', null].
1 parent 2b122ea commit 00b72e3

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

jwt/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -434,6 +434,8 @@ def verify_signature(payload, signing_input, header, signature, key='',
434434
audience_claims = [audience_claims]
435435
if not isinstance(audience_claims, list):
436436
raise InvalidAudienceError('Invalid claim format in token')
437+
if any(not isinstance(c, basestring) for c in audience_claims):
438+
raise InvalidAudienceError('Invalid claim format in token')
437439
if audience not in audience_claims:
438440
raise InvalidAudienceError('Invalid audience')
439441
elif audience is not None:

0 commit comments

Comments
 (0)