CVE-2026-15343 Overview
CVE-2026-15343 is a path traversal vulnerability [CWE-22] in GitHub Enterprise Server (GHES) affecting the Dependabot updater container. An attacker who has code execution within the Dependabot updater container can write files to arbitrary repository paths. This includes GitHub Actions workflow files under .github/workflows/. The path validation logic does not verify the effective path, which the attacker controls through the dependency file's directory and symlink target. When the target repository uses a pull_request_target workflow or has auto-merge enabled, an injected workflow executes with access to the repository's GitHub Actions secrets.
Critical Impact
Exploitation enables workflow injection leading to exfiltration of GitHub Actions secrets and unauthorized code execution in CI/CD pipelines.
Affected Products
- GitHub Enterprise Server versions prior to 3.17.18
- GitHub Enterprise Server 3.18.x prior to 3.18.12, 3.19.x prior to 3.19.9, 3.20.x prior to 3.20.5
- GitHub Enterprise Server 3.21.x prior to 3.21.3
Discovery Timeline
- 2026-07-17 - CVE-2026-15343 published to NVD
- 2026-07-17 - Last updated in NVD database
Technical Details for CVE-2026-15343
Vulnerability Analysis
The vulnerability resides in the path validation logic used by the Dependabot updater when writing files back to a repository. The validator inspects the declared path but does not resolve the effective path after symlink evaluation. An attacker controls two inputs that influence the effective path: the dependency file's directory and the symlink target inside the workspace.
By combining a directory prefix with a crafted symlink, the attacker directs writes outside of the intended dependency file scope. This allows creation or modification of files at arbitrary repository locations, including .github/workflows/. Files placed in that directory are treated by GitHub Actions as workflow definitions.
Workflow execution context determines the blast radius. A pull_request_target trigger runs the workflow with the base repository's GITHUB_TOKEN and secrets. Repositories with auto-merge enabled can also merge attacker-controlled changes without human review, extending secret exposure to standard push triggers.
Root Cause
The validator checks a candidate path string rather than the canonicalized filesystem path. Symlinks and relative traversal segments bypass the check because they are resolved only at write time.
Attack Vector
An attacker with code execution inside the Dependabot updater container manipulates dependency file metadata and workspace symlinks. The updater then writes attacker-controlled content to .github/workflows/<file>.yml. On the next pull_request_target execution or after auto-merge, the injected workflow runs and can read repository secrets.
No verified public exploit code is available for this issue. See the GitHub Enterprise Server 3.21.3 release notes for advisory details.
Detection Methods for CVE-2026-15343
Indicators of Compromise
- Unexpected commits from the Dependabot identity that add or modify files under .github/workflows/
- Dependabot pull requests that touch files outside of package manifests (e.g., package.json, Gemfile, requirements.txt)
- Workflow runs triggered by pull_request_target that reference newly introduced workflow files
- Outbound network activity from Actions runners to attacker-controlled hosts shortly after auto-merged Dependabot PRs
Detection Strategies
- Audit repository history for Dependabot commits that modify paths outside declared ecosystem manifests
- Correlate Dependabot updater container process activity with symlink creation calls and writes to .github/workflows/
- Alert on any workflow file created or modified by an automation account rather than a human maintainer
Monitoring Recommendations
- Enable GHES audit log streaming for git.push, workflows.created, and workflows.updated events
- Monitor Dependabot updater container syscall telemetry for symlink, symlinkat, and writes targeting .github/workflows/
- Track secret usage in Actions runs and flag first-time secret access from newly added workflows
How to Mitigate CVE-2026-15343
Immediate Actions Required
- Upgrade GitHub Enterprise Server to 3.21.3, 3.20.5, 3.19.9, 3.18.12, or 3.17.18 as appropriate for the deployed release train
- Rotate GitHub Actions secrets in repositories that used pull_request_target workflows or auto-merge with Dependabot enabled
- Review recent Dependabot pull requests for unexpected changes to .github/workflows/ and revert suspicious commits
Patch Information
GitHub fixed CVE-2026-15343 in GHES 3.21.3, 3.20.5, 3.19.9, 3.18.12, and 3.17.18. All versions prior to 3.22 are affected. Refer to the release notes: 3.17.18, 3.18.12, 3.19.9, 3.20.5, and 3.21.3.
Workarounds
- Disable pull_request_target workflows in repositories that receive Dependabot pull requests until patches are applied
- Disable auto-merge for Dependabot pull requests and require human review for changes touching .github/workflows/
- Restrict GITHUB_TOKEN permissions to read-only at the repository or organization level and scope secrets to specific environments
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

