# CVE-2026-15343: Path traversal vulnerability in GitHub Enterprise Server allowed writing files to arbitrary repository paths, including GitHub Actions workflow files, via unchecked Dependabot dependency-file paths

Status: published. Published: 2026-07-17. Updated: 2026-11-03.

A path traversal vulnerability was identified in GitHub Enterprise Server that allowed an attacker with code execution inside a Dependabot updater container to write files to arbitrary repository paths, including GitHub Actions workflow files under .github/workflows/, because path validation did not check the actual write destination. The initial fix in versions 3.21.3, 3.20.5, 3.19.9, 3.18.12, and 3.17.18 was incomplete because validation checked the supplied symlink target, while the publisher wrote the file using its directory and name. Writing GitHub Actions workflow files required the Dependabot installation to have workflows: write permission. Depending on repository permissions and workflow configuration, including a relevant pull_request_target workflow or auto-merge, an injected workflow could execute with access to GitHub Actions secrets. This vulnerability affected all versions of GitHub Enterprise Server prior to 3.23 and was fully fixed in versions 3.22.3, 3.21.8, 3.20.10, and 3.19.14. This vulnerability was reported via the GitHub Bug Bounty program.

## Remediation

- fix: Upgrade to GitHub Enterprise Server 3.19.14, 3.20.10, 3.21.8, or 3.22.3, or a later patch release of the applicable release line. The previously announced fixes in 3.17.18, 3.18.12, 3.19.9, 3.20.5, and 3.21.3 were incomplete and do not fully remediate this vulnerability. No complete fix is available for the 3.17 or 3.18 release lines; users of those lines must upgrade to a release containing the complete fix. (source: CNA: GitHub_P)
- fix: The reporting source identifies this reference as a patch. Check the advisory for affected versions and supported release branches. (source: CNA: GitHub_P) — https://docs.github.com/en/enterprise-server@3.19/admin/release-notes#3.19.14
- fix: The reporting source identifies this reference as a patch. Check the advisory for affected versions and supported release branches. (source: CNA: GitHub_P) — https://docs.github.com/en/enterprise-server@3.20/admin/release-notes#3.20.10
- fix: The reporting source identifies this reference as a patch. Check the advisory for affected versions and supported release branches. (source: CNA: GitHub_P) — https://docs.github.com/en/enterprise-server@3.21/admin/release-notes#3.21.8
- fix: The reporting source identifies this reference as a patch. Check the advisory for affected versions and supported release branches. (source: CNA: GitHub_P) — https://docs.github.com/en/enterprise-server@3.22/admin/release-notes#3.22.3

## Affected products and versions

- GitHub / Enterprise Server: ≥ 3.17.0; < 3.17.* (affected, semver); ≥ 3.18.0; < 3.18.* (affected, semver); ≥ 3.19.0; < 3.19.* (affected, semver); unaffected at 3.19.14; ≥ 3.20.0; < 3.20.* (affected, semver); unaffected at 3.20.10; ≥ 3.21.0; < 3.21.* (affected, semver); unaffected at 3.21.8; ≥ 3.22.0; < 3.22.* (affected, semver); unaffected at 3.22.3. Source: CNA: GitHub_P

## Severity and prioritization

- CVSS 4.0: 8.6 (high); CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N; source: CNA: GitHub_P

- CVSS 4.0: 8.6 (high); CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X; source: NVD: product-cna@github.com

- CISA KEV: No listing in collected sources

- EPSS: 0.75% as of 2026-11-03; percentile 55.06%

- SSVC: exploitation none; automatable no; technical impact total; source ADP: CISA-ADP

- Weaknesses: CWE-22

## Exploit evidence

No exploit evidence in collected sources. This is not proof of no exploitation.

## References

- https://docs.github.com/en/enterprise-server@3.17/admin/release-notes#3.17.18 (CNA: GitHub_P; release-notes, x_incomplete-fix)

- https://docs.github.com/en/enterprise-server@3.18/admin/release-notes#3.18.12 (CNA: GitHub_P; release-notes, x_incomplete-fix)

