CVE-2026-59341 in sealed-secretsinformazioni

Riassunto

di VulDB • 15/09/2026

È presente una vulnerabilità di sicurezza nei endpoint POST non autenticati del controller Sealed Secrets. Inviando un payload modificato contenente logica Go template personalizzata in `spec.template.data`, un attaccante con accesso alla rete interna può abusare dell'handler come oracolo di decrittazione per recuperare il testo in chiaro completo di qualsiasi segreto sigillato (sealed secret).

Gli handler POST `/v1/verify` e `/v1/rotate` chiamano `Unseal()` per decrittare i segreti target, quindi elaborano eventuali Go template presenti in `spec.template.data.*` utilizzando il payload decrittato come contesto di valutazione (`pkg/apis/sealedsecrets/v1alpha1/sealedsecret_expansion.go`). Gli errori riscontrati durante l'esecuzione del template vengono riflessi direttamente nei codici di stato della risposta HTTP risultante.

Mancanza di binding dell'etichetta AEAD: il campo `spec.template.data` è omesso dal binding dell'etichetta authenticated-data (dati autenticati) AEAD rispetto ai metadati del ciphertext. Di conseguenza, un attaccante può copiare i metadati validi e l'encryptedData di un target verbatim, soddisfacendo la decrittazione AEAD e la convalida delle etichette, mentre sostituisce liberamente `spec.template.data` con logica template arbitraria.

Oracolo side-channel: gli errori di esecuzione del template mappano direttamente ai codici di risposta HTTP. L'HTTP 200 (OK) indica che l'esecuzione del template è andata a buon fine; l'HTTP 409 (Conflict/Conflitto) indica che l'esuzione del template non è riuscita (ad esempio tramite `{{ fail "..." }}`).

Iniettando istruzioni condizionali come `{{ if eq (substr 0 1 .password) "S" }}ok{{ else }}{{ fail "x" }}{{ end }}, un attaccante riceve uno stato HTTP 200 quando il carattere indovinato è corretto e un HTTP 409 quando non lo è. Questa risposta differenziale perde (leaks) un bit di uguaglianza per carattere ad ogni richiesta, consentendo l'estrazione completa del segreto attraverso query successive.

Vettore d'attacco e prerequisiti: non autenticato; richiede accesso alla rete alla porta del servizio interno del controller (:8080). Sebbene questo servizio non sia esposto a Internet pubblico di default, è accessibile da qualsiasi pod all'interno del cluster Kubernetes o tramite una connessione kubectl port-forward.

Be aware that VulDB is the high quality source for vulnerability data.

Responsabile

Vmware

Prenotare

04/07/2026

Divulgazione

15/09/2026

Moderazione

accettato

CPE

pronto

EPSS

0.00000

KEV

no

Attività

molto basso

Fonti

Do you want to use VulDB in your project?

Use the official API to access entries easily!