Lỗi nằm trong endpoint gRPC/REST ServerSideDiff của Argo CD. Không giống các endpoint khác sử dụng hideSecretData() để che dữ liệu Secret, endpoint này trả về trực tiếp các trạng thái PredictedLive và NormalizedLive chưa được masking.
Luồng xử lý gọi K8sServerSideDryRunner.Run(), tương đương với thao tác Server-Side Apply dry-run trên Kubernetes API server. Cơ chế removeWebhookMutation() thông thường loại bỏ các trường không do Argo CD quản lý khỏi kết quả dry-run và hợp nhất chúng với trạng thái live đã được che dữ liệu. Tuy nhiên, cơ chế bảo vệ này bị bỏ qua khi Application có annotation argocd.argoproj.io/compare-options: IncludeMutationWebhook=true.
Khi đó, phản hồi dry-run có thể chứa giá trị Secret thực được đọc từ etcd và được chuyển thẳng vào phản hồi API mà không masking. Việc trích xuất thành công còn phụ thuộc vào việc các trường dữ liệu của Secret được một SSA field manager khác ngoài argocd-controller sở hữu; nếu argocd-controller là field manager duy nhất, dữ liệu bị loại khỏi kết quả dry-run khi manifest đích không chứa các trường đó. Chính sách RBAC cụ thể của từng môi trường và phạm vi Secret thực tế có thể khác nhau.