Kubernetes kube-controller-manager có lỗi SSRF qua Portworx làm lộ dữ liệu control plane

Lưu ý: Dữ liệu này chỉ có tính chất tham khảo, phục vụ nghiên cứu an ninh mạng.CyStack khuyến nghị người dùng không sử dụng các thông tin này nhằm các mục đích bất hợp pháp

Lỗ hổng CVE-2025-13281 là gì?

Lỗ hổng CVE-2025-13281 là lỗ hổng Server-Side Request Forgery ảnh hưởng tới Kubernetes (phiên bản bị ảnh hưởng: v1.30.0 – ≤ v1.30.14, v1.31.0 – ≤ v1.31.14 và các phiên bản bị ảnh hưởng khác). Lỗ hổng này được xếp hạng ở mức Trung bình, với điểm CVSS 5.8. Các nguồn hiện có chưa ghi nhận lỗ hổng này bị khai thác.

Giới thiệu chung

Dữ liệu gốc

Một lỗ hổng Server Side Request Forgery (SSRF) dạng half-blind tồn tại trong kube-controller-manager khi sử dụng in-tree Portworx StorageClass. Lỗ hổng này cho phép người dùng đã được cấp quyền làm lộ thông tin tùy ý từ các endpoint không được bảo vệ trong host network của control plane, bao gồm các dịch vụ link-local hoặc loopback.

Sản phẩm và phạm vi ảnh hưởng

Kubernetes ghi nhận các nhánh sau là bị ảnh hưởng khi in-tree Portworx StorageClass có thể được sử dụng:

  • kube-controller-manager từ v1.30.0 đến và bao gồm v1.30.14.
  • kube-controller-manager từ v1.31.0 đến và bao gồm v1.31.14.
  • kube-controller-manager từ v1.32.0 đến và bao gồm v1.32.9.
  • kube-controller-manager từ v1.33.0 đến và bao gồm v1.33.5.
  • kube-controller-manager từ v1.34.0 đến và bao gồm v1.34.1.

Điều kiện cấu hình là yếu tố quyết định. CSIMigrationPortworx được bật mặc định từ v1.31, làm cho in-tree Portworx bị vô hiệu hóa theo mặc định; các triển khai từ v1.32 trở lên không bị ảnh hưởng trong trạng thái mặc định đó, nhưng có thể bị ảnh hưởng nếu feature gate bị ghi đè để tắt migration. Các bản v1.30 đã hết vòng đời có khả năng dễ bị ảnh hưởng hơn vì feature gate được tắt theo mặc định.

Các bản sửa được advisory nêu cho các nhánh tương ứng là v1.32.10, v1.33.6 và v1.34.2. Bản ghi và advisory được kiểm tra không xác định bản sửa cụ thể cho các nhánh v1.30 và v1.31.

Chi tiết kỹ thuật

Kubernetes kube-controller-manager có lỗi Server-Side Request Forgery (SSRF) dạng half-blind trong quá trình xử lý in-tree Portworx StorageClass. Luồng tấn công cần một người dùng đã được cấp quyền tạo pod sử dụng loại Portworx volume bị ảnh hưởng. Khi điều kiện này thỏa mãn, kube-controller-manager có thể thực hiện các yêu cầu HTTP GET từ host network của control plane mà không có request body do kẻ tấn công kiểm soát; phần thân phản hồi tương ứng có thể xuất hiện trong các event do controller tạo ra.

Điều này cho phép đọc dữ liệu từ các endpoint không được bảo vệ mà thông thường chỉ có thể truy cập từ host network của control plane, chẳng hạn dịch vụ link-local, loopback hoặc dịch vụ trong mạng riêng của control plane. Phạm vi endpoint cụ thể phụ thuộc vào các dịch vụ đang lắng nghe và cấu hình mạng của từng cluster. Bằng chứng hiện có không cho thấy khả năng sửa dữ liệu hoặc gây gián đoạn dịch vụ.

Khả năng khai thác

Lỗ hổng có thể bị khai thác qua đường mạng trong luồng quản trị Kubernetes, nhưng yêu cầu quyền cao để tạo pod với Portworx volume type bị ảnh hưởng. Không cần tương tác của người dùng khác sau khi kẻ tấn công đã đáp ứng điều kiện quyền hạn và cấu hình; việc khai thác vẫn phụ thuộc vào việc in-tree Portworx được sử dụng, có endpoint không được bảo vệ trong host network của control plane và người dùng không tin cậy có quyền tạo pod phù hợp.

