Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2025-29903

CVE-2025-29903: JetBrains Runtime RCE Vulnerability

CVE-2025-29903 is a remote code execution vulnerability in JetBrains Runtime that enables arbitrary dynamic library execution through insecure macOS flags. This article covers technical details, affected versions, and mitigations.

Published:

CVE-2025-29903 Overview

CVE-2025-29903 affects JetBrains Runtime versions before 21.0.6b872.80 on macOS. The vulnerability allows arbitrary dynamic library execution due to insecure macOS flags applied to the runtime binary. Local attackers can leverage these flags to load unsigned or malicious dynamic libraries into the runtime process. The issue maps to [CWE-426] Untrusted Search Path and requires local access with low privileges.

Critical Impact

A local attacker can execute arbitrary code within the context of the JetBrains Runtime process, compromising confidentiality, integrity, and availability of the affected system.

Affected Products

  • JetBrains Runtime versions prior to 21.0.6b872.80
  • macOS installations of JetBrains IDEs bundled with the vulnerable runtime
  • Applications embedding the affected JetBrains Runtime on macOS

Discovery Timeline

  • 2025-03-12 - CVE-2025-29903 published to NVD
  • 2026-06-17 - Last updated in NVD database

Technical Details for CVE-2025-29903

Vulnerability Analysis

JetBrains Runtime is a fork of OpenJDK maintained by JetBrains and shipped with IntelliJ-based IDEs. On macOS, application binaries can declare entitlements and linker flags that influence how the dynamic linker (dyld) resolves and loads libraries at runtime. The affected versions of JetBrains Runtime were built with insecure macOS flags that relaxed library validation on the runtime executable.

With library validation weakened, dyld accepts dynamic libraries that are not signed by the same Team ID as the main binary. A local attacker with the ability to place a crafted .dylib in a search path consulted by the runtime can force that library to load into the runtime process. Code within the injected library executes with the privileges of the user running the IDE.

Root Cause

The root cause is the use of insecure build-time flags, such as disabled library validation or permissive DYLD environment handling, on the JetBrains Runtime Mach-O binary. These flags override macOS hardened runtime protections that would otherwise reject unsigned or third-party dynamic libraries.

Attack Vector

Exploitation requires local access with a low-privileged user account. The attacker stages a malicious .dylib in a location referenced by the runtime's library search path or environment. When the user launches a JetBrains IDE or an application using the affected runtime, dyld loads the malicious library and executes attacker-controlled code. No user interaction beyond normal IDE usage is required.

No verified public proof-of-concept code is available. See the JetBrains Privacy Issues Fixed advisory for vendor details.

Detection Methods for CVE-2025-29903

Indicators of Compromise

  • Unexpected .dylib files in user-writable directories referenced by JetBrains IDE processes
  • JetBrains Runtime processes loading libraries signed by a Team ID other than JetBrains
  • Unusual child processes spawned by java or IDE binaries such as idea, pycharm, or webstorm

Detection Strategies

  • Audit loaded modules of running JetBrains Runtime processes using vmmap or lsof and compare against known-good baselines
  • Monitor macOS Unified Log for dyld events indicating library validation bypass on JetBrains binaries
  • Inspect installed JetBrains Runtime binaries with codesign -dv --entitlements - to identify insecure entitlements or disabled library validation

Monitoring Recommendations

  • Alert on creation of .dylib files inside JetBrains IDE installation directories or user configuration paths
  • Track process execution chains where JetBrains Runtime spawns shells, network utilities, or credential access tools
  • Correlate endpoint telemetry with software inventory to identify hosts still running JetBrains Runtime below 21.0.6b872.80

How to Mitigate CVE-2025-29903

Immediate Actions Required

  • Upgrade JetBrains Runtime to version 21.0.6b872.80 or later on all macOS endpoints
  • Update all JetBrains IDEs to releases that bundle the patched runtime
  • Inventory macOS developer workstations for vulnerable JetBrains Runtime installations and prioritize remediation

Patch Information

JetBrains fixed the issue in JetBrains Runtime 21.0.6b872.80 by removing the insecure macOS flags and restoring hardened runtime library validation. Refer to the JetBrains Privacy Issues Fixed advisory for the vendor's remediation guidance.

Workarounds

  • Restrict write permissions on JetBrains IDE installation directories to prevent unauthorized .dylib placement
  • Enforce macOS application allowlisting to block execution of unsigned or non-JetBrains dynamic libraries
  • Remove DYLD_* environment variables from developer shell profiles where not explicitly required
bash
# Verify the installed JetBrains Runtime version on macOS
/Applications/IntelliJ\ IDEA.app/Contents/jbr/Contents/Home/bin/java -version

# Inspect code signing and entitlements of the runtime binary
codesign -dv --entitlements - /Applications/IntelliJ\ IDEA.app/Contents/jbr/Contents/Home/bin/java

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.