TanStack cân nhắc chỉ nhận Pull Request được mời sau vụ tấn công chuỗi cung ứng
Sâu Shai-Hulud đã khai thác lỗi cấu hình GitHub Actions để đầu độc bộ nhớ đệm chia sẻ. Dự án hiện đang cân nhắc giải pháp triệt để là chỉ chấp nhận các đóng góp được mời.

Đội ngũ phát triển TanStack đã công bố các biện pháp bảo mật và đề xuất mới sau một vụ vi phạm dữ liệu nghiêm trọng xảy ra vào tuần trước. Trong đó, đáng chú ý nhất là khả năng chỉ chấp nhận các Pull Request (PR) được mời — một bước lùi so với mô hình đóng góp mở cốt lõi của hầu hết các dự án mã nguồn mở.
Cuộc tấn công này đã sử dụng mã độc từ sâu máy tính Shai-Hulud, được công bố bởi nhóm phần mềm độc hại TeamPCP. Loại sâu này có khả năng trích xuất các bí mật (secrets) từ bộ nhớ được sử dụng bởi GitHub Actions. Vụ việc bắt đầu bằng một PR kích hoạt quy trình làm việc tự động thông qua việc TanStack sử dụng tính năng pull_request_target. Điều này dẫn đến việc mã độc được biên dịch và chạy bởi một GitHub Action, từ đó đầu độc bộ nhớ đệm (cache) được sử dụng trên toàn bộ kho lưu trữ.
Đội ngũ TanStack cho biết quy trình làm việc của họ đã sử dụng một mô hình mà GitHub cảnh báo không nên áp dụng. Tính năng pull_request_target được định nghĩa dành cho các PR "không yêu cầu xử lý nguy hiểm, chẳng hạn như biên dịch hoặc chạy nội dung của chính PR đó".
Các biện pháp khắc phục ngay lập tức
Kể từ sau vụ tấn công, TanStack đã loại bỏ hoàn toàn việc sử dụng pull_request_target trong đường ống tích hợp liên tục (CI) của mình. Ngoài ra, dự án cũng đã vô hiệu hóa bộ nhớ đệm được sử dụng bởi pnpm (trình quản lý gói Node.js) và GitHub Actions. Để tăng cường bảo mật, họ đã cố định các hành động (actions) vào mã băm commit SHA (Secure Hash Algorithm) thay vì các thẻ (tags) có thể định hướng lại, đồng thời tắt việc sử dụng tin nhắn văn bản cho xác thực hai yếu tố (2FA).
Kho lưu trữ TanStack hiện nay cũng đang sử dụng một tính năng của pnpm 11 gọi là minimumReleaseAge. Tính năng này yêu cầu các phụ thuộc phải được xuất bản trong một khoảng thời gian nhất định trước khi có thể được cài đặt. Ý tưởng chủ đạo là các gói phần mềm bị xâm phạm thường sẽ được phát hiện và gỡ bỏ trước khi khoảng thời gian này kết thúc.
Đề xuất về mô hình "chỉ được mời"
Một đề xuất quyết liệt hơn đang được cân nhắc là đóng hoàn toàn khả năng cho các cộng tác viên bên ngoài mở Pull Request. "Chúng tôi tuyệt đối không sẽ chuyển sang mã nguồn đóng", đội ngũ phát triển khẳng định, nhưng họ có thể áp dụng một cơ chế mà các đóng góp phải bắt đầu bằng một vấn đề (issue) hoặc cuộc thảo luận, và PR chỉ có thể được gửi sau khi nhận được lời mời.
TanStack thừa nhận rằng đây sẽ là một bước đi cực đoan, bởi vì "PR mở là một phần trong cách nhiều người trong chúng ta trở thành người bảo trì dự án từ những ngày đầu tiên". Tuy nhiên, bước đi này có thể không cần thiết nếu kho lưu trữ được bảo vệ (hardened) đủ tốt để các PR độc hại không thể gây thiệt hại.
Đây là cuộc tranh luận mà những người bảo trì của các dự án mã nguồn mở khác sẽ theo dõi với sự quan tâm. Bảo mật chuỗi cung ứng là một vấn đề lớn, nhưng việc giới hạn Pull Request chỉ dành cho người được mời có thể làm tổn thương dự án bằng cách ngăn cản sự đóng góp từ cộng đồng.
Một khía cạnh khác của vấn đề này là mức độ trách nhiệm thuộc về chính nền tảng GitHub. "Phạm vi bộ nhớ đệm trong GitHub Actions không nên âm thầm kết nối các PR từ nhánh fork và các nhánh của kho lưu trữ gốc", đội ngũ TanStack nhận định.
Bài viết liên quan

Công nghệ
Cerebras, đối tác thân thiết của OpenAI, sẵn sàng cho đợt IPO kỷ lục định giá tới 26,6 tỷ USD
04 tháng 5, 2026

Công nghệ
Microsoft giới thiệu Surface Pro 12 và Surface Laptop 8: Sức mạnh chip Intel, giá thành gây sốc
19 tháng 5, 2026

Công nghệ
Substrate (YC S24) tuyển dụng Technical Success Manager cho nền tảng AI chuyên xử lý thanh toán y tế
13 tháng 5, 2026
