Bài viết này do AI tạo ra, có thể mắc sai sót.
read, write, write-only, none.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.
read: restore, không save; mặc định cho event low-trust như pull_request_target.write: restore và save; mặc định cho event tin cậy như push.write-only: chỉ save, không restore.none: chặn toàn bộ cache access.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.
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.
read cho job test từ code không tin cậy.write cho build trusted cần tái dùng artifact cache.none cho job xử lý secret hoặc job không cần cache.Đâ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.
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.
GitHub Changelog, 10/09/2026: Control GitHub Actions cache access with cache-mode.