Skip to content

Conversation

@shrishabh
Copy link
Contributor

This is the template for security review action.

@github-actions
Copy link

github-actions bot commented Nov 3, 2025

🤖 Hi @shrishabh, I've received your request, and I'm working on it now! You can track my progress in the logs for more details.

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📋 Review Summary

This pull request introduces a new example GitHub Actions workflow for running Gemini security analysis. The workflow is well-structured and provides a good starting point for users.

🔍 General Feedback

  • The use of pinned actions for create-github-app-token and checkout is a good security practice.
  • The workflow correctly uses concurrency controls to prevent multiple runs.
  • A high-severity issue was found regarding the use of @main for the run-gemini-cli action, which should be addressed.

REPOSITORY: '${{ github.repository }}'
run: |-
gh issue comment "${ISSUE_NUMBER}" \
--body "${MESSAGE}" \
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟠 For security and stability, it's recommended to pin the version of the google-github-actions/run-gemini-cli action to a specific release tag instead of using @main. This prevents unexpected breaking changes or malicious code from being introduced into your workflow.

Suggested change
--body "${MESSAGE}" \
uses: 'google-github-actions/run-gemini-cli@v1' # ratchet:exclude

shell: 'bash'

jobs:
review:
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 For better stability and to ensure consistent builds, consider pinning the runner version to a specific version (e.g., ubuntu-22.04) instead of using ubuntu-latest.

Suggested change
review:
runs-on: 'ubuntu-22.04'

@@ -0,0 +1,128 @@
name: '🔎 Gemini Review & Security Analysis'
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we put the file to

~/examples/security-review.yml like https://github.com/google-github-actions/run-gemini-cli/tree/main/examples

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Eventually, yes. I think we are waiting for the go-ahead from run-gemini-cli team to add the security-review. Adding it here so that we can test and then refer to when we move to the gemini-cli repository.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we want to test this workflow in our repo, we need to restructure the folder to .github/workflows/security-review.yml. GHA does not support subfolders under .github/workflows/.

We should also temporarily disable the original code review workflow, as it will generate duplicated comments for us.

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

## 📋 Security Analysis Summary

This pull request adds a reusable GitHub Actions workflow for security analysis. The workflow is well-structured, but it has a potential prompt injection vulnerability and uses an unpinned version of a GitHub Action, which is not a secure practice.

🔍 General Feedback

  • The workflow is well-documented and easy to understand.
  • Pinning actions to a specific version is a crucial security measure to prevent supply chain attacks.
  • Always treat user-provided input as untrusted and sanitize it before using it in sensitive contexts like prompts for language models.

gemini_model: '${{ vars.GEMINI_MODEL }}'
google_api_key: '${{ secrets.GOOGLE_API_KEY }}'
use_gemini_code_assist: '${{ vars.GOOGLE_GENAI_USE_GCA }}'
use_vertex_ai: '${{ vars.GOOGLE_GENAI_USE_VERTEXAI }}'
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Medium The `ADDITIONAL_CONTEXT` input is passed as an environment variable to the `google-github-actions/run-gemini-cli@main` action. This input is likely used in the prompt to the Gemini model. If a user of this reusable workflow provides a malicious string, it could be used to manipulate the model's behavior, leading to a prompt injection vulnerability. The `google-github-actions/run-gemini-cli@main` action should sanitize the `ADDITIONAL_CONTEXT` input to prevent prompt injection. If sanitization is not possible, the action should provide clear documentation about the risk of prompt injection and how to mitigate it.

PULL_REQUEST_NUMBER: '${{ github.event.pull_request.number || github.event.issue.number }}'
REPOSITORY: '${{ github.repository }}'
ADDITIONAL_CONTEXT: '${{ inputs.additional_context }}'
with:
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Low The workflow uses `google-github-actions/run-gemini-cli@main`, which points to the `main` branch. This is not a secure practice because the `main` branch could be updated with a malicious version of the action.
Suggested change
with:
uses: 'google-github-actions/run-gemini-cli@v1.0.0' # ratchet:exclude

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants