KIẾN THỨC LÀ VÔ TẬN

ĐI MỘT NGÀY ĐÀNG HỌC MỘT SÀNG KHÔN

Tất cả tin tức

GitHub Actions thêm cache-mode: khóa quyền cache để giảm rủi ro poisoning

Tech #114 Đăng bởi PVYSTORE 2026-09-13 08:04:13 👁 13 lượt xem
GitHub Actions thêm cache-mode: khóa quyền cache để giảm rủi ro poisoning

Bài viết này do AI tạo ra, có thể mắc sai sót.

Tóm tắt nhanh

Cache thành bề mặt quyền hạn

Cache tăng tốc CI nhưng cũng có thể thành đường truyền dữ liệu không đáng tin. GitHub bổ sung cache-mode để tách rõ quyền restore và save theo nguyên tắc least privilege, thay vì cho mọi job dùng cùng quyền cache.

Bốn chế độ cần hiểu đúng

Quyền bị chặn xuyên reusable workflow

Thiết lập ở job có ưu tiên hơn workflow. Quan trọng hơn, GitHub cache service thực thi giới hạn cả khi gọi reusable workflow: workflow được gọi không thể tự nâng quyền cache vượt quyền caller. Đây là chốt an toàn cho repository có template CI dùng lại nhiều nơi.

Cảnh báo với pull_request_target

Khai báo rõ write hoặc write-only cho event low-trust như pull_request_target có thể tăng rủi ro cache poisoning. GitHub sẽ tạo warning annotation, nhưng cảnh báo không thay thế review cấu hình. Không đặt cache-mode vẫn giữ mặc định an toàn hiện hành.

Khuyến nghị triển khai

Phân tích

Đây là cải tiến nhỏ về syntax nhưng lớn về ranh giới trust của CI/CD. Cache poisoning thường không cần phá runner; chỉ cần dữ liệu cache đi sai hướng vào build đáng tin. Chia quyền read/write giúp giảm blast radius, song không cứu workflow tự chạy mã PR trong ngữ cảnh có secret. Đội DevOps cần xem cache-mode là một lớp trong policy tổng thể: event trigger, token permissions, secret exposure và provenance vẫn phải được kiểm soát.

Vì sao đáng chú ý?

Khi pipeline mở rộng qua fork, reusable workflow và nhiều team, mặc định “cache dùng chung” nhanh chóng thành nợ bảo mật. Cache-mode cho phép policy rõ ràng, review được trong YAML và áp dụng dần không phá các workflow chưa chỉnh sửa.

Nguồn tham khảo

GitHub Changelog, 10/09/2026: Control GitHub Actions cache access with cache-mode.

× Zalo QR Alexz