Description
Vowpal Wabbit is a machine learning system. The workflow .github/workflows/python_checks.yml embeds ${{ github.event.pull_request.title }} directly inside double-quoted bash strings in four separate steps across four jobs, each passing it as a CLI argument to the Python test script run_tests_model_gen_and_load.py. The shell interprets the expanded string before invoking Python, allowing an attacker to break out of the quotes and execute arbitrary commands on the runner. The pull_request trigger fires on PRs targeting any branch (branches: ['*']), with no additional access gate. This vulnerability is fixed by the 998e390e80a7e8192d7849b7784bc113dbd190ad commit.
Published: 2026-05-26
Score: 5 Medium
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Vowpal Wabbit’s GitHub Actions workflow, located at .github/workflows/python_checks.yml, interpolates the pull request title directly into quoted bash strings used as arguments to a Python test script. When the shell expands the variable, the argument string can be crafted to break out of the quotes, inserting arbitrary shell commands. This results in command injection that gives the attacker code execution privileges on the CI runner executing the workflow. The flaw aligns with CWE‑1336 (Command Injection) and CWE‑78 (OS Command Injection). The compromise affects confidentiality, integrity, and availability of the CI environment, as attackers can run any command with the runner’s permissions.

Affected Systems

The vulnerability is present in any Vowpal Wabbit repository that uses the default python_checks.yml workflow before the commit 998e390e80a7e8192d7849b7784bc113dbd190ad was applied. All branches are covered by the trigger, so any pull request targeting any branch contains the vulnerable workflow. No specific version range is listed; the issue was fixed in the referenced commit. Users deploying the repository with older workflow files are impacted.

Risk and Exploitability

With a CVSS score of 5, the vulnerability is considered medium severity. The EPSS score is not available, and the issue is not listed in CISA’s KEV catalog, indicating no known widespread exploitation at this time. The likely attack vector is through the GitHub Actions CI environment, where a malicious or compromised contributor can craft a pull request title to inject commands. Since the workflow runs with the permissions of the runner, any code executed can manipulate files, expose credentials, or affect downstream processes. While no exploit has been publicly reported, the presence of the vulnerability in a common CI pipeline warrants timely patching.

Generated by OpenCVE AI on May 26, 2026 at 18:44 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update the repository’s .github/workflows/python_checks.yml to the fixed commit 998e390e80a7e8192d7849b7784bc113dbd190ad, which removes the variable from untrusted input
  • Ensure that any local or forked copies of the repository use the fixed workflow before merging changes
  • Apply branch protection rules that require reviews for changes to workflow files and restrict who can push to protected branches

Generated by OpenCVE AI on May 26, 2026 at 18:44 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 26 May 2026 17:00:00 +0000

Type Values Removed Values Added
Description Vowpal Wabbit is a machine learning system. The workflow .github/workflows/python_checks.yml embeds ${{ github.event.pull_request.title }} directly inside double-quoted bash strings in four separate steps across four jobs, each passing it as a CLI argument to the Python test script run_tests_model_gen_and_load.py. The shell interprets the expanded string before invoking Python, allowing an attacker to break out of the quotes and execute arbitrary commands on the runner. The pull_request trigger fires on PRs targeting any branch (branches: ['*']), with no additional access gate. This vulnerability is fixed by the 998e390e80a7e8192d7849b7784bc113dbd190ad commit.
Title Vowpal Wabbit: Shell injection via crafted PR title in python_checks.yml allows arbitrary command execution on CI runner
Weaknesses CWE-1336
CWE-78
References
Metrics cvssV3_1

{'score': 5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:N/A:N'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-05-26T15:49:17.951Z

Reserved: 2026-05-07T18:04:17.308Z

Link: CVE-2026-44723

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Undergoing Analysis

Published: 2026-05-26T17:16:46.680

Modified: 2026-05-26T20:24:31.350

Link: CVE-2026-44723

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-05-26T18:45:13Z

Weaknesses