Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2026-41414

CVE-2026-41414: Skim Fuzzy Finder RCE Vulnerability

CVE-2026-41414 is a remote code execution flaw in Skim fuzzy finder that allows attackers to execute malicious code via pull requests with access to sensitive tokens. This article covers technical details, impact, and mitigation.

Published:

CVE-2026-41414 Overview

CVE-2026-41414 is a Code Injection vulnerability affecting Skim, a fuzzy finder designed to search through files, lines, and commands. The vulnerability exists in the generate-files job within .github/workflows/pr.yml, which checks out attacker-controlled fork code and executes it via cargo run. This workflow has access to sensitive secrets including SKIM_RS_BOT_PRIVATE_KEY and GITHUB_TOKEN with contents:write permissions. No security gates prevent exploitation, meaning any GitHub user can trigger this vulnerability by simply opening a pull request from a fork.

Critical Impact

Attackers can execute arbitrary code in the context of GitHub Actions runners with access to repository secrets and write permissions, potentially leading to supply chain compromise.

Affected Products

  • Skim (skim-rs/skim) - versions prior to commit bf63404ad51985b00ed304690ba9d477860a5a75
  • GitHub Actions workflows in skim-rs/skim repository

Discovery Timeline

  • 2026-04-24 - CVE-2026-41414 published to NVD
  • 2026-04-27 - Last updated in NVD database

Technical Details for CVE-2026-41414

Vulnerability Analysis

This vulnerability represents a dangerous pattern in GitHub Actions workflow configuration where untrusted code from pull requests is executed with elevated privileges. The generate-files job in the PR workflow checks out code from the forked repository and runs it using cargo run. Since pull requests from forks contain attacker-controlled code, this creates a direct path to code execution within the repository's CI/CD environment.

The workflow configuration grants the job access to SKIM_RS_BOT_PRIVATE_KEY, a private key that likely has elevated permissions for automated operations, and GITHUB_TOKEN with contents:write scope. This combination allows an attacker to not only execute arbitrary code but also modify repository contents, potentially injecting malicious code into releases or poisoning the software supply chain.

Root Cause

The root cause is improper trust boundary management in the GitHub Actions workflow configuration. The PR workflow fails to distinguish between trusted repository code and untrusted fork code, executing both with the same elevated privileges. This violates the principle of least privilege and creates a pull_request_target-style vulnerability where external contributors can execute code with access to repository secrets.

Attack Vector

The attack vector is network-based and requires no privileges beyond a GitHub account. An attacker can exploit this vulnerability through the following steps:

  1. Fork the skim-rs/skim repository
  2. Modify the code in the fork to include malicious payloads
  3. Open a pull request from the fork to the main repository
  4. The generate-files job automatically checks out and executes the malicious code
  5. The attacker's code runs with access to SKIM_RS_BOT_PRIVATE_KEY and GITHUB_TOKEN

The vulnerability requires user interaction (a maintainer must have the workflow enabled), but no approval or review is needed before code execution occurs.

The security patch removed the dangerous PR action entirely in favor of a safer just recipe approach:

text
+alias pr := pr-review
+
 bump-version version:
     sed -i 's/^version = ".*"/version = "{{ version }}"/' ./Cargo.toml
 

Source: GitHub Commit Details

Detection Methods for CVE-2026-41414

Indicators of Compromise

  • Unexpected or unauthorized pull requests from unknown forks
  • Unusual GitHub Actions workflow runs triggered by external contributors
  • Modifications to repository contents not associated with approved merges
  • Access logs showing GITHUB_TOKEN usage from workflow runs during PR events
  • Suspicious commits or releases appearing without maintainer approval

Detection Strategies

  • Monitor GitHub Actions workflow logs for cargo run executions during pull request events
  • Audit GitHub repository access logs for unusual token usage patterns
  • Review GitHub Actions workflow configurations for unsafe patterns involving fork code execution
  • Implement GitHub audit log monitoring for repository secret access during PR workflows

Monitoring Recommendations

  • Enable GitHub Advanced Security features to detect secrets in workflow logs
  • Configure alerts for workflow runs triggered by forked repository pull requests
  • Implement branch protection rules requiring approval before workflow execution
  • Monitor for unauthorized changes to .github/workflows/ directory

How to Mitigate CVE-2026-41414

Immediate Actions Required

  • Update to the patched version by applying commit bf63404ad51985b00ed304690ba9d477860a5a75
  • Audit existing GitHub Actions workflows for similar unsafe patterns
  • Review repository access logs for any signs of prior exploitation
  • Rotate any secrets that may have been exposed through the vulnerable workflow

Patch Information

The vulnerability has been fixed in commit bf63404ad51985b00ed304690ba9d477860a5a75. The fix removes the dangerous PR action that executed attacker-controlled code and replaces it with a safer just recipe approach that doesn't run untrusted code with elevated privileges.

For detailed information, refer to the GitHub Security Advisory and the patch commit.

Workarounds

  • Disable the vulnerable workflow until the patch can be applied
  • Configure branch protection rules to require approval for all PR workflow runs
  • Use pull_request trigger instead of pull_request_target to avoid running with repository secrets
  • Implement workflow approval requirements for first-time contributors
bash
# Disable the vulnerable workflow temporarily
mv .github/workflows/pr.yml .github/workflows/pr.yml.disabled
git add .github/workflows/pr.yml.disabled
git commit -m "Disable vulnerable PR workflow pending security patch"
git push

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.