diff --git a/.github/workflows/gemini-plan-execute.yml b/.github/workflows/gemini-plan-execute.yml index 29f6da05351..3db78913762 100644 --- a/.github/workflows/gemini-plan-execute.yml +++ b/.github/workflows/gemini-plan-execute.yml @@ -44,8 +44,8 @@ jobs: id: 'run_gemini' uses: 'google-github-actions/run-gemini-cli@v0' # ratchet:exclude env: - TITLE: '${{ github.event.pull_request.title }}' - DESCRIPTION: '${{ github.event.pull_request.body }}' + # TITLE and DESCRIPTION intentionally omitted: prompt-injection vector. + # Agent fetches PR content via GitHub API using ISSUE_NUMBER. EVENT_NAME: '${{ github.event_name }}' GITHUB_TOKEN: '${{ steps.mint_identity_token.outputs.token || secrets.GITHUB_TOKEN || github.token }}' IS_PULL_REQUEST: '${{ !!github.event.pull_request }}' diff --git a/.github/workflows/gemini-review.yml b/.github/workflows/gemini-review.yml index 80522f0bfeb..481be564d01 100644 --- a/.github/workflows/gemini-review.yml +++ b/.github/workflows/gemini-review.yml @@ -44,8 +44,9 @@ jobs: id: 'gemini_pr_review' env: GITHUB_TOKEN: '${{ steps.mint_identity_token.outputs.token || secrets.GITHUB_TOKEN || github.token }}' - ISSUE_TITLE: '${{ github.event.pull_request.title }}' - ISSUE_BODY: '${{ github.event.pull_request.body }}' + # ISSUE_TITLE and ISSUE_BODY intentionally omitted: passing raw GitHub event + # content as env vars is a prompt-injection vector. The agent should + # fetch PR/issue content via the GitHub API using PULL_REQUEST_NUMBER. PULL_REQUEST_NUMBER: '${{ github.event.pull_request.number }}' REPOSITORY: '${{ github.repository }}' ADDITIONAL_CONTEXT: '${{ inputs.additional_context }}' @@ -117,8 +118,9 @@ jobs: id: 'gemini_security_analysis' env: GITHUB_TOKEN: '${{ steps.mint_identity_token.outputs.token || secrets.GITHUB_TOKEN || github.token }}' - ISSUE_TITLE: '${{ github.event.pull_request.title }}' - ISSUE_BODY: '${{ github.event.pull_request.body }}' + # ISSUE_TITLE and ISSUE_BODY intentionally omitted: passing raw GitHub event + # content as env vars is a prompt-injection vector. The agent should + # fetch PR/issue content via the GitHub API using PULL_REQUEST_NUMBER. PULL_REQUEST_NUMBER: '${{ github.event.pull_request.number }}' REPOSITORY: '${{ github.repository }}' ADDITIONAL_CONTEXT: '${{ inputs.additional_context }}'