GitHub cập nhật actions/checkout để ngăn chặn tấn công Pwn Request
GitHub vừa cập nhật action 'actions/checkout' nhằm vô hiệu hóa các mẫu tấn công 'pwn request' phổ biến, vốn lợi dụng trigger 'pull_request_target' để thực thi mã độc với đặc quyền...
GitHub đang đẩy mạnh bảo mật chuỗi cung ứng phần mềm bằng cách cập nhật actions/checkout. Thay đổi này nhằm chặn đứng các cuộc tấn công được gọi là “pwn request”, nơi kẻ tấn công lợi dụng trigger pull_request_target để thực thi mã độc với toàn bộ đặc quyền của workflow.
Table Of Content
Cơ chế bảo vệ mới
Kể từ ngày 18/06/2026, phiên bản mới nhất của actions/checkout — công cụ chính thức để kiểm tra (checkout) mã nguồn vào runner của workflow — sẽ mặc định từ chối các mẫu tấn công pwn request phổ biến. Dự kiến, thay đổi này sẽ được áp dụng cho tất cả các phiên bản chính đang được hỗ trợ vào ngày 16/07/2026.
Cụ thể, actions/checkout v7 sẽ từ chối fetch mã nguồn từ các fork pull request trong các workflow sử dụng pull_request_target hoặc workflow_run (khi sự kiện là pull_request). Nếu các tác giả workflow muốn bỏ qua cơ chế này, họ phải thiết lập cờ allow-unsafe-pr-checkout thành true.
Tại sao Pwn Request lại nguy hiểm?
Trigger pull_request_target thường được dùng cho các tác vụ tự động hóa như gắn nhãn hoặc bình luận. Tuy nhiên, nó chạy trong ngữ cảnh của nhánh mặc định (default branch) của repository gốc, có quyền truy cập vào các secrets và GITHUB_TOKEN với đặc quyền đọc/ghi. Nếu workflow này thực hiện checkout mã nguồn từ một fork không đáng tin cậy, kẻ tấn công có thể chèn mã độc để đánh cắp các thông tin nhạy cảm này.
GitHub nhấn mạnh: “Việc chạy mã nguồn chưa được kiểm duyệt từ một fork bên trong các workflow có đặc quyền cao thường cho phép kẻ tấn công thực thi mã với toàn bộ quyền hạn của workflow đó.”
Khuyến nghị cho nhà phát triển
Mặc dù đây là một bước tiến quan trọng, GitHub lưu ý rằng đây chỉ là một biện pháp “guardrail” (hàng rào bảo vệ) chứ không phải là giải pháp toàn diện. Các chuyên gia bảo mật khuyến cáo:
- Chỉ sử dụng
pull_request_targetkhi thực sự cần thiết. - Chuyển sang dùng
pull_requestnếu workflow không yêu cầu đặc quyền cao hoặc truy cập vào secrets. - Hạn chế tối đa các quyền (permissions) được cấp cho workflow.
- Luôn kiểm tra kỹ lưỡng các đầu vào (input) từ người dùng để tránh thực thi mã không an toàn.
Lưu ý rằng thay đổi này chỉ áp dụng cho actions/checkout. Các phương thức checkout khác hoặc các sự kiện kích hoạt khác (như issue_comment) vẫn tiềm ẩn rủi ro nếu không được cấu hình cẩn thận.
Nguồn tham khảo: The Hacker News



No Comment! Be the first one.