CVE-2026-59341 in sealed-secrets
Tóm tắt
Bởi VulDB • 15/09/2026
Một lỗ hổng bảo mật tồn tại trong các endpoint POST không xác thực của controller Sealed Secrets. Bằng cách gửi một payload đã sửa đổi chứa logic template Go tùy chỉnh trong spec.template.data, kẻ tấn công có quyền truy cập vào mạng nội bộ có thể lợi dụng handler như một decryption oracle để khôi phục toàn bộ plaintext của bất kỳ sealed secret nào.
Các handler POST /v1/verify và /v1/rotate gọi Unseal() để giải mã các secrets mục tiêu, sau đó render mọi Go template được tìm thấy trong spec.template.data.* bằng cách sử dụng payload đã giải mã làm ngữ cảnh đánh giá (pkg/apis/sealedsecrets/v1alpha1/sealedsecret_expansion.go). Các lỗi xảy ra trong quá trình thực thi template được phản ánh trực tiếp vào các mã trạng thái HTTP response kết quả.
Thiếu AEAD label binding: trường spec.template.data bị bỏ qua khỏi việc gắn nhãn authenticated-data của AEAD với metadata. Kết quả là, kẻ tấn công có thể sao chép verbatim metadata hợp lệ và encryptedData của mục tiêu, thỏa mãn giải mã AEAD và xác thực label, trong khi tự do thay thế spec.template.data bằng logic template tùy ý.
Side-channel oracle: các lỗi thực thi template ánh xạ trực tiếp vào các mã response HTTP. HTTP 200 (OK) cho biết việc thực thi template đã thành công; HTTP 409 (Conflict) cho biết việc thực thi template thất bại (ví dụ qua {{ fail "..." }}).
Bằng cách tiêm các câu lệnh điều kiện như {{ if eq (substr 0 1 .password) "S" }}ok{{ else }}{{ fail "x" }}{{ end }}, kẻ tấn công nhận được mã trạng thái HTTP 200 khi một ký tự dự đoán là đúng và HTTP 409 khi nó sai. Phản hồi khác biệt này rò rỉ một bit bằng nhau của mỗi ký tự trên mỗi yêu cầu, cho phép trích xuất toàn bộ secret qua các truy vấn liên tiếp.
Attack vector & prerequisites: không xác thực; yêu cầu quyền truy cập mạng vào cổng dịch vụ nội bộ của controller (:8080). Mặc dù dịch vụ này mặc định không được expose ra internet công cộng, nó có thể truy cập được bởi bất kỳ pod nào trong Kubernetes cluster hoặc qua kết nối kubectl port-forward.
If you want to get best quality of vulnerability data, you may have to visit VulDB.