Bỏ qua xác thực qua tfa-challenge trong Proxmox Server Solutions GmbH Proxmox Virtual Environment (VE)

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-2023-54391 là gì?

Lỗ hổng CVE-2023-54391 là lỗ hổng Missing Critical Step in Authentication ảnh hưởng tới Proxmox Virtual Environment (VE) (phiên bản bị ảnh hưởng: 7.0 – ≤ 7.4 và 8.0). Lỗ hổng này được xếp hạng ở mức Nghiêm trọng, với điểm CVSS 9.3. 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

Proxmox Virtual Environment (VE) 7.0 đến 8.0 có lỗ hổng bypass xác thực trong libpve-access-control trước 8.0.4, cho phép attacker không cần xác thực đăng nhập với tư cách bất kỳ người dùng hiện có nào đang bật nhưng chưa cấu hình second factor bằng cách cung cấp giá trị tfa-challenge tùy ý trong API login endpoint. Attacker có thể gửi một request POST đến access ticket API endpoint với bất kỳ giá trị nào trong tham số tfa-challenge để hoàn toàn bỏ qua việc xác minh password, giành quyền truy cập trái phép, bao gồm cả tài khoản root@pam. Tất cả các bản phát hành bị ảnh hưởng đều đã hết vòng đời.

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

  • libpve-access-control từ 7.0-7 trở lên và trước 8.0.4 bị ảnh hưởng.
  • Phạm vi tương ứng của sản phẩm là Proxmox Virtual Environment (VE) 7.0 đến và bao gồm 7.4, cùng bản Proxmox VE 8.0 ban đầu.
  • Các bản bị ảnh hưởng đều đã end of life.
  • libpve-access-control 8.0.4 đã sửa lỗi; advisory của Proxmox nêu rằng bản này và mọi bản phát hành sau đó không còn lỗi này. Không có bản Proxmox VE được hỗ trợ nào bị ảnh hưởng.

Chi tiết kỹ thuật

Proxmox Server Solutions GmbH Proxmox Virtual Environment (VE) xử lý đăng nhập API qua endpoint POST /api2/json/access/ticket, trong đó tham số tfa-challenge được dùng để hoàn tất TFA. Ở các bản bị ảnh hưởng, giá trị này không được xác thực đối với người dùng chưa cấu hình second factor, đồng thời sự hiện diện của tham số khiến bước kiểm tra password bị bỏ qua hoàn toàn. Vì vậy, attacker có thể xác thực với tư cách bất kỳ tài khoản đang bật nào không có second factor bằng cách gửi một giá trị tùy ý trong tfa-challenge, mà không cần biết credential. Khả năng khai thác yêu cầu truy cập được đến API, trực tiếp hoặc thông qua reverse proxy, trên cổng 8006. Đây là lỗi CWE-304, Missing Critical Step in Authentication; bằng chứng hiện có không cho thấy mọi hệ thống đều công khai API này ra Internet.

Khả năng khai thác

Lỗ hổng có thể bị khai thác từ xa qua network bằng một request API duy nhất, không yêu cầu authentication trước và không cần user interaction. Attacker cần truy cập được API Proxmox trên cổng 8006 hoặc qua reverse proxy, nhưng không cần quyền trước đó hay password hợp lệ. Điều kiện tài khoản là mục tiêu phải tồn tại, đang bật và chưa cấu hình second factor; theo advisory của nhà cung cấp, điều này mặc định có thể bao gồm root@pam. Proxmox báo cáo đã nhận được nhiều báo cáo độc lập về việc khai thác trong thực tế. Bằng chứng được cung cấp không nêu tên campaign hoặc nạn nhân cụ thể và không xác nhận một public exploit độc lập.

Tác động kỹ thuật

