GoogleOidcVerifier treats string "false" as a verified email claim
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Anfängerfreundlichkeit
- 82/100
- Issue-Typ
- Bug
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- python
- Bereich
- authentication, security
Rechercherichtung
Beginne in src/google/adk/cli/trigger_routes.py bei GoogleOidcVerifier und untersuche, wie der email_verified-Claim geprüft wird. Reproduziere die aufgeführten booleschen und String-Fälle und bestätige anschließend, dass der Verifier nur einen tatsächlichen True-Wert akzeptiert, während die Prüfung der allowlisteten E-Mail erhalten bleibt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Summary
GoogleOidcVerifier currently checks the email_verified claim using Python truthiness:
if (
not claims.get("email_verified")
or claims.get("email") not in self._allowed_emails
):
A non-empty string such as "false" is truthy in Python, so it passes this check when the email is allowlisted.
Reproduction
Using the same condition as the current verifier:
email_verified=False -> REJECT
email_verified="false" -> ACCEPT
email_verified=True -> ACCEPT
email_verified="" -> REJECT
The relevant implementation is in:
src/google/adk/cli/trigger_routes.py → GoogleOidcVerifier.
Expected behavior
The verifier should require an actual boolean True, for example:
claims.get("email_verified") is True
or otherwise validate the claim type explicitly before trusting it.
Context
This behavior was also publicly noted in google/adk-go commit 490f24cbc3aa7a9f9472175ba0d848530dc5b4f4, which states that ADK Python's truthiness check accepts non-empty strings including "false".
I have not identified a production Google-issued ID-token path that currently emits email_verified as the string "false", so I am reporting this as a correctness / defensive validation issue rather than claiming a demonstrated authentication bypass.
- Vorherrschende Sprache
- Python
- Sterne
- 21.6k
- Forks
- 4k
- Ø Merge
- 6 Std. 56 Min.
- Gemergte PRs (30 T.)
- 7
Entwicklungsumgebung
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus google/adk-python
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
google/adk-python#7292 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
google/adk-python#7282 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
core needs review
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
google/adk-python#7266 · 2 Kommentare · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 1 Tag
-
mcp
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
google/adk-python#7265 · 2 Kommentare · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 1 Tag
-
RestApiTool crashes the agent run on a non-UTF-8 error response body (UnicodeDecodeError in the HTTPStatusError handler)Evtl. vergeben @llalitkumarrr hat das vor 5 Tagen übernommen. Offencore
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
google/adk-python#7206 · 2 Kommentare · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in google/adk-python
Ähnliche Issues
-
documentation
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
kristofdegrave/homeassistant-smart-charging#1413 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
nasa/earthdata-varinfo#113 ·
-
curriculum documentation quality
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
githubnext/gh-aw-workshop#3849 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 90/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 84/100
Maintainer antworten meist innerhalb von 1 Tag