- https://docs.github.com/en/enterprise-server@3.19/admin/release-notes#3.19.9 (CNA: GitHub_P; release-notes, x_incomplete-fix)

- https://docs.github.com/en/enterprise-server@3.20/admin/release-notes#3.20.5 (CNA: GitHub_P; release-notes, x_incomplete-fix)

- https://docs.github.com/en/enterprise-server@3.21/admin/release-notes#3.21.3 (CNA: GitHub_P; release-notes, x_incomplete-fix)

- https://docs.github.com/en/enterprise-server@3.19/admin/release-notes#3.19.14 (CNA: GitHub_P; release-notes, patch)

- https://docs.github.com/en/enterprise-server@3.20/admin/release-notes#3.20.10 (CNA: GitHub_P; release-notes, patch)

- https://docs.github.com/en/enterprise-server@3.21/admin/release-notes#3.21.8 (CNA: GitHub_P; release-notes, patch)

- https://docs.github.com/en/enterprise-server@3.22/admin/release-notes#3.22.3 (CNA: GitHub_P; release-notes, patch)

- https://docs.github.com/en/enterprise-server@3.17/admin/release-notes#3.17.18 (product-cna@github.com)

- https://docs.github.com/en/enterprise-server@3.18/admin/release-notes#3.18.12 (product-cna@github.com)

- https://docs.github.com/en/enterprise-server@3.19/admin/release-notes#3.19.14 (product-cna@github.com)

- https://docs.github.com/en/enterprise-server@3.19/admin/release-notes#3.19.9 (product-cna@github.com)

- https://docs.github.com/en/enterprise-server@3.20/admin/release-notes#3.20.10 (product-cna@github.com)

- https://docs.github.com/en/enterprise-server@3.20/admin/release-notes#3.20.5 (product-cna@github.com)

- https://docs.github.com/en/enterprise-server@3.21/admin/release-notes#3.21.3 (product-cna@github.com)

- https://docs.github.com/en/enterprise-server@3.21/admin/release-notes#3.21.8 (product-cna@github.com)

- https://docs.github.com/en/enterprise-server@3.22/admin/release-notes#3.22.3 (product-cna@github.com)

## Provenance

- CNA: GitHub_P: https://www.cve.org/CVERecord?id=CVE-2026-15343; retrieved 2026-11-03; source updated 2026-11-03

- NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-15343; retrieved 2026-11-04; source updated 2026-11-03

- FIRST EPSS: https://api.first.org/data/v1/epss?cve=CVE-2026-15343; retrieved 2026-11-03; source updated Not reported

Revision: 19975c865a19d1f9e80dfd6a6370fcd550d241de173679978f80a252c89e33fb

Canonical: https://y2.dev/cve/CVE-2026-15343

## Agent and API access

Public CVE pages, Markdown, and JSON are free to read without an account or API key.

- Public catalog: https://y2.dev/cve/index.json. Follow nextCursor with the same search, filters, sort, and limit (1–100). A null cursor marks the end.

- WebMCP: search_cve_disclosures, get_cve_disclosure, get_cve_page_markdown, get_y2_cve_access. Available in compatible browsers.

- Cyber API: https://api.y2.dev/api/v2/cyber/cves and https://api.y2.dev/api/v2/cyber/cves/{cveId}.

- Y2 Pro or Elite: create a workspace API key with the intel:cyber scope and send Authorization: Bearer <Y2_API_KEY>. Setup: https://y2.dev/docs/api/create-key.

- x402: Pay per request without an account or API key. Omit Authorization, read the HTTP 402 PAYMENT-REQUIRED challenge, validate its current requirements, and retry with PAYMENT-SIGNATURE through an authorized payment client. These browser tools never make payments. Guide: https://y2.dev/docs/api/x402.

- OpenAPI: https://y2.dev/api/openapi.yaml. Agent access metadata: https://y2.dev/cve/agent.json.

Collected public records only. Check source status for coverage and freshness.