Skip to content

Fix template injection vulnerability in git config user.name#2640

Merged
pelikhan merged 4 commits into
mainfrom
copilot/update-github-workflow-username
Oct 27, 2025
Merged

Fix template injection vulnerability in git config user.name#2640
pelikhan merged 4 commits into
mainfrom
copilot/update-github-workflow-username

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Oct 27, 2025

The git configuration step used ${{ github.workflow }} for user.name, which is user-controllable via workflow filenames and enables template injection attacks.

Changes

  • pkg/workflow/yaml_generation.go: Replace ${{ github.workflow }} with static string "github-actions[bot]"
  • .github/workflows/*.lock.yml: Regenerate 56 workflow files with fixed configuration

Before/After

# Before - user-controllable expression
git config --global user.name "${{ github.workflow }}"

# After - static string
git config --global user.name "github-actions[bot]"

The username now matches the email pattern (github-actions[bot]@users.noreply.github.com) and eliminates the injection vector.

Original prompt

Update generated code to avoid using github.workflow as a user name.

error[template-injection]: code injection via template expansion
  --> ./.github/workflows/weekly-issue-summary.lock.yml:83:46
   |
81 |         run: |
   |         --- this run block
82 |           git config --global user.email "github-actions[bot]@users.noreply.github.com"
83 |           git config --global user.name "${{ github.workflow }}"
   |                                              ^^^^^^^^^^^^^^^ may expand into attacker-controllable code
   |
   = note: audit confidence → High
   = note: this finding has an auto-fix

💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Copilot AI and others added 2 commits October 27, 2025 22:54
Replace user-controllable github.workflow expression with static
"github-actions[bot]" string to prevent template injection attacks.
This matches the email pattern and eliminates the security risk.

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copilot AI changed the title [WIP] Update generated code to avoid using github.workflow as a user name Fix template injection vulnerability in git config user.name Oct 27, 2025
Copilot AI requested a review from pelikhan October 27, 2025 23:03
@pelikhan pelikhan marked this pull request as ready for review October 27, 2025 23:13
Copilot AI review requested due to automatic review settings October 27, 2025 23:13
@github-actions
Copy link
Copy Markdown
Contributor

Agentic Changeset Generator triggered by this pull request.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR fixes a template injection security vulnerability in GitHub Actions workflow files by replacing the user-controllable ${{ github.workflow }} expression with a static string for git configuration.

Key Changes:

  • Updated the Go code generator to use a hardcoded bot username instead of a dynamic workflow name
  • Regenerated all 56 affected workflow lock files with the secure configuration

Reviewed Changes

Copilot reviewed 58 out of 58 changed files in this pull request and generated no comments.

File Description
pkg/workflow/yaml_generation.go Modified generator to output static "github-actions[bot]" username instead of ${{ github.workflow }} expression
.github/workflows/go.mod Added empty require block to go.mod structure
.github/workflows/*.lock.yml (56 files) Regenerated workflow files with fixed git config using static username

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@pelikhan pelikhan merged commit 31faa5b into main Oct 27, 2025
4 checks passed
@pelikhan pelikhan deleted the copilot/update-github-workflow-username branch October 27, 2025 23:20
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.

3 participants