CVE-2024-4253 is a Critical (CVSS 9.1) command injection in the test-functional.yml GitHub Actions workflow of gradio-app/gradio. The record says it could let an attacker change the base repository or steal secrets. It names versions up to @gradio/video@0.6.12 and gives no fixed version, so read the linked commit.
What's affected
- Product: the gradio-app/gradio repository, specifically its test-functional.yml workflow. The record's CPE entry is for the Python package gradio, and the description names versions up to and including @gradio/video@0.6.12.
- This is a CI pipeline flaw rather than a bug in the code your application imports. The risk is to the project's own build secrets and repository.
- Fixed version: the record gives none. It links a commit, which I did not fetch, so confirm what changed there.
- Severity: Critical, CVSS 9.1, network based with no privileges and no user interaction.
- Exploitation: KEV is false and no page I read reports exploitation.
How to check if you're exposed
If you only consume Gradio, your runtime exposure from this record is limited, and the work is to check your own pipelines. Ask three questions of each GitHub Actions workflow you maintain.
Does it run on events that pull in code or names from forks? Does it print values such as the head repository name, branch name or workflow reference inside a shell step? Do those jobs have access to secrets or a write capable token?
If you maintain a fork or copy of the Gradio test workflow, compare it with the upstream fix in the linked commit. Also run npm ls @gradio/video in front end projects to see which version you hold.
What to do now
- Search your own workflow files for steps that echo GitHub context values such as branch names or repository names inside a shell block.
- Pass such values through environment variables instead of expanding them inside the script text, which is the general guidance GitHub documents for untrusted context.
- Reduce the default token permissions on workflows that run for forked pull requests, and keep secrets out of them.
- Read the upstream Gradio commit linked in the record and apply the same change to any copy of the workflow you carry.
- If a workflow with exposed secrets may have run on hostile input, rotate those tokens.
Why it matters
The weakness is CWE-78, which is command injection. Here the injected data is not a web form field. It is a repository or branch name that GitHub supplies, written into a shell command by the workflow. A name chosen by the author of a pull request can then become part of the command.
The record lists GITHUB_TOKEN, COMMENT_TOKEN and CHROMATIC_PROJECT_TOKEN as secrets at risk. Build systems hold high value credentials, so a flaw like this can matter more than a bug in a single application feature.
Try it yourself
Click through it at your own pace, or open it full screen.
Quick check
Does CVE-2024-4253 affect my Gradio app at runtime?
The record describes a workflow in the project's repository, not application code. Your runtime risk from this entry looks limited, but check your own CI for the same pattern.
What is the safe pattern for GitHub context values?
Do not paste untrusted context values into script text. Pass them in as environment variables and quote them. Confirm details in GitHub's own security hardening guide.
Scan your own dependencies
Safeguard's free in-browser dependency scan at gold.safeguard.sh/scan checks a manifest against known advisories, and the Gold directory keeps this record's details in one place.
Sources
The NVD record for CVE-2024-4253 (published 2024-06-04) supplied the description, score and weakness data. Pages marked fetched were read for this post. The others are listed in the record and were not read.
Last reviewed: 19 October 2026.