Một lỗ hổng bảo mật nghiêm trọng trong CodeRabbit , công cụ đánh giá mã nguồn được hỗ trợ bởi AI, có thể đã cho phép kẻ tấn công có quyền ghi vào hơn 1 triệu kho lưu trữ GitHub . Lỗ hổng này được phát hiện bởi các nhà nghiên cứu bảo mật từ Kudelski Security vào tháng 1 năm 2025, họ phát hiện rằng công cụ này đang thực thi mã do người dùng gửi mà không có sự cách ly phù hợp, làm lộ các thông tin xác thực quan trọng trong quá trình này.
CodeRabbit là một dịch vụ phổ biến sử dụng các mô hình ngôn ngữ lớn để phân tích các thay đổi mã nguồn và cung cấp phản hồi về bảo mật. Công cụ này yêu cầu quyền truy cập GitHub rộng rãi để hoạt động, bao gồm quyền ghi vào các kho lưu trữ, điều này khiến lỗ hổng này trở nên đặc biệt nguy hiểm.
Các quyền GitHub cần thiết của CodeRabbit:
- Quyền đọc nội dung repository
- Quyền ghi nội dung repository
- Quyền truy cập pull request và issue
- Khả năng tạo và chỉnh sửa branch
- Quyền truy cập metadata và cài đặt repository
![]() |
---|
Giao diện đăng nhập CodeRabbit nơi người dùng có thể truy cập công cụ đánh giá mã nguồn được hỗ trợ bởi AI |
Nguyên nhân gốc rễ: Thực thi mã không an toàn
Lỗ hổng bắt nguồn từ việc CodeRabbit sử dụng Rubocop , một công cụ phân tích mã Ruby , đang chạy bên ngoài môi trường sandbox an toàn của họ. Khi xử lý đánh giá mã, hệ thống sẽ thực thi các công cụ bên ngoài như Rubocop với quyền truy cập vào các biến môi trường nhạy cảm chứa khóa API và token xác thực. Kẻ tấn công có thể khai thác điều này bằng cách gửi các tệp cấu hình Rubocop độc hại sẽ thực thi mã tùy ý trên máy chủ của CodeRabbit .
Các nhà nghiên cứu đã chứng minh cách họ có thể trích xuất các thông tin xác thực nhạy cảm bao gồm khóa riêng GitHub , token API cho các dịch vụ khác nhau và khóa truy cập AWS . Những thông tin xác thực này sau đó có thể được sử dụng để truy cập và sửa đổi bất kỳ kho lưu trữ nào đã cấp quyền cho CodeRabbit .
Thông tin xác thực bị lộ:
- Khóa riêng tư GitHub và token API
- Khóa API AWS
- Khóa API Anthropic và OpenAI
- Tham số kết nối cơ sở dữ liệu
- Token phiên và thông tin đăng nhập người dùng
![]() |
---|
Một đoạn mã từ ứng dụng Python làm nổi bật thông báo bảo mật nhằm giải quyết các lỗ hổng tiềm ẩn |
Mối quan ngại của cộng đồng về tính minh bạch
Cộng đồng bảo mật đã nêu ra những mối quan ngại đáng kể về cách CodeRabbit xử lý sự cố này. Nhiều người dùng lưu ý rằng công ty chỉ công bố phản hồi của họ sau khi phát hiện của các nhà nghiên cứu lan truyền trên các nền tảng mạng xã hội, thay vì chủ động tiết lộ vấn đề. Một số khách hàng đã hủy đăng ký của họ do thiếu tính minh bạch này.
Tôi đã hủy đăng ký trả phí coderabbit của mình, vì điều luôn khiến tôi lo lắng là khi một bài đăng phải lan truyền trên HN thì công ty mới thừa nhận rằng đã xảy ra sự cố.
Phản hồi của công ty cũng bị chỉ trích vì có vẻ như đang hạ thấp mức độ nghiêm trọng của vấn đề và sử dụng ngôn ngữ doanh nghiệp mà một số thành viên cộng đồng tin rằng được tạo ra bởi các công cụ AI .
Dòng thời gian:
- 24 tháng 1, 2025: Lỗ hổng được tiết lộ cho CodeRabbit
- 24 tháng 1, 2025: CodeRabbit đã khắc phục vấn đề trong vòng vài giờ
- Tháng 1, 2025: Các nhà nghiên cứu công bố phát hiện của họ
- Tháng 1, 2025: CodeRabbit công bố phản hồi của họ sau áp lực từ cộng đồng
Tác động bảo mật rộng hơn
Sự cố này làm nổi bật một số xu hướng đáng lo ngại trong phát triển phần mềm hiện đại. Lỗ hổng đã phơi bày các vấn đề cơ bản về cách các công cụ bên thứ ba xử lý thông tin xác thực nhạy cảm và thực thi mã không đáng tin cậy. Các chuyên gia bảo mật trong cộng đồng đã chỉ ra rằng việc lưu trữ khóa riêng GitHub trong các biến môi trường vi phạm các khuyến nghị bảo mật của chính GitHub .
Vụ vi phạm cũng đặt ra câu hỏi về hệ thống quyền của GitHub , mà nhiều người cho rằng buộc các ứng dụng bên thứ ba phải yêu cầu quyền truy cập quá rộng. Các nhà phê bình đề xuất rằng GitHub nên triển khai kiểm soát quyền chi tiết hơn để ngăn chặn các tình huống mà một dịch vụ bị xâm phạm có thể ảnh hưởng đến hàng triệu kho lưu trữ.
![]() |
---|
Biểu đồ trình tự minh họa luồng giao tiếp trong phần mềm, có liên quan đến việc hiểu các tác động bảo mật trong các công cụ bên thứ ba |
Phản hồi và khắc phục
CEO của CodeRabbit đã phản hồi rằng lỗ hổng đã được khắc phục trong vòng vài giờ sau khi tiết lộ và tuyên bố không có dữ liệu khách hàng nào bị ảnh hưởng. Tuy nhiên, các thành viên cộng đồng đã đặt câu hỏi về cách công ty có thể chắc chắn về điều này, xét rằng các tác nhân độc hại có thể đã phát hiện và khai thác lỗ hổng trước khi các nhà nghiên cứu báo cáo.
Công ty đã triển khai sandbox toàn diện cho tất cả việc thực thi mã và chuyển bí mật của họ sang hệ thống kho khóa dựa trên đám mây. Họ cũng đã xuất bản một bài đăng blog kỹ thuật chi tiết các biện pháp bảo mật mới của họ, mặc dù một số người xem điều này như một nỗ lực biến sự cố thành cơ hội tiếp thị.
Sự cố này là lời nhắc nhở nghiêm khắc về những rủi ro liên quan đến việc cấp quyền rộng rãi cho các công cụ phát triển bên thứ ba, và tầm quan trọng của việc cách ly bảo mật phù hợp khi thực thi mã không đáng tin cậy.
Tham khảo: How we exploited CodeRabbit - from a simple fix to ACE and write access on 1M repositories