Novee cho biết một nhóm lỗ hổng CI/CD có tên Cordyceps đã cho phép kẻ tấn công đánh cắp thông tin xác thực, chèn mã độc và can thiệp vào quy trình vận hành của nhiều dự án mã nguồn mở lớn.
Nhóm lỗ hổng này được phát hiện trong các kho mã thuộc Microsoft, Google, Apache, Cloudflare và Python Software Foundation. Vấn đề nằm ở các workflow GitHub Actions, nơi dữ liệu không đáng tin cậy có thể đi vào chuỗi xử lý với quyền cao hơn dự kiến.
- Cordyceps là một lớp lỗ hổng trong quy trình CI/CD, không phải một lỗi đơn lẻ.
- 30.000 kho mã được quét đã lộ ra 300 chuỗi tấn công có thể khai thác hoàn toàn.
- Các lỗi đã được khắc phục, nhưng rủi ro có thể lặp lại khi công cụ lập trình AI tái tạo các mẫu cấu hình tương tự.
Cordyceps là gì?
Cordyceps là tên Novee dùng để gọi một lớp lỗ hổng trong các quy trình CI/CD, đặc biệt là GitHub Actions. Lỗ hổng này cho phép đầu vào từ người ngoài được xử lý như dữ liệu đáng tin cậy, từ đó mở đường cho việc chiếm quyền hoặc đánh cắp bí mật truy cập.
Tên “Cordyceps” được lấy từ một loài nấm ký sinh có thể kiểm soát vật chủ. Cách đặt tên phản ánh đúng bản chất của vấn đề: một workflow trông bình thường nhưng có thể bị lợi dụng để điều khiển các bước phía sau với quyền cao hơn.
Theo kết quả rà soát, chỉ một lần quét 30.000 kho mã đã phát hiện 300 chuỗi tấn công khai thác được hoàn toàn. Các chuỗi này có thể dẫn tới việc lấy cắp credential, chèn mã độc và ảnh hưởng đến chuỗi cung ứng phần mềm.
Vì sao lỗ hổng này nguy hiểm?
Lỗ hổng này nguy hiểm vì từng bước riêng lẻ có thể vẫn vượt qua kiểm tra bảo mật, nhưng rủi ro chỉ lộ ra khi nhìn toàn bộ đường đi của dữ liệu không đáng tin cậy. Trong thực tế, điều đó khiến một workflow tưởng như vô hại có thể kích hoạt workflow khác với quyền cao hơn.
GitHub Actions thường được dùng để chạy test, build phần mềm và phát hành bản mới, nhưng nhiều nhóm phát triển lại coi nó như file cấu hình thông thường. Cách nhìn này làm tăng nguy cơ bỏ sót những điểm mà đầu vào từ pull request hoặc bình luận có thể đi vào luồng xử lý nhạy cảm.
Những gì kẻ tấn công có thể lấy được gồm token xác thực cloud, credential kho package hoặc khóa ký. Khi các bí mật này bị lộ, tác động có thể vượt xa một repository đơn lẻ và ảnh hưởng đến hệ thống phân phối phần mềm.
Các dự án lớn nào đã bị phát hiện?
Microsoft, Google, Apache, Cloudflare và Python Software Foundation đều nằm trong nhóm có lỗ hổng đã được xác nhận và khắc phục. Các ví dụ được nêu cho thấy mức độ ảnh hưởng có thể chạm tới cả hệ thống CI nội bộ lẫn tài nguyên cloud liên quan.
Tại Microsoft Azure Sentinel, một bình luận trong pull request có thể kích hoạt mã do kẻ tấn công kiểm soát trên hạ tầng CI và làm lộ một GitHub App key không hết hạn. Với Google’s AI Agent Development Kit, một pull request có thể dẫn tới quyền cao nhất trên dự án Google Cloud liên quan.
Apache Doris Analytics Database có hai đường tấn công không cần tương tác nhiều, gồm một đường lấy credential CI được mã hóa cứng và một đường khác chiếm token có quyền ghi trên code, package và pages. Cloudflare’s Workers SDK thì có thể bị thực thi lệnh tùy ý qua tên nhánh được tạo đặc biệt.
Ở Python Software Foundation, dự án Black có hơn 130 triệu lượt tải và tồn tại lỗi cho phép bất kỳ pull request nào cũng có thể lấy token của bot tự động hóa. Token này sau đó có thể được dùng để phê duyệt thêm pull request khác.
Điểm cần theo dõi tiếp theo
Các lỗi đã được vá, và Novee cho biết chưa có bằng chứng cho thấy những mẫu workflow này bị khai thác trước khi bản sửa được áp dụng. Tuy vậy, cảnh báo lớn nhất là kiểu lỗi này có thể tiếp tục tái xuất hiện trong hàng triệu repository khác.
Nhóm nghiên cứu cũng lưu ý rằng các trợ lý lập trình AI có thể vô tình tái tạo lại cùng một kiểu cấu hình sai. Với các tổ chức phát triển phần mềm lớn, việc coi file workflow là mã nguồn nhạy cảm thay vì cấu hình thông thường sẽ là điểm cần theo dõi.
Tổng kết
Cordyceps cho thấy một lỗ hổng trong CI/CD có thể tạo ra rủi ro dây chuyền từ đánh cắp credential đến chèn mã độc, ngay cả ở các dự án lớn đã được kiểm tra bảo mật.



