Lỗ hổng RCE nghiêm trọng trong Gogs chưa được khắc phục: Mã khai thác đã công khai

Phần mềm29 tháng 5, 2026·4 phút đọc

Một lỗ hổng thực thi mã từ xa (RCE) nguy hiểm trong dịch vụ Git tự lưu trữ Gogs vẫn chưa được vá dù đã báo cáo từ tháng 3. Mã khai thác công khai đã xuất hiện, đặt các máy chủ vào nguy cơ bị tấn công chuỗi cung ứng nghiêm trọng.

Lỗ hổng RCE nghiêm trọng trong Gogs chưa được khắc phục: Mã khai thác đã công khai

Một lỗ hổng bảo mật "chí mạng" đang đe dọa người dùng của Gogs, một dịch vụ Git tự lưu trữ (self-hosted) mã nguồn mở phổ biến. Lỗi này được đánh giá mức độ nghiêm trọng 9.4/10, cho phép bất kỳ người dùng nào đã xác thực có thể thực thi mã từ xa (RCE) và chiếm hoàn toàn quyền kiểm soát máy chủ mà không cần quyền đặc biệt.

Đáng lo ngại hơn, dù lỗ hổng này đã được báo cáo từ giữa tháng 3, nhưng cho đến nay vẫn chưa có bản vá chính thức nào được phát hành. Thậm chí, một mô-đun khai thác công khai (exploit module) trên Metasploit đã xuất hiện, khiến nguy cơ bị tấn công trong thực tế là rất cao.

Sự im lặng của đội ngũ phát triển

Nhà nghiên cứu bảo mật Jonah Burgess từ Rapid7, người đã phát hiện và báo cáo lỗi này (GHSA-qf6p-p7ww-cwr9) vào ngày 17 tháng 3, cho biết ông chỉ nhận được phản hồi xác nhận từ đội ngũ bảo trì Gogs vào ngày 28 tháng 3. Kể từ đó, mọi liên lạc nhằm cập nhật tình trạng hoặc đề xuất gia hạn thời gian sửa lỗi đều bị phớt lờ.

"Chúng tôi không nhận được bất kỳ phản hồi nào thêm từ Gogs và GHSA vẫn chưa được trả lời kể từ ngày 28 tháng 3", Burgess chia sẻ. Do tình trạng này, đội ngũ của Burgess đã gửi một pull request đề xuất bản sửa lỗi tạm thời và hiện đang chờ xem xét. Tuy nhiên, nhà tài trợ của Gogs là DigitalOcean cũng chưa đưa ra phản hồi chính thức về thời điểm phát hành bản vá.

Chi tiết kỹ thuật: Lỗi tiêm đối số

Lỗ hổng này xuất phát từ một lỗi tiêm đối số (argument injection flaw) trong quy trình gộp pull request của Gogs, cụ thể là hàm Merge() nằm trong file internal/database/pull.go.

Vấn đề xảy ra khi chủ sở hữu kho lưu trữ (repo) hoặc quản trị viên bật tính năng "Rebase before merging" (Rebase trước khi gộp). Khi đó, tên nhánh cơ sở (base branch) của pull request sẽ được chuyển trực tiếp đến lệnh git rebase mà không có dấu phân tách -- để đánh dấu kết thúc các tùy chọn lệnh. Hơn nữa, Gogs cũng không thực hiện việc làm sạch (sanitize) dữ liệu đầu vào một cách thích hợp.

Điều này cho phép kẻ tấn công tạo một nhánh độc hại với tên chứa các lệnh thực thi (ví dụ: --exec=touch${IFS}/tmp/rce_proof). Khi đó, Git sẽ hiểu nhầm đó là một cờ --exec thay vì tên nhánh và thực thi đoạn mã độc. Đối với các cài đặt trên Windows, phương thức truyền tải mã độc có chút khác biệt, nhưng Burgess đã phát triển một mô-đun khai thác có thể hoạt động đa nền tảng.

Hậu quả và giải pháp giảm thiểu rủi ro

Nếu bị khai thác thành công, kẻ tấn công có thể đánh cắp thông tin đăng nhập, bí mật xác thực hai yếu tố (2FA), hoặc thậm chí sửa đổi mã nguồn trong các kho lưu trữ được lưu trữ. Điều này có thể dẫn đến các cuộc tấn công chuỗi cung ứng (supply-chain attack) rộng lớn, ảnh hưởng đến các phần mềm phụ thuộc vào mã nguồn đó.

Trong khi chờ đợi bản vá chính thức từ đội ngũ phát triển Gogs, Burgess khuyến nghị người dùng nên áp dụng các biện pháp phòng ngừa sau:

  • Hạn chế đăng ký người dùng: Đặt DISABLE_REGISTRATION = true trong file app.ini để ngăn chặn người dùng không đáng tin cậy tạo tài khoản.
  • Hạn chế tạo kho lưu trữ: Đặt MAX_CREATION_LIMIT = 0 trong app.ini để ngăn người dùng tạo repo mới của riêng họ. Điều này chặn đường tấn công dễ dàng nhất, nhưng không ngăn được việc khai thác từ những người dùng đã có quyền ghi trên các repo hiện có.
  • Kiểm tra cài đặt Rebase: Vô hiệu hóa tùy chọn "Rebase before merging" trong phần Settings > Advanced. Tuy nhiên, Burgess cảnh báo rằng biện pháp này không hiệu quả nếu người dùng độc hại sở hữu hoặc có quyền quản trị trên repo, vì họ có thể bật lại tính năng này bất cứ lúc nào.

Hiện tại, vẫn chưa có cài đặt nào ở cấp độ toàn cầu hoặc tổ chức để hạn chế tính năng này, khiến các quản trị viên hệ thống phải cực kỳ cảnh giác trong thời gian tới.

Chia sẻ:FacebookX
Nội dung tổng hợp bằng AI, mang tính tham khảo. Xem bài gốc ↗