Ruby vá 3 lỗ hổng trong engine Regex, khắc phục 4 điểm yếu RCE nghiêm trọng trên GitLab
Ruby vừa phát hành các bản cập nhật quan trọng để xử lý 3 lỗ hổng trong engine Onigmo, vốn là nguyên nhân gây ra 4 lỗ hổng RCE nghiêm trọng trên nền tảng GitLab thời gian...
- Giọng nữ Bắc
Ngôn ngữ lập trình Ruby vừa chính thức phát hành các phiên bản 4.0.9, 3.4.12 và 3.3.13 nhằm khắc phục ba lỗ hổng bảo mật nằm trong Onigmo – engine xử lý biểu thức chính quy (regular expression) tích hợp sẵn trong ngôn ngữ này. Các lỗ hổng này được xác định là nguyên nhân gốc rễ dẫn đến bốn lỗ hổng RCE (Remote Code Execution) nghiêm trọng mà GitLab đã phải xử lý trong tháng qua.
Table Of Content
Nguy cơ từ việc biên dịch Regex
Theo báo cáo, vấn đề phát sinh khi ứng dụng biên dịch một biểu thức chính quy từ chuỗi ký tự do người dùng (hoặc kẻ tấn công) kiểm soát. Khi các chuỗi này được truyền vào các hàm như Regexp.new, Regexp.union, Regexp.compile hoặc thông qua cơ chế nội suy (interpolation), kẻ tấn công có thể lợi dụng để làm hỏng bộ nhớ (memory corruption), từ đó dẫn đến khả năng thực thi mã từ xa trên server.
Ruby nhấn mạnh rằng bất kỳ ứng dụng nào có cơ chế biên dịch Regex từ dữ liệu đầu vào không tin cậy đều có nguy cơ bị ảnh hưởng, không chỉ riêng GitLab.
Chi tiết các phiên bản cập nhật
Người dùng Ruby được khuyến cáo nâng cấp ngay lập tức lên các phiên bản mới nhất để đảm bảo an toàn:
- Ruby 4.0: Nâng cấp lên 4.0.9
- Ruby 3.4: Nâng cấp lên 3.4.12
- Ruby 3.3: Nâng cấp lên 3.3.13
Lưu ý rằng các phiên bản Ruby 3.2 trở về trước đã kết thúc vòng đời hỗ trợ (end-of-life) và sẽ không nhận được bản vá. Người dùng các phiên bản cũ này được khuyến nghị chuyển đổi sang nhánh 3.4 hoặc 4.0. Các biện pháp giảm thiểu như thiết lập Regexp.timeout hay giới hạn độ dài pattern đều không hiệu quả đối với các lỗ hổng này.
Ảnh hưởng đến GitLab
GitLab đã phát hiện và báo cáo bốn lỗ hổng liên quan thông qua chương trình bug bounty. Trong đó, có hai lỗ hổng được đánh giá ở mức điểm tối đa 10.0/10.0 (CVE-2026-97229 và CVE-2026-110264), cho phép kẻ tấn công thực thi mã mà không cần tài khoản đăng nhập.
Đối với các quản trị viên GitLab tự vận hành (self-managed), việc cập nhật lên các phiên bản mới nhất (như 19.5.1, 19.4.3, 19.3.6, 19.2.9, 19.1.9, 19.0.10 hoặc 18.11.13) là bắt buộc để áp dụng bản vá Ruby đã được tích hợp sẵn. GitLab cũng đã cung cấp các quy tắc phát hiện (detection rules) để quản trị viên có thể kiểm tra các dấu hiệu bị khai thác trên hệ thống của mình.
Nguồn tham khảo: The Hacker News



No Comment! Be the first one.