Lỗ hổng CVE Comment and Control nguy hiểm

Lỗ hổng CVE Comment and Control nguy hiểm

Comment and Control là một lỗ hổng CVE theo hướng prompt injection mới, nhắm vào các AI coding agent tích hợp với GitHub. Kỹ thuật này lợi dụng tiêu đề pull request, nội dung issue và comment để đánh cắp API keysaccess tokens trực tiếp từ môi trường CI/CD.

Đây là một dạng cảnh báo CVE đáng chú ý vì toàn bộ vòng tấn công diễn ra ngay trong GitHub. Tác nhân tấn công chỉ cần chèn nội dung độc hại vào PR title hoặc issue comment, sau đó AI agent sẽ đọc nó như ngữ cảnh tin cậy, thực thi hướng dẫn và rò rỉ thông tin xác thực qua PR comment, issue comment hoặc git commit mà không cần máy chủ ngoài.

Comment and Control trong lỗ hổng CVE của AI agent

Tên kỹ thuật là một cách chơi chữ với Command and Control (C2). Điểm khác biệt là thay vì điều khiển phần mềm độc hại qua máy chủ C2, kẻ tấn công khai thác dữ liệu GitHub và luồng xử lý của agent để chiếm quyền điều khiển hành vi của mô hình.

Ba tác nhân AI được xác nhận bị ảnh hưởng gồm Anthropic Claude Code Security Review, Google Gemini CLI ActionGitHub Copilot Agent (SWE Agent). Mẫu tấn công này cho thấy một lỗ hổng zero-day theo nghĩa hành vi khai thác chưa được giảm thiểu đầy đủ ở cấp kiến trúc.

Cơ chế tấn công và ảnh hưởng hệ thống

Khác với indirect prompt injection truyền thống, vốn yêu cầu nạn nhân chủ động yêu cầu AI xử lý một tài liệu, Comment and Control mang tính chủ động. GitHub Actions có thể tự kích hoạt trên các sự kiện pull_request, issuesissue_comment, nên chỉ cần mở một PR hoặc tạo issue là agent đã có thể bị kích hoạt.

Hệ quả là hệ thống bị xâm nhập ở cấp workflow và runtime của agent. Nếu agent có quyền truy cập biến môi trường chứa bí mật, dữ liệu nhạy cảm có thể bị đọc và trả ngược ra ngoài qua chính kênh cộng tác của GitHub.

Claude Code Security Review

Trong action của Claude Code Security Review, tiêu đề PR được chèn trực tiếp vào prompt mà không có cơ chế sanitization. CLI của Claude được gọi mà không giới hạn bằng –disallowed-tools hoặc –allowed-tools, khiến subprocess kế thừa toàn bộ biến môi trường.

Các biến đáng chú ý bao gồm ANTHROPIC_API_KEYGITHUB_TOKEN. Một PR với tiêu đề độc hại có thể thoát khỏi ngữ cảnh prompt và yêu cầu agent chạy lệnh như whoami, ps auxeww hoặc env, sau đó trả về toàn bộ credential dump như một “security finding”.

whoami
ps auxeww
env

Lỗ hổng này được đánh giá CVSS 9.4 Critical sau khi tăng từ 9.3. Báo cáo được nộp qua HackerOne (#3387969) và nhận mức thưởng $100.

Google Gemini CLI Action

Với Gemini CLI Action, title, body và comment của issue đều được đưa vào prompt trong phần Additional Content. Kẻ tấn công chỉ cần chèn một Trusted Content Section giả ngay sau đó để ghi đè hướng dẫn an toàn của Gemini.

Kết quả là Gemini có thể đăng GEMINI_API_KEY dưới dạng public issue comment, khiến khóa này hiển thị cho bất kỳ ai truy cập repository. Đây là một cảnh báo CVE điển hình về việc kết hợp prompt injection với bí mật trong runtime.

Báo cáo được gửi qua Google VRP (#1609699) và nhận mức thưởng $1,337.

GitHub Copilot Agent

Trường hợp GitHub Copilot Agent được xem là phức tạp nhất về mặt kỹ thuật. Hệ thống đã có ba lớp giảm thiểu ở runtime gồm environment variable filtering, secret scanningnetwork firewall, nhưng vẫn bị vượt qua.

Payload tấn công còn được giấu trong một HTML comment trong nội dung issue. Cách này làm payload không hiển thị trong chế độ render Markdown của GitHub, nhưng AI agent vẫn phân tích được đầy đủ. Đây là kỹ thuật phù hợp để ẩn mối đe dọa khỏi người xem thông thường.

Người dùng chỉ thấy một request vô hại và có thể vô tình gán issue cho Copilot. Báo cáo ban đầu bị xem là “known issue”, sau đó được mở lại khi nghiên cứu viên cung cấp bằng chứng từ mã nguồn đã reverse engineer trong index.js bị minify. GitHub cuối cùng trao thưởng $500.

IOCs và dấu hiệu nhận biết

  • PR title hoặc issue body chứa chỉ dẫn prompt bất thường.
  • HTML comment trong issue body chứa payload ẩn.
  • Xuất hiện các lệnh như env, ps auxeww, whoami trong phản hồi của agent.
  • PR comment hoặc issue comment chứa dữ liệu giống API keys, access tokens hoặc nội dung dump biến môi trường.
  • Public comment bất thường có chứa chuỗi gần với GEMINI_API_KEY, ANTHROPIC_API_KEY hoặc GITHUB_TOKEN.

Nguyên nhân gốc của lỗ hổng CVE

Tất cả các biến thể đều chung một lỗi kiến trúc: dữ liệu GitHub không đáng tin đi vào một AI agent có production secrets và quyền truy cập công cụ không bị giới hạn trong cùng runtime. Khi ngữ cảnh đầu vào, bí mật và khả năng thực thi lệnh nằm chung một vùng xử lý, nguy cơ bảo mật tăng mạnh.

Đây là trường hợp điển hình của remote code execution theo nghĩa gián tiếp qua agent, dù cơ chế kích hoạt không phải khai thác bộ nhớ hay payload nhị phân truyền thống. Với hệ thống tự động hóa, một cập nhật bản vá cần tập trung vào tách biệt quyền, lọc ngữ cảnh và hạn chế tool execution.

Tham chiếu kỹ thuật

Bản ghi và mô tả chi tiết có thể đối chiếu tại NVD hoặc các advisory của nhà cung cấp. Báo cáo gốc về kỹ thuật này cũng được công bố tại bài phân tích của nghiên cứu viên: Comment and Control prompt injection.

Về phạm vi ảnh hưởng, lỗ hổng CVE này không chỉ giới hạn trong GitHub Actions. Bất kỳ AI agent nào xử lý đầu vào không tin cậy nhưng vẫn có quyền truy cập công cụ và bí mật đều có thể trở thành mục tiêu, đặc biệt trong các luồng tự động hóa triển khai, bot hỗ trợ tác vụ hoặc agent xử lý yêu cầu nội bộ.