GitLab kêu gọi nâng cấp bản vá khẩn cấp với hai lỗ hổng nghiêm trọng gây rò rỉ dữ liệu


Tổng quan
Vào tháng 02 năm 2025, GitLab đã kêu gọi tất cả các hệ thống GitLab tự quản lý (self-managed) nâng cấp ngay lập tức lên các phiên bản 17.9.1, 17.8.4 hoặc 17.7.6 sau khi phát hiện nhiều lỗ hổng nghiêm trọng, bao gồm các lỗi Cross-Site Scripting (XSS) có thể gây ra rò rỉ dữ liệu.
Ngoài 2 lỗ hổng nghiêm trọng trên, GitLab cũng đã khắc phục một số lỗi khác gồm:
HTML Injection dẫn đến XSS (CVE-2024-8186) - CVSS 5,4: Lỗ hổng ở tính năng tìm kiếm mục con có thể dẫn đến tấn công XSS.
Kiểm tra ủy quyền không đúng cách cho phép người dùng khách đọc chính sách bảo mật (CVE-2024-10925) - CVSS 5,3: Người dùng khách có thể đọc các tệp YAML chính sách bảo mật.
Người dùng có quyền Planner có thể đọc phân tích Code Review trong dự án riêng tư (CVE-2025-0307) - CVSS 4,3: Người dùng có quyền hạn chế có thể truy cập dữ liệu phân tích nhạy cảm.
Giới thiệu lỗ hổng
CVE-2025-0475
Mô tả: Lỗ hổng trong Kubernetes Proxy Endpoint
Tác động: Lỗ hổng này có thể cho phép kẻ tấn công chèn mã độc vào trình duyệt của người dùng, đánh cắp thông tin đăng nhập hoặc thực hiện các hành vi tấn công khác.
ĐIểm CVE: Cao
Mức độ: Nguy hiểm
CVE-2025-0555
Mô tả: Lỗ hổng XSS trong Maven Dependency Proxy
Tác động: Lỗ hổng này có thể cho phép kẻ tấn công vượt qua các cơ chế bảo mật và thực thi mã tùy ý trong trình duyệt trong một số điều kiện nhất định.
Điểm CVE: 7.7
Mức độ: Cao
Phiên bản bị ảnh hưởng
Ảnh hưởng đến tất cả các phiên bản từ 15.10 trở đi
Ảnh hưởng đến GitLab-EE phiên bản 16.6 trở đi
Cách thực hiện lỗ hổng
CVE-2025-0475
Lỗ hổng XSS trong Kubernetes Proxy Endpoint của GitLab (CVE-2025-0475) có thể cho phép kẻ tấn công thực thi mã JavaScript độc hại trên trình duyệt của nạn nhân.
Đầu tiên chúng ta cần hiểu rõ cơ chế hoạt động của Kubernetes Proxy Endpoint trong GitLab:
GitLab sử dụng Kubernetes API proxy để kết nối và hiển thị dữ liệu từ các tài nguyên Kubernetes bên trong GitLab UI.
Khi một request được gửi đến /kubernetes/proxy/, GitLab có thể lấy dữ liệu từ Kubernetes và hiển thị nội dung phản hồi trên giao diện web.
Những kẻ tấn công sẽ lợi dụng điểm yếu bảo mật trong cấu hình trên để tiến hành khai thác XSS:
Nếu phản hồi từ Kubernetes API chứa dữ liệu không được validate hoặc escape đúng cách, thì kẻ tấn công có thể chèn mã JavaScript vào phản hồi này.
Điều này có thể xảy ra khi GitLab hiển thị nội dung của proxy response trong HTML mà không có biện pháp bảo vệ.
Từ chính điểm yếu trong cấu hình, những kẻ tấn công sẽ bắt đầu thực hiện xây dựng một Url độc hại và gửi một request đến Kubernetes Proxy Endpoint với một payload XSS
\=> Nếu GitLab không xử lý đúng, trình duyệt của nạn nhân sẽ thực thi mã JavaScript độc hại.
Sau khi đã xây dựng được Url độc hại, thì kẻ tấn công sẽ lừa nạn nhân click vào đường link đó bằng cách:
Gửi một email phishing hoặc chia sẻ đường link có chứa payload XSS.
Khi nạn nhân mở link trong trình duyệt, mã độc sẽ chạy.
Khi mà những kẻ tấn công có thể thực hiện thành công khai thác lỗ hổng CVE-2025-0475 thì chúng có thể tiến hành:
Đánh cắp cookie phiên đăng nhập (có thể dẫn đến chiếm quyền tài khoản GitLab).
Tấn công giả mạo yêu cầu (CSRF) để thực hiện hành động thay mặt nạn nhân.
Chèn mã độc vào giao diện GitLab để lây nhiễm nhiều người dùng hơn.
CVE-2025-0555
CVE-2025-0555 là một lỗ hổng bảo mật nghiêm trọng trong GitLab Enterprise Edition (EE). Lỗ hổng này cho phép kẻ tấn công vượt qua các biện pháp kiểm soát bảo mật và thực thi các script tùy ý trong trình duyệt của người dùng trong những điều kiện cụ thể.
Cũng giống với CVE trước đó, CVE-2025-0555 thực hiện khai thác Cross-Site Scripting (XSS) trong Maven Dependency Proxy, và lỗ hổng này tồn tại khi:
Hệ thống không kiểm tra hoặc escape đúng cách dữ liệu đầu vào trước khi hiển thị trên giao diện web.
Kẻ tấn công có thể chèn mã JavaScript độc hại vào các thông báo lỗi, URL hoặc đầu vào của người dùng để thực thi mã trên trình duyệt của nạn nhân.
Ban đầu một hệ thống GitLab với Maven Dependency Proxy bị ảnh hưởng bởi lỗ hổng XSS, một kẻ tấn công có thể khai thác như sau:
- Bước 1: Kẻ tấn công sẽ thực hiện tạo một package Maven độc hại có chứa các payload XSS trong metadata hoặc URL
\=> Nếu hệ thống hiển thị nội dung này mà không mã hóa đầu ra, trình duyệt của nạn nhân sẽ thực thi đoạn mã JavaScript trên.
- Bước 2: Những kẻ tấn công cũng có thể thực hiện chèn mã XSS vào URL của Maven Proxy Endpoint.
\=> Nếu GitLab không xử lý đúng cách đầu vào này, trình duyệt của người dùng khi truy cập URL trên sẽ thực thi mã độc.
Bước 3: Sau khi đã tạo được các URL độc hại có chứa mã XSS những kẻ tấn công sẽ thực hiện lừa người dùng truy cập bằng hai cách:
Kẻ tấn công có thể gửi link qua email, nhúng vào các trang web, hoặc tạo package giả mạo để đánh lừa người dùng tải xuống.
Khi người dùng truy cập URL hoặc mở package Maven bị nhiễm, mã độc sẽ chạy.
Bước 4: Kẻ tấn công sẽ thực hiện thu thập các dữ liệu của người dùng:
Đánh cắp thông tin nhạy cảm: Cookie, thông tin đăng nhập, dữ liệu cá nhân.
Chiếm quyền điều khiển phiên làm việc: Thực hiện các hành động thay mặt người dùng.
Phát tán mã độc: Lây nhiễm mã độc sang các phần khác của ứng dụng hoặc hệ thống.
Khuyến nghị
Cập nhật GitLab: Người dùng và quản trị viên nên nâng cấp GitLab lên các phiên bản đã được vá lỗi, cụ thể là 17.9.1, 17.8.4 hoặc 17.7.6, để khắc phục lỗ hổng này.
Kiểm tra và giám sát: Thực hiện kiểm tra định kỳ và giám sát hệ thống để phát hiện sớm các hoạt động bất thường có thể liên quan đến việc khai thác lỗ hổng.
Đánh giá bảo mật: Thường xuyên thực hiện đánh giá bảo mật để xác định và khắc phục kịp thời các điểm yếu trong hệ thống.
Kết luận
Cả hai lỗ hổng mang tên CVE-2025-0555 và CVE-2025-0475 đều là những lỗ hổng bảo mật nghiêm trọng trong hệ thống GitLab. Lỗ hổng này cho phép kẻ tấn công thực hiện tấn công Cross-Site Scripting (XSS), có thể dẫn đến việc chiếm đoạt phiên làm việc, đánh cắp thông tin đăng nhập và truy cập trái phép vào hệ thống.
Bên cạnh đó, kẻ tấn công cũng có thể leo thang đặc quyền và thực hiện một chuỗi các tấn công khác nếu thực thi được hai lỗ hổng trên. Việc thực hiện các biện pháp trên sẽ giúp giảm thiểu nguy cơ bị tấn công và bảo vệ an toàn cho hệ thống GitLab của bạn.
IOC
Hoạt động bất thường trong nhật ký hệ thống:
Xuất hiện các yêu cầu HTTP chứa mã JavaScript hoặc các chuỗi đáng ngờ trong các tham số liên quan đến Maven Dependency Proxy.
Các yêu cầu từ địa chỉ IP không xác định hoặc không tin cậy truy cập vào các endpoint của Maven Dependency Proxy.
Hành vi bất thường của người dùng:
- Người dùng báo cáo các hành động mà họ không thực hiện, như thay đổi cài đặt, tạo hoặc xóa dự án, hoặc các hoạt động khác trong GitLab.
Thay đổi không giải thích được trong cấu hình hoặc dữ liệu:
- Phát hiện các thay đổi trong cấu hình hệ thống, tệp hoặc cơ sở dữ liệu mà không có lý do rõ ràng.
Tham khảo
Subscribe to my newsletter
Read articles from Lưu Tuấn Anh directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
