Nhờ khả năng quản lý tập trung và tự động hóa triển khai, Argo CD được nhiều doanh nghiệp sử dụng trong môi trường DevOps, Cloud Native và Kubernetes. Tuy nhiên, chính việc nắm giữ quyền triển khai ứng dụng, thông tin truy cập kho mã nguồn và quyền tương tác với Kubernetes cũng khiến Argo CD trở thành mục tiêu hấp dẫn đối với tin tặc.
Theo Synacktiv, dịch vụ gRPC nội bộ của repo-server không yêu cầu xác thực. Điều này đồng nghĩa nếu kẻ tấn công có thể kết nối tới cổng dịch vụ này trong mạng nội bộ, chúng có thể gửi các yêu cầu đặc biệt nhằm buộc repo-server thực thi các lệnh tùy ý trên hệ thống.
Nhóm nghiên cứu đã xác nhận lỗ hổng có thể khai thác trên Argo CD phiên bản 2.13.3. Tuy nhiên, do chưa có bản vá, phạm vi ảnh hưởng có thể rộng hơn và hiện chưa có danh sách đầy đủ các phiên bản bị tác động.
Trong quá trình tạo Manifest, Kustomize hỗ trợ tham số –helm-command, cho phép chỉ định chương trình Helm sẽ được gọi để xử lý các biểu đồ Helm.
Synacktiv phát hiện rằng thông qua dịch vụ GenerateManifest của repo-server, kẻ tấn công có thể thay đổi tham số này và trỏ nó đến một tập lệnh (script) do chúng kiểm soát trong một kho Git độc hại.
Khi Kustomize thực thi, thay vì gọi chương trình Helm hợp lệ, hệ thống sẽ chạy trực tiếp tập lệnh của kẻ tấn công, từ đó dẫn đến thực thi mã tùy ý trên repo-server.
-
Kẻ tấn công xâm nhập được vào một Pod bất kỳ trong cụm Kubernetes hoặc có khả năng truy cập mạng nội bộ.
-
Kết nối tới dịch vụ gRPC của repo-server.
-
Gửi yêu cầu GenerateManifest được chỉnh sửa để thay đổi tham số –helm-command.
-
Buộc Kustomize thực thi tập lệnh độc hại thay vì chương trình Helm.
-
Chiếm quyền thực thi mã trên repo-server.
Khi Argo CD thực hiện chu kỳ đồng bộ tiếp theo, hệ thống sẽ tự động triển khai khối lượng công việc (Workload) do kẻ tấn công tạo ra, giúp chúng giành quyền kiểm soát toàn bộ cụm Kubernetes.
Tuy nhiên, Synacktiv chỉ ra rằng bộ nhớ đệm Redis vẫn chưa được ký hoặc xác thực tính toàn vẹn. Khi chiếm được repo-server, tin tặc có thể lấy lại mật khẩu Redis từ biến môi trường, sau đó tiếp tục thao túng dữ liệu trong bộ nhớ đệm và tái sử dụng kỹ thuật tấn công của CVE-2024-31989.
Điều này cho thấy việc khắc phục từng lỗ hổng riêng lẻ chưa đủ nếu kiến trúc bảo mật tổng thể vẫn còn tồn tại các điểm yếu có thể kết hợp thành chuỗi khai thác.
Nếu một Pod bất kỳ trong cụm Kubernetes bị xâm nhập, kẻ tấn công hoàn toàn có thể kết nối đến repo-server và Redis để khai thác lỗ hổng. Trong các môi trường Kubernetes nhiều ứng dụng hoặc nhiều nhóm phát triển cùng sử dụng chung một cụm, nguy cơ này càng trở nên đáng lo ngại vì chỉ cần một ứng dụng bị xâm nhập cũng có thể trở thành bàn đạp để tấn công toàn bộ hạ tầng.
Đến tháng 5/2026, CVE-2026-42880 tiếp tục cho phép người dùng chỉ có quyền đọc truy cập vào các Kubernetes Secret dưới dạng văn bản thuần (plaintext).
Theo Synacktiv, điểm chung của các lỗ hổng này là đều liên quan đến những thành phần lưu trữ các thông tin có giá trị như khóa truy cập Git, bí mật Kubernetes hoặc quyền triển khai ứng dụng. Điều đó cho thấy các bề mặt tấn công nội bộ của Argo CD đang trở thành mục tiêu hấp dẫn đối với tin tặc.
Để giúp cộng đồng đánh giá mức độ ảnh hưởng, Synacktiv đã phát triển công cụ argo-cdown, có khả năng tự động hóa toàn bộ chuỗi khai thác. Tuy nhiên, nhóm nghiên cứu cho biết sẽ tạm thời chưa công bố mã nguồn nhằm tạo thêm thời gian để các tổ chức triển khai các biện pháp phòng vệ trước khi công cụ được phát hành trên GitHub.
-
Kích hoạt Kubernetes Network Policy để chỉ cho phép các thành phần nội bộ của Argo CD truy cập repo-server và Redis.
-
Kiểm tra các Network Policy hiện có bằng lệnh kubectl get networkpolicy -A và xác minh repo-server, Redis đã được cô lập.
-
Không sử dụng cấu hình Helm mặc định nếu chưa bật tùy chọn networkPolicy.create.
-
Hạn chế tối đa việc để các Pod không cần thiết có thể kết nối tới repo-server hoặc Redis.
-
Theo dõi nhật ký truy cập bất thường tới dịch vụ gRPC của repo-server và hoạt động đồng bộ (Sync) của Argo CD để phát hiện sớm dấu hiệu khai thác.