Attacker có thể hoàn tất đăng nhập dưới danh tính của một tài khoản đang bật mà không cần password hoặc second factor hợp lệ. Quyền đạt được phụ thuộc vào tài khoản mục tiêu; nếu tài khoản có quyền quản trị, attacker có thể đọc hoặc thay đổi dữ liệu quản lý, điều khiển tài nguyên ảo hóa và có khả năng làm gián đoạn workload. Việc sử dụng root@pam làm tài khoản mục tiêu có thể tạo ra tác động quản trị trên diện rộng. Tác động này chỉ xảy ra khi API có thể truy cập được và tài khoản mục tiêu không có second factor; các hệ thống đáp ứng hai điều kiện ngược lại có phạm vi phơi nhiễm khác.

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

Lỗ hổng có thể cho phép người không xác thực sử dụng quyền của tài khoản Proxmox được chọn. Hậu quả thực tế phụ thuộc vào quyền của tài khoản đó, nhưng việc truy cập dưới root@pam có thể dẫn đến quyền quản trị rộng đối với hạ tầng ảo hóa. Điều này có thể làm lộ dữ liệu quản lý hoặc workload, cho phép thay đổi cấu hình và tài nguyên ảo hóa, hoặc gây gián đoạn dịch vụ. Advisory không xác nhận rằng mọi hệ thống đã bị xâm nhập, nhưng Proxmox cho biết đã có nhiều báo cáo khai thác trong thực tế.

Cách khắc phục

  1. Nâng cấp là biện pháp bền vững duy nhất. Chuyển hệ thống khỏi các bản Proxmox VE đã end of life sang một bản Proxmox VE được hỗ trợ, đồng thời xác nhận package libpve-access-control đã ở 8.0.4 hoặc bản phát hành sau đó.
  2. Kiểm tra package thực tế bằng dpkg-query -W -f '${Version}\n' libpve-access-control hoặc xem kết quả pveversion -v. Package version và phiên bản tổng thể của Proxmox VE chỉ tương quan lỏng, nên không nên dùng riêng phiên bản VE để kết luận.
  3. Nếu chưa thể nâng cấp ngay, giới hạn quyền truy cập API port 8006 vào các mạng tin cậy, trực tiếp hoặc tại reverse proxy. Theo advisory, hệ thống không cho attacker truy cập API sẽ không bị phơi nhiễm qua đường khai thác này.
  4. Đảm bảo các tài khoản cần đăng nhập đã cấu hình second factor. Đây là biện pháp giảm phơi nhiễm cho lỗi này, nhưng không thay thế việc nâng cấp.
  5. Với hệ thống chưa thể nâng cấp, có thể áp dụng stop-gap patch của nhà cung cấp để buộc mọi giá trị tfa-challenge phải là signed TFA challenge hợp lệ, sau đó reload hoặc restart pvedaemon và pveproxy. Xác nhận patch đã áp dụng đúng theo kiểm tra số lần xuất hiện của verify_ticket($tfa_challenge, 0, $username) trước khi coi hệ thống đã được bảo vệ.

Cách phát hiện

  1. Kiểm tra trực tiếp phiên bản package bằng dpkg-query -W -f '${Version}\n' libpve-access-control; không suy luận trạng thái chỉ từ phiên bản tổng thể của Proxmox VE.
  2. Nếu cần, dùng pveversion -v để xem phiên bản libpve-access-control cùng các package Proxmox khác.
  3. Rà soát các tài khoản đang bật chưa cấu hình second factor, đặc biệt là root@pam, và xác định API port 8006 có thể truy cập từ mạng nào.
  4. Nếu đã áp dụng stop-gap patch của nhà cung cấp, kiểm tra sự xuất hiện của verify_ticket($tfa_challenge, 0, $username) trong AccessControl.pm; advisory yêu cầu kiểm tra phải cho kết quả ba lần xuất hiện.
  5. Rà soát log xác thực và API để tìm các lần đăng nhập hoặc cấp access ticket bất thường, nhất là các hoạt động không tương ứng với người dùng hợp lệ. Đây là biện pháp giám sát thận trọng, không phải IOC đặc hiệu đã được nhà cung cấp công bố; không có log đáng ngờ không chứng minh hệ thống an toàn.
Nguồn (17)
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.

Khám phá CyStack VulnScan