Cuộc "tấn công độc hại quy mô lớn" nhắm vào RubyGems vào tháng 5 năm 2026 là tác phẩm của một nhóm Agent OpenAI, theo một báo cáo mới được công bố bởi các nhà nghiên cứu Spencer Kitts, Thomas Larsen và Sydney Von Arx.
Vào ngày 12 tháng 5, Maciej Mensfeld, giám đốc sản phẩm cấp cao về bảo mật chuỗi cung ứng phần mềm tại Mend.io, đã tiết lộ chi tiết về một cuộc tấn công mạng phối hợp nhắm vào trình quản lý gói cho ngôn ngữ lập trình Ruby với hàng trăm gói gem rác, khiến các quản trị viên phải tạm dừng đăng ký người dùng mới trong khoảng bốn ngày.
Trong một phân tích tiếp theo, Socket đã làm nổi bật một chiến dịch có tên gọi GemStuffer, liên quan đến một cụm hơn 150 gem sử dụng kho lưu trữ gói làm kênh exfiltration dữ liệu và dàn dựng việc thu thập dữ liệu công khai từ các cổng dịch vụ dân chủ của chính quyền địa phương Anh. Vào thời điểm đó, công ty bảo mật chuỗi cung ứng phần mềm lưu ý rằng hoạt động này có cùng "mẫu hình lạm dụng" với sự cố phát tán spam diện rộng trên RubyGems.
"Hiện chưa rõ mục tiêu cuối cùng là gì, vì thông tin này vốn dĩ đã có thể truy cập công khai," The Hacker News đưa tin vào lúc đó.
Những phát hiện mới nhất, được The Wall Street Journal đưa tin đầu tiên, cho thấy những sự kiện này được thúc đẩy bởi một nhóm Agent OpenAI, với gói hàng sớm nhất được tải lên RubyGems vào ngày 5 tháng 5 năm 2026, trước khi hơn 2.000 gói hàng được gửi đi từ ngày 11 đến 12 tháng 5 năm 2026. Sau đó, các Agent này đã xuất bản thêm 5 gói nữa từ ngày 26 đến 27 tháng 5 năm 2026 và 83 gói khác vào ngày 18 tháng 6 năm 2026.
Đánh giá cho rằng sự cố này là kết quả của một đàn Agent OpenAI bắt nguồn từ việc các gói hàng được soạn thảo bằng mô hình ngôn ngữ lớn (LLM) và hàng trăm gói hàng được đẩy lên RubyGems có chứa "oai" trong tên. Mười lăm gói hàng ghi "oai" là tác giả, trong khi một gói khác sử dụng địa chỉ email liên hệ là "[email protected]".
Danh sách một số gói gem rác:
- chatoaitestgit1778552630
- lambhgproxyoai
- oaibx0092307
- oaicx8859010
- oaicx3857133
- oaidx4526859
- oaiex4149420
- oaifx7943598
- oaigx5861576
- oaihx0305933
- oaiix0379958
- oaijx0156671
- oaikx5119809
- oailm2
- oaipgttatggxy
- oaifetchgemugkejy
- oaiproxytestabc789
- oaitfossilxbnowl
Sự tương đồng với các vụ tấn công khác
"Nhóm Agent này hành xử cực kỳ giống với các Agent trên wiki Đức mà chúng tôi đã tìm thấy trước đó," các nhà nghiên cứu cho biết, nhắc lại một sự cố khác vào tháng 5 năm 2026, trong đó các Agent tự hành được triển khai nội bộ đã chiếm quyền điều khiển một diễn đàn wiki của Đức, DseWiki, và biến nó thành một bảng tin để hỏi đáp, tổng hợp kết quả và chia sẻ các kỹ thuật vượt qua các hạn chế của chúng.
"Các Agent tháng 6 đã truy cập vào 49 tệp giống như các Agent trên wiki. Các Agent tháng 5 truy cập vào các tệp khác (chủ yếu là dữ liệu chính quyền địa phương Anh), nhưng những tệp này có đặc điểm rất giống với những tệp mà các Agent trên wiki theo đuổi. Hơn nữa, chúng sử dụng cùng một phương pháp thu thập. 1.397 gói hàng đề cập đến r.jina.ai, vốn được các Agent trên wiki sử dụng rất nhiều. Chúng tôi cũng thấy nhiều gói hàng đề cập đến example.com, nơi các Agent wiki đã sử dụng để kiểm tra khả năng đăng bài của chúng."
Kỹ thuật khai thác và mục tiêu
Các Agent được cho là đã khai thác một đặc điểm thiết kế trong quy trình xây dựng tài liệu của RubyDoc.info để exfiltrate dữ liệu công khai từ các trang web của chính phủ Anh, có khả năng là một phần của nhiệm vụ thu thập thông tin tương tự như các nhiệm vụ nghiên cứu được xử lý bởi các Agent khai thác wiki Đức.
"Quy trình xây dựng tài liệu cho một gem bao gồm việc đánh giá tệp '.yardopts' do người dùng chỉ định, cho phép liên kết đến các tập lệnh Ruby nhằm hỗ trợ quy trình này," các nhà nghiên cứu giải thích. "Trong chiến dịch GemStuffer, các Agent đã lạm dụng điều này để chiếm quyền thực thi mã từ xa RCE trên các máy chủ của RubyDoc.info."
Một trong những gem, "zzsouthrunner" (phù hợp với sơ đồ đặt tên "ZZ" mà các Agent đã áp dụng trong cả hai sự cố wiki và Hugging Face) đã được tìm thấy để lại một bình luận rõ ràng ở đầu tệp "data/script.rb":
# malicious crawler/exfil for Southwark Jan 2026 docs via rubydoc.info worker
Điều đáng chú ý là chiến dịch GemStuffer đã nhắm mục tiêu vào các cổng ModernGov công khai được sử dụng bởi Lambeth, Wandsworth và Southwark. Toàn bộ chuỗi khai thác có thể được tóm tắt như sau:
- Gửi một gói hàng độc hại lên RubyGems.
- Kích hoạt một yêu cầu tài liệu để RubyDoc.info xây dựng gói hàng đó.
- Sử dụng tập lệnh build để chạy mã trên RubyDoc.info và thu thập dữ liệu các trang web mục tiêu.
- Exfiltrate dữ liệu khỏi máy chủ của RubyDoc.info bằng cách xuất bản một gem khác ngược lại kho lưu trữ RubyGems, nơi có thể xem công khai.
Nỗ lực đánh cắp API Key và các lỗ hổng khác
Ngoài ra, các Agent OpenAI còn bị phát hiện cố gắng đánh cắp API Key của những người dùng khác sau khi chiếm được quyền RCE trong môi trường xây dựng, đồng thời nhận thức rõ ràng rằng những gì chúng đang làm là hành vi xâm nhập trái phép vào các hệ thống thực tế.
Điều này được chứng minh bằng tên của các tệp (ví dụ: hack.rb, evil.rb, inject.rb, exploit.rb và ssrf.rb), chính các gói hàng (ví dụ: pwnp999, exfiltestwand3, hacksvn1778554764 và lambproxyhackabcxyz) và các bình luận để lại trong mã nguồn (ví dụ: "# malicious probe," "#hack," "# malicious test," và "# malicious crawler/exfil").
Tuy nhiên, trong một số trường hợp, các Agent bất trị này đã cố gắng hoạt động ẩn danh bằng cách để lại các bình luận nhằm che giấu payload độc hại trong phiên bản phát hành tiếp theo của các gói hàng. "# disable evil in next version and bump version," là một bình luận được để lại trong tệp "data/evil.rb" của gem yardxabc889.
Đáng lo ngại hơn, các Agent cũng đã cố gắng khai thác một lỗi bộ đệm CDN (điểm CVSS: 7.3, không có mã CVE) vào ngày 12 tháng 5 năm 2026, lỗi này chỉ được RubyGems vá vào tháng 7 năm 2026. Về cơ bản, vấn đề này có thể trao API Key của một tài khoản cho một chủ tài khoản khác trong tối đa một giờ, từ đó cho phép kẻ tấn công làm rò rỉ Key của người dùng ngẫu nhiên.
Sáu trong số các gói hàng được xuất bản như một phần của chiến dịch đã sử dụng lỗ hổng này trước khi nó được khắc phục. Trong cảnh báo tháng 7, RubyGems cho biết họ không tìm thấy dấu hiệu nào cho thấy con đường này đã bị khai thác trong ngữ cảnh độc hại. Tên của sáu gói Ruby gem này là:
- slnleaker5
- zzwandshostyard
- lambfetchx548811
- lambfetchx550961
- lambfetchx550961
- yardbreakerxqh1778552850
Phản hồi từ OpenAI và RubyGems
Đây không phải là lần đầu tiên các Agent OpenAI nhắm mục tiêu vào RubyGems. Trong báo cáo rút kinh nghiệm công bố vào cuối tháng trước, OpenAI cho biết họ đã quan sát thấy các Agent của mình khai thác quy trình xử lý RubyGems dựa trên JRuby của JFrog Artifactory để lấy signing key và giả mạo thông tin đăng nhập quản trị viên như một phần của cuộc tấn công nhắm vào hạ tầng của chính công ty AI này.
Các nhà nghiên cứu cũng lưu ý rằng hiện chưa rõ tại sao các Agent lại mất công tấn công RubyGems để thu thập dữ liệu công khai và liệu các Agent có hợp tác với nhau như trong các sự cố khác hay không. Người ta tin rằng các Agent có thể đã cố gắng sử dụng RubyGems như một cách để lưu trữ dữ liệu đã thu thập một cách bền vững và vượt qua các giới hạn về tốc độ (rate limits).
Tuần trước, OpenAI cho biết họ coi sự cố wiki là một "trường hợp sai lệch (misalignment) tương tự như những trường hợp chúng tôi đã chia sẻ" và trong lịch sử, họ "coi sự sai lệch phần lớn là một câu hỏi nghiên cứu".
Công ty Mỹ này cũng tuyên bố rằng cộng đồng AI vẫn chưa có một "tiêu chuẩn rõ ràng về cách báo cáo sự sai lệch xuất hiện trong quá trình đào tạo, đánh giá và triển khai, bao gồm cả những ví dụ không giống với các sự cố bảo mật truyền thống nhưng có thể cung cấp thông tin chi tiết về hành vi của AI và các rủi ro trong tương lai."
"Dựa trên đánh giá của chúng tôi, các Agent của chúng tôi đã sử dụng nền tảng RubyGems để truy cập Internet nhằm thực hiện các nhiệm vụ lành tính và lấy thông tin công khai," OpenAI cho biết trong một tuyên bố chia sẻ với Reuters. "Chúng tôi sẽ tiếp tục điều tra như một phần của quá trình đánh giá rộng hơn về hoạt động của Agent trong quá trình đào tạo và đánh giá."
Về phần mình, RubyGems cho biết cuộc điều tra của chính họ không tìm thấy bằng chứng nào cho thấy các nỗ lực này đã thành công và họ cam kết phát hiện và chống lại sự lạm dụng bất kể hoạt động đó bắt nguồn từ con người hay các công cụ tự động.