CWE-295: TLS verification disabled in K8s strategy fallback — verify_none when ca.crt missing, Bearer token exposed
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 78/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Tranquilla
- Stack tecnologico
- elixir, kubernetes
- Ambito
- authentication, backend, security
Direzione di ricerca
Inizia in lib/strategy/kubernetes.ex:323-337, in get_ssl_opts/1, e traccia il percorso con cui le opzioni restituite raggiungono la richiesta HTTP di Kubernetes. Assicurati che il percorso missing-ca.crt non disabiliti più la verifica del certificato, quindi esegui i test pertinenti del progetto per confermare che il fallback mantenga la verifica del peer.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary
The Kubernetes clustering strategy's get_ssl_opts/1 function falls back to verify: :verify_none when the service account's ca.crt file is missing. This means K8s API Bearer tokens are transmitted over TLS connections that accept any certificate.
Vulnerable Code (lib/strategy/kubernetes.ex:323-337)
defp get_ssl_opts(service_account_path) do
path = Path.join(service_account_path, "ca.crt")
case File.exists?(path) do
true -> [verify: :verify_peer, cacertfile: String.to_charlist(path)]
false -> [verify: :verify_none] # ← DANGEROUS FALLBACK
end
end
Credential Flow
verify: :verify_noneis passed as SSL options to:httpc.request()- The K8s service account Bearer token is sent via
Authorization: Bearer {token}header - All K8s API responses (pod lists, ConfigMaps, Secrets) transit over unverified TLS
Impact
MITM attacker can capture the K8s service account token, gaining API access within the cluster — pod enumeration, ConfigMap/Secret access, lateral movement.
Fix
Never fall back to verify_none. Use system CA store instead:
false -> [verify: :verify_peer] # Use system CA, don't disable verification
Severity
CVSS 7.4 (HIGH) — CWE-295: Improper Certificate Validation
- Lingua principale
- Elixir
- Stelle
- 2.2k
- Fork
- 202
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Nessuna 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 bitwalker/libcluster
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 42/100
bitwalker/libcluster#213 ·
-
Gossip Strategy not workingAperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
bitwalker/libcluster#206 · 4 commenti · 1 reazione ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
bitwalker/libcluster#200 ·
-
Changelogs and TagsAperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
bitwalker/libcluster#197 · 1 commento · 3 reazioni ·
-
feature
Difficoltà 3/5 1-2 giorni Idoneità per principianti 38/100
bitwalker/libcluster#191 · 1 commento ·
Tutte le issue di bitwalker/libcluster
Issue simili
-
test(core): vulnerability matcher zero-DB-work test listens on the wrong Repo telemetry eventApertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
carverauto/serviceradar#5264 ·
I maintainer di solito rispondono entro 1 giorno
-
Handle short ciphertext in AES-GCM Decrypt instead of panickingForse già presa @pamod-madubashana l’ha presa 3 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 92/100
semaphoreio/semaphore#1305 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
QuinnWilton/argus#5 · 1 commento ·
-
help-wanted L: docker L: elm L: github:actions L: helm L: ruby:bundler
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
dependabot/dependabot-core#16425 ·
I maintainer di solito rispondono entro 2 giorni
-
Cainophile EXIT handler crashes on its own password redaction and logs the DB password in clear textAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 2 giorni