google-auth: Thread safety race condition during 401 client certificate rotation in transports
I maintainer di solito rispondono entro 1 giorno
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 72/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Tranquilla
- Stack tecnologico
- python
- Ambito
- networking, security
Direzione di ricerca
Inizia in google.auth.transport.requests e google.auth.transport.urllib3, concentrandoti sui gestori del trasporto HTTP che chiamano configure_mtls_channel dopo una risposta 401. Traccia i percorsi di riconfigurazione di shared-session e pool-manager, quindi verifica che le rotazioni concorrenti dei certificati siano serializzate e che non avvenga simultaneamente alcuna mutazione di adapter o pool-manager.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
When handling 401 Unauthorized responses, the HTTP transport interceptors in google.auth.transport.requests and google.auth.transport.urllib3 attempt to auto-rotate expired mTLS client certificates by calling configure_mtls_channel().
In multi-threaded environments, if multiple threads share an authorized session and hit a 401 concurrently, they will trigger the certificate rotation at the same time. Because there is no synchronization lock, this leads to race conditions. Multiple threads will redundantly read the updated certificates and concurrently mutate the underlying session's adapter mappings (requests.Session.adapters) or pool managers, which is not thread-safe and can cause runtime exceptions.
We should introduce a lock (e.g., using threading.Lock) around the configure_mtls_channel reconfiguration block inside the transport handlers to ensure that certificate rotation is performed serially.
- Lingua principale
- Python
- Stelle
- 5.4k
- Fork
- 1.8k
- Merge medio
- 2g 10h
- PR unite (30g)
- 121
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di googleapis/google-cloud-python
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
googleapis/google-cloud-python#18532 ·
I maintainer di solito rispondono entro 1 giorno
-
auth: call_client_cert_callback() discards passphrase for encrypted keysForse già presa @kwy404 l’ha presa 5 giorni fa. Aperta
Difficoltà 1/5 1-3 ore Idoneità per principianti 92/100
googleapis/google-cloud-python#18467 ·
I maintainer di solito rispondono entro 1 giorno
-
auth: `impersonated_credentials` loses `subject` on copy, so `with_scopes()` and `with_quota_project()` turn off domain wide delegationForse già presa @Om-singhaI l’ha presa 16 giorni fa. Apertaauth priority: p2 type: bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
googleapis/google-cloud-python#18428 ·
I maintainer di solito rispondono entro 1 giorno
-
priority: p2 type: bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
googleapis/google-cloud-python#18375 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
ci: enable --strict flag in presubmit twine_checkForse già presa @ohmayr l’ha presa 5 giorni fa. Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 76/100
googleapis/google-cloud-python#18339 · 1 commento · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di googleapis/google-cloud-python
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 3 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
modelcontextprotocol/python-sdk#3648 ·
I maintainer di solito rispondono entro 1 giorno
-
docs good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
VenetoStato/giorgio#6 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
I maintainer di solito rispondono entro 1 giorno
-
Claiming namespace ddalusAperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 70/100
EclipseFdn/open-vsx.org#13831 ·
I maintainer di solito rispondono entro 1 giorno