☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]

CVE-2025-9190

CVE-2025-9190 Privilege Escalation in Cursor
📅 PUBLISHED: 2025-08-26 12:22 UTC 🔄 UPDATED: 2026-09-23 20:34 UTC
[ ZERO-DAY / UNPATCHED ] [ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.16%
👁️
0.16% probability
4.1× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
VULNERABLE: UNKNOWN / CHECK VENDOR
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
4.8
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-9190 is a local privilege escalation vulnerability in Cursor for macOS (version 15.4.1) that exploits the "RunAsNode" fuse configuration. A local unprivileged attacker can execute arbitrary code that inherits Cursor's TCC (Transparency, Consent, and Control) permissions, allowing unauthorized access to previously granted resources (e.g., camera, microphone, files). The vendor has declined to fix this issue, citing that a local attacker scenario is outside their threat model.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

This vulnerability is not related to NPM, PyPI, Go, or Ruby packages. It is a macOS-specific desktop application issue.

CVSS Breakdown & Threat Level

  • Attack Vector (AV): Local (L) – Requires local access to the system.
  • Attack Complexity (AC): Low (L) – No special conditions needed.
  • Privileges Required (PR): Low (L) – Attacker needs unprivileged access.
  • User Interaction (UI): None (N) – No user action required beyond initial TCC grant.
  • Scope (S): Unchanged (U) – The vulnerable component and impacted component are the same.
  • Confidentiality (C): Low (L) – Limited to previously granted TCC permissions.
  • Integrity (I): Low (L) – Attacker can execute code but not modify system files.
  • Availability (A): None (N) – No impact on availability.

CVSS Score: 4.4 (Medium)

Threat Level: Medium – Exploitation requires local access but is trivial once achieved.

Deep Dive & Mechanics

The vulnerability stems from Cursor's "RunAsNode" fuse being enabled. On macOS, TCC permissions are tied to the application bundle. When Cursor is launched with RunAsNode, it allows Node.js child processes to inherit the parent's TCC permissions without additional prompts. A local attacker can craft a malicious script that, when executed via Cursor's Node.js runtime, accesses resources (e.g., files, camera) that the user previously granted to Cursor. The attacker's code runs under Cursor's identity, so TCC prompts appear as if Cursor is requesting access, potentially tricking the user.

Key Technical Details:

  • RunAsNode Fuse: A macOS feature that allows an application to run as a Node.js process, inheriting its parent's entitlements.
  • TCC Bypass: The attacker does not need to bypass TCC entirely; they inherit existing permissions.
  • Attack Vector: Local unprivileged user executes a script that spawns a child process under Cursor's context.

Vulnerable vs. Patched Code

Vulnerable Code (Cursor 15.4.1):

  • The RunAsNode fuse is enabled by default.
  • No restrictions on child process creation or permission inheritance.

Patched Code (Not Available):

  • The vendor has not released a patch. A hypothetical fix would disable RunAsNode or restrict child process TCC inheritance.

Exploitation & Lab Setup

Red Team

Prerequisites:

  • Local unprivileged access to a macOS system with Cursor 15.4.1 installed.
  • User has granted Cursor TCC permissions (e.g., camera, microphone, files).

Exploit Steps:

  1. Identify Cursor's process ID (PID) using ps aux | grep Cursor.
  2. Create a malicious Node.js script that accesses a protected resource (e.g., fs.readFileSync('/Users/user/Documents/secret.txt')).
  3. Execute the script using Cursor's Node.js runtime:
    /Applications/Cursor.app/Contents/Resources/app/node /path/to/malicious.js
    
  4. The script inherits Cursor's TCC permissions and accesses the resource without prompting the user.

Example Malicious Script:

const fs = require('fs');
const data = fs.readFileSync('/Users/user/Documents/secret.txt', 'utf8');
console.log(data);

Blue Team

Detection:

  • Monitor for child processes spawned by Cursor that are not typical (e.g., node processes with unusual arguments).
  • Use endpoint detection and response (EDR) to flag TCC permission inheritance anomalies.

Mitigation:

  • Restrict local access to the system (e.g., enforce least privilege).
  • Monitor TCC database changes using tccutil or sqlite3 on ~/Library/Application Support/com.apple.TCC/TCC.db.

Indicators of Compromise (IOCs)

  • Process: node spawned by Cursor with unusual arguments (e.g., reading sensitive files).
  • File Access: Unauthorized access to files in ~/Documents, ~/Desktop, etc., via Cursor's PID.
  • TCC Database: Entries in TCC.db showing Cursor accessing resources without user interaction.

Detection Engineering

YARA Rule

rule CVE_2025_9190_Cursor_TCC_Bypass {
    meta:
        description = "Detects malicious Node.js scripts exploiting Cursor TCC bypass"
        author = "Valters IT"
        date = "2025-01-01"
        reference = "CVE-2025-9190"
    strings:
        $s1 = "fs.readFileSync" ascii wide nocase
        $s2 = "process.binding" ascii wide nocase
        $s3 = "child_process" ascii wide nocase
    condition:
        any of ($s*) and filesize < 10KB
}

Sigma Rule

title: Cursor TCC Permission Inheritance Exploit
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects child processes spawned by Cursor that may inherit TCC permissions
author: Valters IT
logsource:
    category: process_creation
    product: macos
detection:
    selection:
        ParentImage|endswith: '/Cursor.app/Contents/MacOS/Cursor'
        Image|endswith: '/node'
    condition: selection
falsepositives:
    - Legitimate Node.js scripts run by the user
level: medium

Suricata Rule

alert ip any any -> any any (msg:"CVE-2025-9190 Cursor TCC Bypass"; content:"Cursor"; offset:0; depth:6; classtype:attempted-user; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable RunAsNode: If possible, modify Cursor's configuration to disable the RunAsNode fuse (not officially supported).
  2. Restrict Local Access: Implement strict user access controls on macOS (e.g., disable guest accounts, enforce password policies).
  3. Monitor TCC Permissions: Regularly audit TCC database for unexpected entries.

Long-Term Recommendations:

  • Vendor Action: Advocate for Cursor to patch this issue by disabling RunAsNode or implementing permission inheritance restrictions.
  • User Education: Warn users about the risks of granting TCC permissions to applications that run Node.js scripts.

Workaround:

  • Use a different code editor that does not have this vulnerability (e.g., VS Code with proper sandboxing).

Valters IT

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-9190/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.