Skip to main content

Chainguard Academy CVE-2026-105767

| EUVDEUVD-2026-92780 LOW
OS Command Injection (CWE-78)
2026-10-05 chainguard GHSA-vh2r-m6q8-8hp3
2.1
CVSS 4.0 · Vendor: chainguard
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Gain control of workflow inputs
  2. Delivery
    Inject shell metacharacters into project_id/storage_bucket
  3. Exploit
    Interpolated into gcloud cp via ${{ inputs.* }}
  4. Execution
    Arbitrary command execution on GitHub Actions runner
  5. Impact
    Abuse runner credentials/secrets

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization OS command sanitization, avoid shell exec
MITRE ATT&CK

2 techniques across 1 tactic: Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires an actor to control the project_id or storage_bucket inputs passed to the integrate-platform-docs composite action in the chainguard-dev/edu repository, in the commit range 7375a80 through (not including) fb0efb2; those inputs are interpolated unquoted into Bash gcloud storage cp commands via ${{ inputs.* }} expressions. What strongly limits real-world exploitation: in the actual repository the sole caller supplied these inputs from repository secrets and ran only on trusted triggers, so untrusted input was not known to reach the vulnerable steps. Practical abuse therefore depends on an attacker already having the privilege to alter the workflow inputs or introduce a malicious caller - i.e. write/maintainer access to the CI configuration - rather than any remote, unauthenticated path against a default deployment.

Impact

This is a genuinely low-priority issue despite being a command-injection (CWE-78) flaw. The vendor-supplied CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:H/UI:N/VC:L/VI:L/VA:N) scores only 2.1, and that low score is well-justified by the context: exploitation requires high privileges (PR:H) because the vulnerable project_id and storage_bucket inputs are supplied by repository secrets, and the attack-requirements metric (AT:P) reflects that untrusted input must first reach those steps - which the description explicitly says did not happen, since the only in-repository caller passed trusted secrets on trusted triggers. There is no EPSS score, no CISA KEV listing, and no public exploit identified in the provided data, all of which are consistent with the low CVSS rating rather than conflicting with it. The one nuance worth flagging: the vendor vector lists AV:N (network), but the real exploitation path is effectively repo-/supply-chain-local - an actor would need write control over the workflow inputs or the ability to introduce a malicious caller - so the network vector overstates reachability. Impact is also bounded to the GitHub Actions runner context (leakage/abuse of that job's credentials), not a broader system. Net: a correctly-handled, already-patched hardening fix, not an active threat.

Exploit ScenarioDerived

An actor able to control the project_id or storage_bucket inputs to the integrate-platform-docs composite action (for example, by adding a malicious caller workflow or supplying attacker-chosen input values) embeds shell metacharacters that are interpolated directly into the gcloud storage cp command, executing arbitrary commands on the GitHub Actions runner and potentially exfiltrating that job's secrets. In the actual repository, the only caller passed repository secrets on trusted triggers, so no untrusted input was known to reach these steps. No public exploit code was identified at the time of analysis.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 05, 2026

Arbitrary shell command execution in the Chainguard Academy (edu) integrate-platform-docs composite GitHub Action requires control of the project_id or storage_bucket inputs and occurs because those values were substituted directly into Bash gcloud storage cp commands. The practical exposure is narrow: the only in-repository caller passed repository secrets and ran on trusted triggers, so untrusted input was not known to reach the vulnerable steps, and abuse requires write or maintainer control over the CI configuration rather than a remote unauthenticated path. A vendor fix is available via commit fb0efb2537d326ab18c07d620875b8ed2a4b39f3, no public exploit was identified, and the independent assessment rates this as a low-priority issue (CVSS:3.1/AV:L/AC:H/PR:H/UI:N/S:U/C:L/I:L/A:N).

RemediationAI

Apply the upstream fix commit fb0efb2537d326ab18c07d620875b8ed2a4b39f3 (PR https://github.com/chainguard-dev/edu/pull/3471), which changes the action to pass project_id and storage_bucket through env variables and then uses quoted shell variables such as "${PROJECT_ID}" and "${STORAGE_BUCKET}" in gcloud storage cp commands. This is an upstream fix available as a PR/commit; a released patched version is not independently confirmed. If immediate patch application is not possible, do not allow project_id or storage_bucket to be populated by untrusted callers; restrict workflow and action modification rights to trusted maintainers, keep the sole caller on trusted triggers with repository secrets, and consider temporarily disabling or pinning the integrate-platform-docs action for untrusted branches. The fix is a targeted hardening change with no expected functional trade-off beyond requiring workflow callers to pass the same inputs.

Affected VersionsENISA

Chainguard Academy (edu) 7375a80caabcc31c33ec90f29687ed78c13d16ff <fb0efb2537d326ab18c07d620875b8ed2a4b39f3

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The vulnerable feature is a GitHub Actions composite action, not a network service: .github/actions/integrate-platform-docs/action.yaml is invoked by a workflow caller, and its inputs project_id and storage_bucket are expanded through ${{ inputs.* }} directly inside Bash run steps. Because the values are placed into gcloud storage cp commands without quoting or environment indirection, a crafted input can terminate the intended argument and append shell metacharacters, the CWE-78 OS command injection class. The upstream fix moves the inputs into env variables (PROJECT_ID and STORAGE_BUCKET) and references them as quoted shell variables, preventing expression-level injection. The CPE cpe:2.3:a:chainguard:chainguard_academy_(edu):*:*:*:*:*:*:*:* maps to the Chainguard Academy (edu) repository; the affected commit range is 7375a80caabcc31c33ec90f29687ed78c13d16ff before fb0efb2537d326ab18c07d620875b8ed2a4b39f3. Exploitation prerequisites from the independent assessment are high: the actor must already be able to supply or alter the action's inputs, which in the repository means CI write/maintainer access, and the assessed impact is limited to low confidentiality and integrity without availability impact.

Know when Chainguard Academy Edu gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (chainguard) PRIMARY 2.1 LOW
CVSS:4.0/AV:N/AC:L/AT:P/PR:H/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N
vuln.today AI 3.0 LOW

Requires high-privilege control over workflow inputs normally sourced from trusted secrets (PR:H), with untrusted input reaching the steps being a non-default condition (AC:H), yielding limited runner-scoped impact.

3.1 AV:L/AC:H/PR:H/UI:N/S:U/C:L/I:L/A:N
4.0 AV:L/AC:H/AT:P/PR:H/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (chainguard).

CVSS VectorVendor: chainguard

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
High
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
Low
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

Improper Neutralization of Special Elements used in an OS Command in the integrate-platform-docs composite GitHub Action of Chainguard Academy (edu) from commit 7375a80caabcc31c33ec90f29687ed78c13d16ff before commit fb0efb2537d326ab18c07d620875b8ed2a4b39f3 allows an actor who controls the project_id or storage_bucket inputs to execute arbitrary shell commands on the GitHub Actions runner, because the inputs are interpolated directly into Bash gcloud storage cp commands in several steps via ${{ inputs.* }} expressions. The only in-repository caller passed repository secrets and ran only on trusted triggers, so no untrusted input was known to reach the vulnerable steps.

Threat Intelligence Overview

EPSS Score
0.2%
Top 93% exploitable
Prevalence
Rare
single internal GitHub Action in one vendor documentation repository
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity LOW
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Low
Technical Impact
Partial

Priority Score

10
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +10
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

OS command injection occurs when an application passes unsanitized user input directly into system shell commands.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy