Chuỗi lỗ hổng FreeIPA cho phép máy khách ẩn danh tạo thông tin xác thực Quản trị viên

Một lỗ hổng trong FreeIPA cho phép máy khách chưa từng đăng nhập có thể tạo danh tính Kerberos tùy chọn và gia nhập nhóm quản trị viên. Cuộc tấn công yêu cầu sự kết hợp với một lỗ hổng khác trong 389 Directory Server. Dự án FreeIPA đã phát hành bản vá lỗi trong phiên bản 4.13.4 để ngăn chặn nguy cơ này.
\n
\n Lỗ hổng FreeIPA\n
\n\n

Theo Red Hat, một lỗ hổng trong FreeIPA cho phép một máy khách (client) chưa từng đăng nhập có thể tạo danh tính Kerberos theo ý muốn trong thư mục và lọt vào nhóm quản trị viên (administrators).

\n\n

FreeIPA là hệ thống xác định quyền đăng nhập trên một domain Linux và duy trì tất cả danh tính trong cơ sở dữ liệu 389 Directory Server được truy cập qua LDAP. Cuộc tấn công này cần một lỗ hổng thứ hai trong phần mềm cơ sở dữ liệu đó.

\n\n

Dự án FreeIPA đã khắc phục lỗ hổng này trong phiên bản 4.13.4. Red Hat cho biết họ đã tái hiện thành công chuỗi tấn công này hai lần trên một bản cài đặt mặc định, gần đây nhất là trên một máy không có quyền truy cập nào.

\n\n

Red Hat theo dõi lỗ hổng FreeIPA này dưới mã CVE-2026-76578 và xếp hạng nó ở mức nghiêm trọng (critical), với điểm CVSS là 9.8. Tuy nhiên, điểm số này vẫn đang trong quá trình đánh giá lại.

\n\n

Red Hat phân phối FreeIPA như một sản phẩm Identity Management, trong đó gói phần mềm được gọi là ipa.

\n\n

FreeIPA cung cấp một quy tắc kiểm soát truy cập (ACI), cho phép người dùng quản lý mã thông báo mật khẩu một lần (OTP token) của chính họ. Quy tắc này không yêu cầu máy khách phải đăng nhập, cũng như không giới hạn những gì khác có thể được ghi kèm theo mã thông báo.

\n\n

Điều này chỉ trở nên nguy hiểm do lỗ hổng thứ hai. 389 Directory Server có một loại quy tắc được thiết kế để chỉ định \"chỉ chủ sở hữu đã xác thực của mục nhập này\". Nó so sánh tên của máy khách với một giá trị được lưu trữ dưới dạng văn bản thuần túy (plain text). Một máy khách chưa đăng nhập sẽ có tên trống, và nó khớp hoàn hảo với một giá trị lưu trữ trống.

\n\n

Vì vậy, một máy khách ẩn danh có thể tạo một mục nhập mã thông báo với các trường quyền sở hữu được để trống, vượt qua bước kiểm tra quyền sở hữu vì họ là \"không ai cả\" (nobody), và ghi danh tính Kerberos cùng mật khẩu kèm theo.

\n\n

Red Hat chấm điểm lỗ hổng máy chủ thư mục này là CVE-2026-76560 với mức 7.5 và cho biết Red Hat Directory Server không cung cấp quy tắc dạng đó theo mặc định. Lỗ hổng này chỉ gây rủi ro nếu một triển khai cụ thể đã viết quy tắc như vậy.

\n\n

FreeIPA chính là một trường hợp như vậy. Quy tắc mặc định của nó có đúng hình dạng đó, đó là lý do tại sao chuỗi tấn công hoạt động trên một bản cài đặt gốc. Sự liên kết này được rút ra từ hai bản tin tư vấn mô tả riêng biệt hai nửa của vấn đề.

\n\n

Red Hat cũng đã tái hiện lỗi máy chủ thư mục một cách độc lập trên một bản build 389-ds thuần túy không cài đặt FreeIPA. Thử nghiệm kiểm soát sử dụng một giá trị không trống đã bị từ chối chính xác. Điều này xác định lỗi nằm trong công cụ kiểm soát truy cập hơn là trong bất kỳ hoạt động nào của FreeIPA.

\n\n

Kỹ thuật đầu tiên được báo cáo cho Red Hat là mạo danh tài khoản quản trị viên thật bằng cách tạo một tên Kerberos trùng khớp. Một bản sửa lỗi trước đó cho CVE-2026-13097 đã chặn sự xung đột đó nhưng vẫn để lại khả năng ghi không xác thực. Giờ đây, cuộc tấn công hoạt động dưới một cái tên mà kẻ tấn công tự chọn, và theo Red Hat, nó mang lại \"kết quả thực tế tương tự\".

\n\n

Lỗ hổng cũ đó, được khắc phục trong FreeIPA 4.13.3, là một vấn đề khác. Việc kiểm tra tính duy nhất của tên Kerberos không tính đến các cách viết khác nhau của cùng một tên, cho phép người dùng có quyền ghi tạo ra một danh tính dịch vụ mạo danh một danh tính có đặc quyền hiện có.

