Lỗ hổng CVE-2024-58354 mức độ Critical trong GitHub Actions của Cal.com cho phép kẻ tấn công chiếm quyền kiểm soát repository thông qua Pull Request độc hại.
Tổng quan về lỗ hổng CVE-2024-58354
Nền tảng quản lý lịch hẹn mã nguồn mở Cal.com (trước đây là kho lưu trữ calcom, sau đó đổi tên thành cal.diy) vừa ghi nhận một lỗ hổng bảo mật nghiêm trọng liên quan đến cấu hình GitHub Actions. Lỗ hổng được theo dõi dưới mã hiệu CVE-2024-58354, công bố ngày 23/07/2026 và được xếp hạng ở mức độ Chí mạng (CRITICAL).
Lỗ hổng này cho phép kẻ tấn công chiếm quyền kiểm soát kho lưu trữ (Repository Takeover) thông qua các yêu cầu kéo (Pull Request) được gửi tới dự án.
Chi tiết kỹ thuật và cơ chế khai thác
Lỗ hổng xuất phát từ việc thiết lập quyền hạn và quy trình xử lý mã nguồn không an toàn trong luồng công việc (workflow) CI/CD của dự án:
- Cấu hình nguy hiểm: Luồng công việc
pr.ymlsử dụng sự kiện kích hoạtpull_request_targetvới quyền ghi mặc định (write permissions) của kho lưu trữ, sau đó truyền quyền này xuống luồng công việccheck-types.yml. - Thực thi mã không an toàn: Quy trình
check-types.ymlthực hiện việc kiểm tra mã nguồn (checkout) từ Pull Request do người dùng bên ngoài gửi lên thông qua hành độngdangerous-git-checkout. Sau đó, hệ thống tiếp tục tự động thực thi các kịch bản lệnh thông quayarn installvà các script trongpackage.json.
Tác động: Kẻ tấn công chỉ cần mở một Pull Request chứa mã lệnh tùy chỉnh. Khi luồng CI/CD chạy, mã độc sẽ được thực thi dưới quyền của GITHUB_TOKEN có quyền ghi. Điều này cho phép kẻ tấn công:
- Đẩy mã mới (commit) trực tiếp vào kho lưu trữ.
- Sửa đổi hoặc tự động gộp (merge) các Pull Request.
- Thêm, xóa bình luận hoặc xóa và đẩy đè (force-push) lên các nhánh (branch).
Đối tượng bị ảnh hưởng
Lỗ hổng ảnh hưởng trực tiếp đến nhánh chính (main) của kho lưu trữ calcom/cal.diy. Các nhà phát triển, tổ chức tích hợp hoặc vận hành phiên bản tự triển khai (self-hosted) dựa trên kho lưu trữ bị ảnh hưởng cần lưu ý về nguy cơ an ninh chuỗi cung ứng (Supply Chain Risk).
Khuyến nghị khắc phục
Để đảm bảo an toàn cho các quy trình CI/CD và kho lưu trữ dự án, các nhà phát triển và quản trị viên hệ thống nên áp dụng các biện pháp sau:
- Nguyên tắc quyền tối thiểu (Least Privilege): Thay đổi cấu hình mặc định của
GITHUB_TOKENtrong GitHub Actions về mức chỉ đọc (read-only), chỉ cấp quyền ghi cho từng job cụ thể khi thật sự cần thiết. - Tránh kết hợp nguy hiểm: Không sử dụng
pull_request_targetkết hợp với việc checkout và thực thi mã chưa qua kiểm duyệt từ các nhánh bên ngoài (fork repository). - Tách biệt môi trường: Sử dụng sự kiện
pull_requestthông thường cho các tác vụ kiểm tra mã nguồn để đảm bảo mã từ bên ngoài chạy trong môi trường không có quyền truy cập vào các Secret hoặc token có quyền ghi. - Theo dõi bản cập nhật: Thường xuyên kiểm tra các bản vá và khuyến cáo bảo mật mới nhất từ phía dự án Cal.com.
Nguồn tham khảo
- National Vulnerability Database (NVD): https://nvd.nist.gov/vuln/detail/CVE-2024-58354
- GitHub Security Advisory: https://github.com/calcom/cal.diy/security/advisories/GHSA-p3f6-52gv-cj7m
- GitHub Commit: https://github.com/calcom/cal.diy/commit/9aa60fae41a6b6b101c86bf430754b439f440871
- VulnCheck Advisory: https://www.vulncheck.com/advisories/cal-com-repository-takeover-via-pull-request-target-workflow
Ngày phát hành: 23/07/2026
Nguồn: NVD — CVE-2024-58354
Tham khảo: https://github.com/calcom/cal.diy/commit/9aa60fae41a6b6b101c86bf430754b439f440871
Tham khảo: https://github.com/calcom/cal.diy/security/advisories/GHSA-p3f6-52gv-cj7m
Tham khảo: https://www.vulncheck.com/advisories/cal-com-repository-takeover-via-pull-request-target-workflow