Vào ngày 18 tháng 9, CrowdSec cho biết một kẻ tấn công đã sao chép khoảng 170 kho mã nguồn (repository) GitHub riêng tư của công ty vào ngày 22 tháng 5, sử dụng tài khoản của một nhân viên vừa mới nghỉ việc.
Công ty bảo mật của Pháp này đã để ngỏ quyền truy cập GitHub của nhân viên đó. CrowdSec cho biết laptop của người này đã bị xâm nhập trong cuộc tấn công chuỗi cung ứng vào TanStack diễn ra vào tháng 5, trong đó các phiên bản độc hại của gói npm TanStack đã đánh cắp thông tin xác thực từ máy tính của các nhà phát triển.
Mã nguồn này đã xuất hiện trên một diễn đàn trực tuyến vào ngày 16 tháng 9. Cùng với mã nguồn, dữ liệu bị rò rỉ còn bao gồm địa chỉ email của 83 người dùng CrowdSec và tên, địa chỉ email cùng ngữ cảnh đầu tư của 51 nhà đầu tư tiềm năng từ năm 2020.
CrowdSec tuyên bố rằng tài khoản này chỉ được sử dụng để sao chép mã, cơ sở hạ tầng và cơ sở dữ liệu của công ty không bị truy cập và không có mã nguồn nào bị thay đổi.
Cách thức mã nguồn bị đánh cắp
Vào ngày 11 tháng 5, 84 phiên bản độc hại của 42 gói npm TanStack đã được phát hành. Lỗ hổng này được theo dõi dưới mã hiệu CVE-2026-45321. Theo khuyến cáo từ TanStack, việc cài đặt một trong những phiên bản đó sẽ thực thi mã đánh cắp thông tin xác thực từ máy tính, bao gồm GitHub tokens, SSH keys và thông tin xác thực đám mây.
Công ty cho biết việc sao chép được thực hiện 11 ngày sau đó bằng một GitHub OAuth token từ tài khoản của cựu nhân viên. Công ty đã giữ lại quyền truy cập của anh ta để anh ta có thể hoàn thành một số công việc còn dang dở.
CrowdSec đã xóa tài khoản của người này khỏi tổ chức GitHub của họ vào ngày 25 tháng 5, ba ngày sau khi việc sao chép diễn ra và vài tháng trước khi biết về vụ rò rỉ. Các quyền truy cập khác của anh ta đã bị xóa trước đó, điều mà công ty cho rằng giải thích tại sao họ không thấy hoạt động đáng ngờ nào trong hệ thống AWS của mình.
Token này không để lại dấu vết trong các bản ghi (log) GitHub mà công ty có thể kiểm tra và đã không còn tồn tại khi họ phát hiện ra vụ rò rỉ. Đội ngũ hỗ trợ của GitHub sau đó đã truy vết lịch sử của token và xác nhận nghi ngờ của công ty rằng TanStack chính là nguồn cơn.
CrowdSec không cho biết gói độc hại nào đã xâm nhập vào laptop của cựu nhân viên hoặc vào thời điểm nào, và báo cáo của họ không bao gồm các phát hiện riêng của GitHub. Công ty cho biết máy tính của các nhà phát triển khác đã được kiểm tra và đều sạch mã độc.
Cuộc tấn công tương tự cũng đã ảnh hưởng đến các công ty khác. Mistral AI cho biết một thiết bị của nhà phát triển có liên quan trong trường hợp của họ, và OpenAI cho biết hai thiết bị của nhân viên đã bị ảnh hưởng, dẫn đến việc truy cập trái phép vào một tập hợp giới hạn các kho mã nguồn nội bộ của họ.
Nội dung kho lưu trữ bị rò rỉ
Security Engine mã nguồn mở của CrowdSec giúp phát hiện các cuộc tấn công vào máy chủ, và những người dùng chia sẻ phát hiện của họ sẽ nhận được một danh sách chặn (blocklist) chung chứa các địa chỉ IP độc hại. Mã nguồn bị rò rỉ đến từ các kho lưu trữ riêng tư của công ty, không phải từ engine công khai này.
Theo công ty, mã nguồn bao gồm bảng điều khiển web (web console), các đoạn mã và mô hình khoa học dữ liệu, các tập lệnh tự động hóa và thuật toán đồng thuận dùng để xác định địa chỉ IP nào được đưa vào danh sách chặn.
Công ty cho biết mã nguồn này đã cũ gần bốn tháng và đã thay đổi rất nhiều kể từ đó.
CrowdSec cho biết vụ rò rỉ cũng tiết lộ các ngưỡng (threshold) mà thuật toán đồng thuận sử dụng, chẳng hạn như cần bao nhiêu lượt phát hiện trước khi thêm một địa chỉ IP vào danh sách chặn. Những thông tin này trước đây chưa từng được công khai.
Theo những gì công ty biết, danh sách chặn vẫn không thể bị "đầu độc" (poisoned), nghĩa là không thể bị lừa để chặn một địa chỉ IP vô hại. Họ giải thích rằng kẻ tấn công sẽ cần hàng chục lượt phát hiện từ hàng chục engine đáng tin cậy trên hàng chục mạng riêng biệt với chi phí rất lớn. CrowdSec cũng cho biết họ có thể thay đổi các ngưỡng này, như họ vẫn thường làm.
Theo công ty, thông tin xác thực duy nhất có thể sử dụng được trong vụ rò rỉ là dành cho dịch vụ thông báo SNS của AWS, và nó chỉ có thể gửi tin nhắn đến một chủ đề (topic) duy nhất. Ai đó đã cố gắng sử dụng nó vào ngày 17 tháng 8, một tháng trước khi mã nguồn được đăng tải, nhưng không tiến triển thêm được gì. Các token khác trong mã nguồn đã được thay đổi định kỳ (rotated) hoặc không thể sử dụng từ internet.
CrowdSec cho biết họ có khoảng 150.000 người dùng. Đội ngũ khoa học dữ liệu của họ đã giữ lại 83 địa chỉ email bị lộ để nghiên cứu cách mọi người sử dụng sản phẩm, và công ty cho biết sẽ liên hệ với những người dùng đó.
Thông tin chi tiết về các nhà đầu tư đến từ một hệ thống năm 2020 mà CrowdSec cho biết chưa từng có ý định công khai. Công ty sẽ báo cáo vụ rò rỉ cho các nhà đầu tư và các cơ quan chức năng. CEO Philippe Humeau đã viết thư xin lỗi cá nhân tới các nhà đầu tư trong báo cáo.
Công ty bị ảnh hưởng đã thay đổi các thông tin xác thực bị lộ vào ngày 16 và 17 tháng 9. Vào thời điểm đó, họ không yêu cầu phần mềm bảo vệ điểm cuối (endpoint protection) trên máy tính của các nhà phát triển, nhưng hiện tại họ đã triển khai phần mềm này trên laptop của những nhân viên làm việc với mã nguồn hoặc hệ thống của công ty.
Cả báo cáo của CrowdSec và tuyên bố đầu tiên của họ đều không yêu cầu người dùng thực hiện bất kỳ hành động nào.
Sự thay đổi trong thông báo của CrowdSec
Báo cáo ngày 18 tháng 9 của CrowdSec có sự khác biệt so với tuyên bố đầu tiên được công bố một ngày trước đó. Trong tuyên bố đó, CrowdSec nói rằng "Không có dữ liệu khách hàng, tên đăng nhập/mật khẩu, tên, tổ chức hay bất kỳ thứ gì khác bị rò rỉ" và tác động chỉ giới hạn trong nội bộ công ty.
Tuyên bố đầu tiên cũng xác định vụ xâm nhập TanStack là nguồn rò rỉ rất có khả năng. Họ nói rằng một thành phần được sử dụng bên trong CrowdSec vào tháng 5 dường như đã bị cài cửa sau để đánh cắp API key có quyền đọc mã nguồn riêng tư.
Báo cáo ngày 18 tháng 9 đính chính rằng không có phiên bản TanStack độc hại nào được tìm thấy trong mã nguồn của CrowdSec, thay vào đó chỉ ra tài khoản của cựu nhân viên. Báo cáo này cũng liệt kê tên của các nhà đầu tư và 83 địa chỉ email người dùng, những thông tin mà tuyên bố đầu tiên khẳng định là không bị rò rỉ.