CVE-2025-54594
Published: 06 August 2025
Summary
CVE-2025-54594 is a critical-severity Code Injection (CWE-94) vulnerability. Its CVSS base score is 9.1 (Critical).
Operationally, exploitation aligns with the MITRE ATT&CK technique Compromise Software Supply Chain (T1195.002); ranked in the top 42.1% of CVEs by exploit likelihood; it is not currently listed in the CISA KEV catalog.
The strongest mitigations our analysis identified are NIST 800-53 CM-3 (Configuration Change Control) and SA-10 (Developer Configuration Management).
Deeper analysis
CVE-2025-54594 is a high-severity vulnerability (CVSS 3.1 score of 9.1) affecting the react-native-bottom-tabs library for React Native in versions 0.9.2 and below. The issue stems from the github/workflows/release-canary.yml GitHub Actions workflow, which improperly utilizes the pull_request_target event trigger. This configuration allows untrusted code from pull requests, including those from forked repositories, to execute in a privileged context, violating GitHub's security best practices and enabling code injection (CWE-94) and improper privilege management (CWE-269).
Any attacker with a GitHub account can exploit this vulnerability by forking the repository, creating a pull request that includes a malicious preinstall script in the package.json file, and then triggering the workflow by posting a specific comment ("!canary") on the pull request. Successful exploitation grants arbitrary code execution within the workflow's privileged environment, enabling the exfiltration of sensitive secrets such as GITHUB_TOKEN and NPM_TOKEN. Attackers could further leverage this access to push malicious code directly to the repository or publish compromised packages to the NPM registry.
The project's security advisory (GHSA-588g-38p4-gr6x) and a post-incident report detail the remediation, which consists of a commit (9e1c9c61d742c435ac5e0901b7e0c9249b9fc70c) that removes the vulnerable github/workflows/release-canary.yml file entirely. However, no patched version of the library has been released as of the CVE publication on 2025-08-06, leaving users reliant on avoiding the workflow trigger or monitoring for an official release. Security practitioners should audit similar workflows for pull_request_target misuse and restrict permissions where possible.
EU & UK References
- 🇪🇺 ENISA EUVD: EUVD-2025-23669
Vulnerability details
react-native-bottom-tabs is a library of Native Bottom Tabs for React Native. In versions 0.9.2 and below, the github/workflows/release-canary.yml GitHub Actions repository workflow improperly used the pull_request_target event trigger, which allowed for untrusted code from a forked pull request to be…
more
executed in a privileged context. An attacker could create a pull request containing a malicious preinstall script in the package.json file and then trigger the vulnerable workflow by posting a specific comment (!canary). This allowed for arbitrary code execution, leading to the exfiltration of sensitive secrets such as GITHUB_TOKEN and NPM_TOKEN, and could have allowed an attacker to push malicious code to the repository or publish compromised packages to the NPM registry. There is a remediation commit which removes github/workflows/release-canary.yml, but a version with this fix has yet to be released.
- CWE(s)
Related Threats
MITRE ATT&CK Enterprise TechniquesAI
Why these techniques?
Vulnerability enables arbitrary code execution in privileged CI/CD workflow via pull_request_target misuse, directly facilitating injection of malicious code into releases and publication of compromised packages to NPM (software supply chain compromise).
CVEs Like This One
Affected Assets
Mitigating Controls
Mitigating Controls (NIST 800-53 r5) AI
Requires developers to perform configuration management during development, directly preventing insecure GitHub Actions workflow configurations like pull_request_target that enable privileged execution of untrusted code from forked PRs.
Establishes configuration change control for repository artifacts such as GitHub workflows, mitigating the introduction or persistence of vulnerable release-canary.yml configurations.
Mandates secure development processes, standards, and tools that prohibit dangerous CI/CD practices like untrusted pull_request_target triggers leading to arbitrary code execution and secret exfiltration.