Public vulnerability disclosure

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

publishedCWE-22

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.

Technical severity8.6 highCVSS 4.0 · CNA: GitHub_P
Published2026-07-17Source updated 2026-11-03
Collected2026-11-043 attributed sources

Fixes and workarounds

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

Fix

The reporting source identifies this reference as a patch. Check the advisory for affected versions and supported release branches.

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

Fix

The reporting source identifies this reference as a patch. Check the advisory for affected versions and supported release branches.

Source: CNA: GitHub_P

Affected products and versions

Affected products, source version ranges and reporting authorities
ProductVersionsAuthority
Enterprise Server
GitHub
≥ 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
Other versions: unknown
CNA: GitHub_P

Version ranges are source assertions. Check the vendor advisory and your installed configuration before determining exposure.

CVSS assessments

CVSS scores, vectors and reporting authorities
Version / scoreVectorAuthority
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:NCNA: GitHub_P
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:XNVD: [email protected]

Exploit evidence

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

References

For agents and automation

Read public disclosures for free as Markdown or JSON. Compatible browsers also expose native WebMCP tools to search disclosures, read this page, and discover API access.

Use the ontology-linked Cyber API with x402 pay per request, or a Y2 Pro or Elite API key with the intel:cyber scope.

Endpoints and access details

https://api.y2.dev/api/v2/cyber/cves
https://api.y2.dev/api/v2/cyber/cves/{cveId}

A workspace owner or admin can create a Pro or Elite API key. Send Authorization: Bearer <Y2_API_KEY> from your trusted agent runtime.

For x402, omit Authorization and read the HTTP 402 payment challenge before signing a retry. Public browser tools do not make payments.

Agent access JSON · OpenAPI · CVE API guide