\n\n

Hai dự án mô tả kết quả theo những cách khác nhau. Red Hat gọi đó là tư cách thành viên nhóm quản trị viên thực thụ và thông tin xác thực quản trị viên có thể tái sử dụng.

\n\n

Dự án FreeIPA mô tả hẹp hơn, cho biết danh tính được chèn vào không được tồn tại trước đó, và bản sửa lỗi CVE-2026-13097 ngăn chặn việc chiếm đoạt các tài khoản hiện có, cuộc tấn công chỉ có thể được sử dụng như một \"bước đệm\" để tiến tới các đặc quyền quản trị.

\n\n

Red Hat cho biết họ đã chạy chuỗi tấn công trên một container image FreeIPA phiên bản 4.13.1 và kiểm tra kết quả bằng các lệnh chuẩn chỉ dành cho quản trị viên. Hiện chưa có báo cáo nào về việc lỗ hổng này bị khai thác trong thực tế.

\n\n

Đối với các triển khai sử dụng định dạng bảo mật kiểu Windows, Red Hat lưu ý kẻ tấn công cũng có thể lấy được vé Kerberos chứa dữ liệu ủy quyền, từ đó mở rộng quyền truy cập vào các dịch vụ HTTP và Dogtag của máy chủ. Dogtag là cơ quan cấp chứng chỉ (CA) tích hợp của FreeIPA.

\n\n

Một lỗ hổng thứ hai, riêng biệt

\n\n

Bên cạnh chuỗi tấn công trên, Red Hat cũng công bố lỗ hổng FreeIPA thứ hai là CVE-2026-79678. Lỗ hổng này được xếp hạng quan trọng với mức điểm 8.1.

\n\n

Lệnh idp-add truyền hai giá trị do người dùng cung cấp (tên tổ chức và URL gốc) vào một hàm Python eval(). Lệnh này chạy trước khi kiểm tra quyền hạn, vì vậy bất kỳ tài khoản nào trên máy chủ đều có thể tiếp cận nó, bất kể đặc quyền là gì.

\n\n

Hàm gọi này bị giới hạn bởi một bộ lọc cấm dấu ngoặc đơn, ngăn chặn việc gọi bất kỳ hàm nào. Red Hat khẳng định \"không thể thực thi mã (code execution)\".

\n\n

Tuy nhiên, kẻ tấn công có thể đọc từng biến môi trường của tiến trình máy chủ bằng cách quan sát lỗi trả về, hoặc làm cạn kiệt bộ nhớ máy chủ bằng một biểu thức số học ngắn.

\n\n

Mức độ ảnh hưởng tùy thuộc vào cách cài đặt FreeIPA. Trên các bản cài đặt dựa trên gói (package) thông thường, môi trường tiến trình chỉ chứa các đường dẫn và cài đặt đã được tài liệu hóa. Các bản cài đặt dạng container thì khác.

\n\n

Image máy chủ FreeIPA chính thức thường nhận mật khẩu Directory Manager và administrator làm biến môi trường trong lần khởi động đầu tiên, và những mật khẩu này có thể bị lộ nếu chúng vẫn còn sau khi thiết lập hoàn tất.

\n\n

Quản trị viên có thể làm gì ngay bây giờ

\n\n

Các bản sửa lỗi đã được phát hành ở các thời điểm khác nhau cho các thành phần khác nhau:

\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Thành phầnBản cài đặt cần thiếtTrạng thái
FreeIPA (Dự án gốc)FreeIPA 4.13.4Khắc phục cả hai lỗ hổng FreeIPA.
389-ds-base trên RHEL và Red Hat Directory ServerBản tin tư vấn theo phiên bảnMười bốn bản tin tư vấn đã được công bố vào ngày 8 tháng 9. Ví dụ: RHSA-2026:64785 cho RHEL 10.
Gói ipa trên RHELChưa được liệt kêChưa có thông tin về phiên bản sửa lỗi cụ thể vào ngày 8 tháng 9.
389-ds-base trên FedoraĐang thử nghiệmĐược đánh dấu là ON_QA (đang kiểm thử chất lượng).
\n\n

Trong khi chờ đợi gói phần mềm cập nhật, Red Hat đưa ra hai bước tạm thời để ngăn chặn chuỗi tấn công:

\n\n
    \n
  • Hạn chế quyền truy cập vào dịch vụ LDAP (thường là cổng 389 và 636) chỉ cho các máy chủ tin cậy thông qua tường lửa hoặc phân đoạn mạng.
  • \n
  • Tắt tính năng anonymous LDAP binds (nếu hệ thống không yêu cầu tính năng này).
  • \n
\n\n

Đối với lỗ hổng idp-add, không có tùy chọn cấu hình tạm thời nào. Quản trị viên bắt buộc phải cài đặt gói phần mềm đã vá lỗi. Ngoài ra, những người sử dụng bản cài đặt container nên kiểm tra để đảm bảo mật khẩu thiết lập ban đầu không còn tồn tại trong môi trường tiến trình đang chạy.

\n