CVE-2026-15343
GitHub Enterprise Server vulnerability analysis and mitigation

Overview

CVE-2026-15343 is a path traversal vulnerability in GitHub Enterprise Server (GHES) that allows an attacker with code execution inside the Dependabot updater container to write attacker-controlled files to arbitrary repository paths, including GitHub Actions workflow files under .github/workflows/. The flaw affects all GHES versions prior to 3.22, specifically versions 3.17.0–3.17.17, 3.18.0–3.18.11, 3.19.0–3.19.8, 3.20.0–3.20.4, and 3.21.0–3.21.2. It was disclosed on July 17, 2026, with patches released the same day. The vulnerability carries a CVSS v4.0 base score of 8.6 (High) (GitHub Advisory, GHES 3.21 Release Notes).

Technical details

The root cause is improper path validation (CWE-22: Path Traversal) in the Dependabot updater container's dependency-file handling logic. The path validation checked only the declared file name and not the effective path derived from the file's directory and symlink target, allowing an attacker to manipulate the dependency file's directory and symlink target to resolve to arbitrary repository paths. This means an attacker who has already achieved code execution within the Dependabot updater container can craft a dependency file that, when processed, writes attacker-controlled content to .github/workflows/ or other sensitive repository paths. The attack vector is network-based and requires low privileges (code execution within the container), with no user interaction needed (GitHub Advisory, GHES 3.17 Release Notes).

Impact

Successful exploitation allows an attacker to inject malicious GitHub Actions workflow files into any repository managed by Dependabot. If the targeted repository uses a pull_request_target workflow or has auto-merge enabled, the injected workflow can execute with full access to the repository's GitHub Actions secrets, leading to secret exfiltration, supply chain compromise, or further lateral movement within the enterprise environment. The confidentiality and integrity of affected repositories are both rated HIGH, as sensitive CI/CD secrets and repository contents can be exposed or tampered with (GitHub Advisory, GHES 3.19 Release Notes).

Exploitability

As of the disclosure date, there is no public proof-of-concept exploit and no evidence of in-the-wild exploitation (GitHub Advisory). The EPSS score is approximately 0.0045 (0.45%), indicating a low current probability of exploitation in the wild. The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. Exploitation requires an attacker to first achieve code execution inside the Dependabot updater container, which is a non-trivial precondition that limits the attack surface. The NVD SSVC assessment classifies the vulnerability as non-automatable with total technical impact.

Exploitation steps

  1. Gain container access: Obtain code execution within the Dependabot updater container on a vulnerable GHES instance (e.g., by exploiting a separate vulnerability in the Dependabot update pipeline or through a compromised dependency source).
  2. Identify target repository: Locate a repository on the GHES instance that Dependabot is configured to update and that uses a pull_request_target workflow or has auto-merge enabled — these configurations allow injected workflows to execute with elevated secret access.
  3. Craft malicious dependency file: Create or modify a dependency file within the container such that its declared directory path and symlink target resolve, after path traversal, to .github/workflows/ in the target repository. The path validation only checks the declared file name, not the effective resolved path.
  4. Write malicious workflow file: Leverage the path traversal to write a crafted GitHub Actions workflow YAML file (e.g., a workflow that exfiltrates secrets.GITHUB_TOKEN or other repository secrets to an attacker-controlled endpoint) into .github/workflows/ of the target repository.
  5. Trigger workflow execution: The injected workflow executes automatically when a pull request is opened (via pull_request_target) or when auto-merge processes the Dependabot pull request, granting the attacker access to the repository's GitHub Actions secrets (GitHub Advisory, GHES 3.21 Release Notes).

Indicators of compromise

  • File System: Unexpected or newly created files under .github/workflows/ in repositories managed by Dependabot, particularly files not associated with legitimate developer commits; symlinks in dependency file directories pointing outside expected paths.
  • Logs: GitHub Actions audit log entries showing workflow runs triggered by Dependabot pull requests in repositories with pull_request_target triggers or auto-merge enabled, especially workflows not previously present in the repository history; Dependabot updater container logs showing file write operations to paths outside the expected dependency file directories.
  • Network: Outbound connections from GitHub Actions runners to unexpected external endpoints during Dependabot-triggered workflow runs, potentially indicating secret exfiltration attempts.
  • Repository Activity: Git commits authored by the Dependabot service account that include changes to .github/workflows/ files, particularly if those workflow files contain unusual steps such as curl or wget calls to external hosts (GitHub Advisory).

Mitigation and workarounds

GitHub has released patched versions addressing this vulnerability: 3.21.3, 3.20.5, 3.19.9, 3.18.12, and 3.17.18, all released on July 16, 2026. Administrators should upgrade to the appropriate patched version immediately. As interim mitigations, consider reviewing and restricting permissions of the Dependabot updater container, disabling auto-merge on repositories managed by Dependabot where possible, and auditing pull_request_target workflow configurations to limit secret exposure. Note that GHES 3.17 reaches end-of-life on August 25, 2026, so upgrading to a more recent supported release series is strongly recommended (GHES 3.21 Release Notes, GHES 3.17 Release Notes).

Additional resources


SourceThis report was generated using AI

Related GitHub Enterprise Server vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-17556HIGH8.8
  • GitHub Enterprise Server logoGitHub Enterprise Server
  • cpe:2.3:a:github:enterprise_server
NoNoAug 05, 2026
CVE-2026-15343HIGH8.6
  • GitHub Enterprise Server logoGitHub Enterprise Server
  • cpe:2.3:a:github:enterprise_server
NoNoJul 17, 2026
CVE-2026-15996MEDIUM6.6
  • GitHub Enterprise Server logoGitHub Enterprise Server
  • cpe:2.3:a:github:enterprise_server
NoNoAug 05, 2026
CVE-2026-15007MEDIUM5.7
  • GitHub Enterprise Server logoGitHub Enterprise Server
  • cpe:2.3:a:github:enterprise_server
NoNoJul 17, 2026
CVE-2026-15783MEDIUM5.3
  • GitHub Enterprise Server logoGitHub Enterprise Server
  • cpe:2.3:a:github:enterprise_server
NoNoJul 17, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management