Websocket proxy auth truncates passwords that contain a colon
Les mainteneurs répondent en général sous 1 jour
@Akshaay1 y travaille déjà.
Depuis le 13/10/2026.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 86/100
Piste de recherche
Commencez dans kubernetes/stream/ws_client.py, au niveau de la séparation des identifiants autour de la ligne 602, puis examinez les tests voisins pour websocket_proxycare. Reproduisez le problème avec l’extrait fourni, y compris un password contenant des deux-points et des identifiants mal formés. Le travail est terminé lorsque le password complet est préservé et que les en-têtes mal formés ne déclenchent plus de IndexError non intercepté, avec des tests couvrant les deux cas.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
What happened (please include outputs or screenshots):
While testing an experimental version of Perch, we found the following and figured it was worth a report.
websocket_proxycare splits the decoded proxy-authorization credentials on every : and keeps only the first two parts. A proxy password that contains a colon is cut off, so websocket calls (stream for exec, attach and port-forward) through an authenticated proxy send the wrong password.
import base64
from types import SimpleNamespace
from kubernetes.stream.ws_client import websocket_proxycare
cred = base64.b64encode(b"alice:pa:ss:word").decode()
cfg = SimpleNamespace(no_proxy=None, proxy="http://proxy:3128",
proxy_headers={"proxy-authorization": "Basic " + cred})
print(websocket_proxycare({}, cfg, "wss://h", {})["http_proxy_auth"])
# ('alice', 'pa')
The same code raises IndexError: list index out of range when the header is just Basic, or when the decoded value has no colon.
What you expected to happen:
('alice', 'pa:ss:word'). RFC 7617 allows colons in the password; only the user-id can't contain one.
How to reproduce it (as minimally and precisely as possible):
Run the snippet above against master. No cluster is needed.
Anything else we need to know?:
The split is at kubernetes/stream/ws_client.py:602:
auth = urlsafe_b64decode(b64value).decode().split(':')
connect_opt.update({'http_proxy_auth': (auth[0], auth[1]) })
split(':', 1) would keep the full password.
Environment:
- Kubernetes version (
kubectl version): not needed, no cluster involved - OS (e.g., MacOS 10.13.6): macOS 26.2 (arm64)
- Python version (
python --version): 3.14.2 - Python client version (
pip list | grep kubernetes): 37.0.0+snapshot (master, bb9199f7)
- Langage dominant
- Python
- Étoiles
- 7.7k
- Forks
- 3.5k
- Merge moyen
- 1 j 13 h
- PR mergées (30 j)
- 19
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de kubernetes-client/python
-
getheaders is deprecated in urllib3 >= 2.0.0Peut-être à nouveau libre Une pull request pour cette issue a été fermée sans être fusionnée. Ouvertekind/bug
Difficulté 1/5 Moins d'une heure Accessibilité débutants 68/100
kubernetes-client/python#2280 · 16 commentaires · 9 réactions ·
Les mainteneurs répondent en général sous 1 jour
-
Make async an extraOuvertekind/feature
Difficulté 2/5 1-3 heures Accessibilité débutants 55/100
kubernetes-client/python#2739 ·
Les mainteneurs répondent en général sous 1 jour
-
kind/bug
Difficulté 2/5 1-3 heures Accessibilité débutants 35/100
kubernetes-client/python#2733 · 3 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Growing library sizeOuvertehelp wanted
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 35/100
kubernetes-client/python#2677 · 15 commentaires · 1 réaction ·
Les mainteneurs répondent en général sous 1 jour
-
Add option to disable strict x509 verifcation in sync clientPeut-être pris @Vishwa0223 l’a pris il y a 50 jours. Ouvertehelp wanted kind/feature
kubernetes-client/python#2602 · 6 commentaires · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de kubernetes-client/python
Issues similaires
-
[Bug]: Streamed /v1/chat/completions sends unredacted agent error text (keys) in the final chunkPeut-être pris @rodricksz4h5 l’a pris aujourd’hui. Ouvertearea/streaming comp/gateway P2 type/security
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
NousResearch/hermes-agent#138245 ·
Les mainteneurs répondent en général sous 1 jour
-
[oblt-aw][autodoc] Update user onboarding guide for mandatory trigger CODEOWNERS stepPeut-être pris @github-actions l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 66/100
Les mainteneurs répondent en général sous 1 jour
-
correction metadata
Difficulté 2/5 Moins d'une heure Accessibilité débutants 68/100
acl-org/acl-anthology#10378 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
cloudtrail_multi_region_enabled_logging_management_events fails when the advanced event selector has a custom namePeut-être pris @12YYCCYY16 l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
prowler-cloud/prowler#13033 ·
Les mainteneurs répondent en général sous 1 jour
-
enhancement
Difficulté 1/5 1-3 heures Accessibilité débutants 88/100
graygarbage/HermesKey#23 ·