Bản ghi được cung cấp đánh dấu không có public exploit và không cung cấp trạng thái known-exploited. Điều này không chứng minh rằng lỗ hổng chưa từng bị khai thác, vì bằng chứng hiện có chỉ cho biết trạng thái công khai được ghi nhận.

Tác động kỹ thuật

Kẻ tấn công đáp ứng điều kiện quyền hạn có thể khiến kube-controller-manager gửi yêu cầu GET từ host network của control plane và nhận phần thân phản hồi thông qua event provisioning. Kết quả kỹ thuật là đọc dữ liệu từ các endpoint nội bộ không được bảo vệ, bao gồm dịch vụ link-local, loopback hoặc dịch vụ trong mạng riêng của control plane.

Tác động được chứng minh chủ yếu nằm ở tính bí mật và có phạm vi vượt ra ngoài network context của người tạo pod, vì request được thực hiện từ môi trường host của control plane. Dữ liệu lộ ra có thể ảnh hưởng đến thông tin quản trị hoặc dữ liệu dịch vụ nội bộ, tùy endpoint tồn tại trong môi trường. Bằng chứng hiện có không xác lập khả năng sửa đổi endpoint, nâng quyền trực tiếp hoặc ảnh hưởng tính sẵn sàng.

Tác động đến tổ chức

Lỗ hổng có thể làm lộ nội dung phản hồi HTTP từ các dịch vụ chỉ nên được truy cập bên trong host network của control plane. Dữ liệu bị lộ có thể bao gồm thông tin nội bộ từ endpoint link-local, loopback hoặc dịch vụ trong mạng riêng của control plane, tùy theo cấu hình triển khai.

Hậu quả vận hành chủ yếu là mất tính bí mật của dữ liệu control plane và dữ liệu dịch vụ nội bộ. Thông tin bị lộ có thể hỗ trợ hoạt động trinh sát tiếp theo, nhưng bằng chứng hiện có không xác nhận một kịch bản xâm nhập, chiến dịch hoặc vi phạm cụ thể. Không có bằng chứng cho thấy lỗ hổng này trực tiếp sửa dữ liệu hoặc làm gián đoạn dịch vụ.

Cách khắc phục

  1. Nâng cấp kube-controller-manager. Sử dụng bản sửa tương ứng với nhánh triển khai: v1.32.10, v1.33.6 hoặc v1.34.2, theo hướng dẫn của Kubernetes. Với các nhánh không có bản sửa cụ thể được nêu trong bằng chứng hiện có, hãy nâng cấp Kubernetes sang nhánh có bản sửa được xác nhận thay vì suy đoán một mốc sửa.
  2. Bật CSIMigrationPortworx nếu feature gate này đã bị ghi đè khỏi trạng thái mặc định và việc bật migration phù hợp với triển khai. Biện pháp này làm in-tree Portworx không còn được sử dụng theo điều kiện nêu trong advisory.
  3. Trong quá trình xử lý, xác nhận lại quyền tạo pod với Portworx volume type và trạng thái feature gate trên mọi control plane instance. Không coi việc không quan sát thấy ProvisioningFailed event là bằng chứng thay thế cho bản vá hoặc cấu hình giảm phơi nhiễm.

Cách phát hiện

Thực hiện các bước kiểm tra sau:

  1. Kiểm kê phiên bản kube-controller-manager và xác định cluster có nằm trong các nhánh bị ảnh hưởng hay không.
  2. Kiểm tra trạng thái thực tế của CSIMigrationPortworx, đặc biệt xem feature gate có bị ghi đè để cho phép in-tree Portworx hay không.
  3. Rà soát RBAC và các chính sách admission để xác định người dùng không tin cậy có thể tạo pod với Portworx volume type bị ảnh hưởng hay không.
  4. Xác định các endpoint link-local, loopback và dịch vụ nội bộ chỉ có thể truy cập từ host network của control plane và không yêu cầu xác thực.
  5. Phân tích các ProvisioningFailed event do kube-controller-manager tạo ra để tìm nội dung phản hồi hoặc dữ liệu nhạy cảm có nguồn từ host network của control plane. Đây là dấu hiệu cần điều tra, không phải bằng chứng duy nhất để khẳng định khai thác.
  6. Nếu phát hiện dữ liệu bất thường, lưu giữ event và log liên quan để điều tra; việc không thấy event phù hợp không chứng minh cluster an toàn.
Nguồn (24)
Tìm hiểu thêm

Kiểm tra chuyên sâu cùng giải pháp quản lý rủi ro Web toàn diện

Giải pháp CyStack VulnScan liên tục phát hiện tài sản, xác minh lỗ hổng và giúp đội ngũ bảo mật ưu tiên khắc phục cho toàn bộ doanh nghiệp.