Security: aucune redirection HTTP vers HTTPS, identifiants transmis en clair (prod incluse)
Constaté en live le 2026-07-26. Dette antérieure au multi-env : la prod est concernée.
Constat
curl -sS -o /dev/null -w '%{http_code}\n' http://api.devopsyouss.com/healthz/ready
200
curl -sS -o /dev/null -w '%{http_code}\n' http://dev.api.devopsyouss.com/healthz/ready
200Aucune redirection HTTP vers HTTPS nulle part dans le repo : pas de RequestRedirect, pas de ClientTrafficPolicy, et aucun sectionName sur les HTTPRoutes. Chaque route s'attache donc aux deux listeners du Gateway, le :80 comme le :443 (k8s/platform/gateway.yaml:55-75).
Pourquoi c'est une faille et pas juste une négligence
POST /login prend username + password via OAuth2PasswordRequestForm et renvoie un JWT bearer (app/routers/auth.py:9-28). Sur http://, les identifiants et le token transitent en clair. CWE-319, Cleartext Transmission of Sensitive Information.
Le TLS existe et fonctionne sur les endpoints à un niveau de sous-domaine, mais rien n'oblige le client à l'emprunter.
Done when
- Le port 80 ne sert plus de trafic applicatif : soit
sectionName: httpssur les HTTPRoutes, soit unRequestRedirect301 sur le listener:80 - Vérifié au préalable que rien de légitime n'utilise le port 80 — les certificats passent par DNS-01 (
k8s/platform/certificate.yaml), donc a priori aucun challenge HTTP-01 à préserver - Test négatif au runbook :
curl -sS -o /dev/null -w '%{http_code}' http://api.devopsyouss.com/renvoie 301, et leLocationest bien enhttps:// - HSTS envisagé une fois la redirection en place (à trancher, pas forcément dans cette issue)