Lỗ hổng GitHub Actions của Snowflake cho phép Command Injection qua Issue giả mạo

Các nhà nghiên cứu bảo mật tại Wiz vừa tiết lộ một lỗ hổng workflow injection mới trong GitHub Actions thuộc kho lưu trữ công khai snowflakedb/snowflake-connector-net của Snowflake. Lỗ hổng này có thể bị khai thác thông qua một GitHub issue được tạo đặc biệt để thực thi các lệnh trong một workflow chứa thông tin đăng nhập Jira nội bộ.
Snowflake GitHub Actions Vulnerability

Các nhà nghiên cứu an ninh mạng tại Wiz đã tiết lộ một lỗ hổng workflow injection mới trong GitHub Actions thuộc kho lưu trữ công khai snowflakedb/snowflake-connector-net của Snowflake. Lỗ hổng này có thể bị khai thác thông qua một GitHub issue được tạo đặc biệt để thực thi các lệnh trong một workflow chứa thông tin đăng nhập Jira nội bộ.

Vấn đề nằm trong tệp .github/workflows/jira_issue.yml, vốn được kích hoạt khi một issue công khai được mở và làm lộ các biến JIRA_BASE_URL, JIRA_USER_EMAIL, và JIRA_API_TOKEN trong cùng một bước của workflow. Điểm yếu này chỉ giới hạn trong hệ thống tự động hóa CI/CD của kho lưu trữ, và chưa có bản phát hành Snowflake Connector for .NET nào bị ảnh hưởng được xác định.

Workflow này đã chèn trực tiếp các giá trị tiêu đề và nội dung issue do kẻ tấn công kiểm soát vào một khối lệnh shell run:. Nó cũng kiểm tra github.event.pull_request.user.login mặc dù sự kiện kích hoạt là một issue, điều đó có nghĩa là thuộc tính pull request được tham chiếu không hề tồn tại.

GitHub cho biết: "Nếu bạn cố gắng tham chiếu đến một thuộc tính không tồn tại, nó sẽ trả về một chuỗi trống." Trong trường hợp này, việc so sánh với whitesource-for-github-com[bot] đã không thể ngăn chặn một issue thông thường kích hoạt công việc (job) này.

Wiz cho biết hệ thống Red Agent của họ đã khai thác lỗ hổng injection này trong quá trình thử nghiệm bảo mật được ủy quyền. Sau khi mã khai thác đầu tiên gây ra lỗi cú pháp shell, hệ thống đã thay đổi phương pháp tiếp cận. Các nhà nghiên cứu sau đó đã nhận được một callback ngoại băng từ runner của GitHub Actions và thu được Jira API token được sử dụng bởi workflow.

Theo Wiz, token này thuộc về tài khoản [email protected] và cho phép quyền đọc các dự án Jira bao gồm kỹ thuật, tuân thủ bảo mật và theo dõi bug bounty trên trang snowflakecomputing.atlassian.net. Các quyền hạn Jira cơ bản, lịch sử chạy workflow và hồ sơ kiểm tra không được công khai.

Minh họa khai thác lỗ hổng

Quá trình khắc phục và phản hồi từ Snowflake

Wiz cho biết họ đã báo cáo vấn đề cho Snowflake thông qua HackerOne vào ngày 23 tháng 6 năm 2026. Snowflake đã hợp nhất một bản vá ngay trong ngày hôm đó thông qua pull request #1402, thay thế việc mở rộng trực tiếp biểu thức GitHub bằng các biến môi trường được truyền dưới dạng đối số cho jq.

Workflow bị lỗi đã xuất hiện trên nhánh mặc định năm ngày trước đó, vào ngày 18 tháng 6, khi pull request #1218 được hợp nhất. Cách xử lý đã được sửa đổi hiện vẫn nằm trong nhánh master của kho lưu trữ.

Snowflake cho biết trong một tuyên bố được Wiz trích dẫn lại rằng: "cuộc điều tra của chúng tôi không tìm thấy bằng chứng nào về việc truy cập trái phép." Wiz cho biết Jira token đã được thay đổi (rotate) vào ngày 24 tháng 6 và cuộc rà soát của Snowflake không thấy việc sử dụng bên ngoài không liên quan nào trong cửa sổ tiếp xúc năm ngày đó.

Thông tin Jira bị ảnh hưởng

Nghi vấn về vai trò của GitHub Copilot Autofix

Wiz mô tả lỗ hổng này là kết quả của một thay đổi từ GitHub Copilot Autofix, mặc dù lịch sử trên GitHub không trực tiếp xác lập Copilot là tác giả của mã jira_issue.yml bị lỗi. Commit ghi rõ có sự đồng tác giả của Copilot (6d0e2fa) thực tế đã thay đổi tệp jira_close.yml, trong khi việc tái cấu trúc không an toàn của jira_issue.yml xuất hiện trong một commit riêng biệt vào ngày 25 tháng 8 năm 2025 (094038e), được gán cho người dùng sfc-gh-hpathak.

Cả hai thay đổi sau đó đã được gộp vào commit squash merge ngày 18 tháng 6 (4a1b8ce), trong đó liệt kê Copilot Autofix là một trong các đồng tác giả. Do đó, lịch sử commit xác nhận sự tham gia của Copilot trong pull request #1218, nhưng không khẳng định quyền tác giả đối với các dòng mã gây ra lỗ hổng.

GitHub đã từng tài liệu hóa loại lỗ hổng workflow injection này vào tháng 7 năm 2025, cảnh báo việc mở rộng dữ liệu issue không đáng tin cậy trực tiếp bên trong các khối lệnh run: và khuyến nghị sử dụng các biến môi trường trung gian.

Tính đến ngày 17 tháng 8 năm 2026, chưa có mã CVE, điểm số CVSS hoặc mục nhập nào trong danh mục Các lỗ hổng bị khai thác đã biết (KEV) của CISA cho vấn đề này. Các tài liệu hiện có không xác lập bất kỳ vụ khai thác độc hại nào trong thực tế hoặc sự xâm phạm khách hàng nào.