CVE-2026-100256
Executive Summary
CVE-2026-100256 is a remote code execution vulnerability in JetBrains IntelliJ IDEA before version 2026.2.3, reachable through Structural Search script constraints when a project is opened from an untrusted source. The flaw is rooted in the improper control of code generation (CWE-829), where attacker-supplied project content causes the IDE to execute script constraints supplied by the repository rather than by the user. Impact is high across confidentiality, integrity, and availability (CVSS 7.8), with exploitation requiring local access but only a single user interaction — the victim opening or interacting with a malicious project.
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.
No signup required
Technical Analysis
The vulnerability resides in the Structural Search feature of IntelliJ IDEA. Structural Search allows a developer to define search patterns expressed as code templates, and to attach script constraints — executable snippets that decide whether a candidate structural match satisfies additional conditions. Because these constraints are code that the IDE evaluates during the search process, they constitute an execution primitive embedded in project-supplied configuration.
The specific weakness class assigned is CWE-829, "Inclusion of Functionality from Untrusted Control Sphere." This reflects that functionality (a script constraint) originates from an untrusted control sphere (an untrusted project) but is included and executed by the IDE under the user's own privileges. The pre-2026.2.3 behavior did not sufficiently isolate or gate the execution of script constraints contributed by an untrusted project, meaning the trust boundary between "data in a project" and "code the IDE runs" was crossed without adequate user consent or sandboxing.
The attack surface is driven by project metadata rather than network services. Development projects encode structural search definitions in their configuration; when such a project is cloned, downloaded, or otherwise obtained from a source the user does not control, that configuration becomes attacker-influenced input. The exploitation prerequisite is therefore not remote reachability of a listening service, but rather the act of loading attacker-controlled project content in the IDE, after which an interaction with the affected feature triggers evaluation of the malicious constraint.
The CVSS vector AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H maps cleanly onto this mechanism: Local attack vector (the vulnerable component is the local IDE process), Low attack complexity, No privileges required by the attacker on the victim's machine, User Interaction Required (the victim must open the project and trigger the search feature), Unchanged scope (the IDE process itself is the impacted security authority), and High impact to confidentiality, integrity, and availability. The UI:R component is the only meaningful friction — it aligns with the "untrusted project" precondition.
Detailed implementation specifics — the exact constraint evaluation engine, the scripting language bindings, and the precise bypass that allowed project-supplied constraints to run — are not disclosed in the available NVD description or CNA title. No further code-level claims are made here to avoid speculation beyond the provided data.
Exploitation Scenarios
No public PoC is available; the following chain is inferred from the vulnerability class and the NVD description, and is described at the class level without inventing implementation identifiers.
Reconnaissance / target identification. The attacker identifies developers or teams likely to open third-party projects — for example, by publishing a repository, sharing an archive, or social-engineering a colleague into cloning a "sample" or "reproduction" project. The target set is developers running IntelliJ IDEA earlier than 2026.2.3. The victim does not need elevated privileges; any user account running the IDE is sufficient.
Triggering the flaw class. The attacker crafts a project containing a Structural Search definition whose script constraint is malicious. When the victim opens this untrusted project and the affected Structural Search functionality evaluates the constraint, the IDE includes and executes attacker-controlled functionality from the untrusted project sphere — the CWE-829 condition. The malicious code runs with the privileges of the IntelliJ IDEA process on the victim's workstation.
Payload / execution method. At the class level, the payload is arbitrary script executed by the IDE as a consequence of constraint evaluation. The precise script language and API surface available to the constraint are not specified in the available intelligence; no function names, API paths, or parameter identifiers are invented here. Because execution occurs within the IDE process, the payload can interact with whatever the IDE process is authorized to access.
Post-exploitation impact. Given C:H/I:H/A:H, successful exploitation yields full compromise of the confidentiality, integrity, and availability of the affected IDE process context: potentially reading developer source code, secrets, and credentials handled in the IDE; modifying project files, build configuration, or IDE state (integrity); and disrupting or destroying data/availability. From an IDE foothold an attacker may also pivot to developer build pipelines and version-control credentials, though such lateral movement is environment-dependent and not guaranteed by this CVE alone.
Key precondition: the victim must actually open the untrusted project and trigger the relevant Structural Search script-constraint path. An attacker who gets the user to do so needs no additional privileges and faces low attack complexity.
Impact Assessment
Business impact is concentrated on developer workstations and, by extension, on the software supply chain they feed. Because IntelliJ IDEA is a primary development environment, the process context frequently holds write access to source repositories, access tokens, code-signing material, and build/deploy credentials. A successful RCE in that context can translate into source-code tampering, exfiltration of proprietary intellectual property, or unauthorized code injection into products — elevating the effective business risk well beyond a single workstation.
Affected systems: any host running JetBrains IntelliJ IDEA versions before 2026.2.3, across Windows, macOS, and Linux, where the user opens projects from untrusted sources. Blast radius is user-scoped rather than machine-wide, but the radius of reachable assets (repos, secrets, pipelines) can be large.
CVSS 3.1 subscores: AV:L reflects the local, project-load model; AC:L reflects that no special conditions beyond loading a crafted project are needed; PR:N reflects that the attacker needs no account on the victim host; UI:R reflects the required user action of opening/interacting with the untrusted project; S:U reflects that the IDE process is the changed security authority; and C:H/I:H/A:H reflect total loss of confidentiality, integrity, and availability within that scope. Notably, AV:L plus UI:R are the two factors that most reduce the 7.8 score relative to a fully remote, unauthenticated code execution.
No EPSS score is available yet (FIRST.org has not scored it), and the CVE is not listed in CISA KEV, so there is no evidence of active, widespread exploitation as of this writing.
Detection Guidance
Detections focus on the consequence of exploitation — unexpected child processes, shell activity, or network egress spawned by the IntelliJ IDEA process — since the trigger is a project artifact rather than a network-visible request.
Sigma Rule
title: Suspicious Child Process Spawned by IntelliJ IDEA (CVE-2026-100256)
id: 8f1c2a10-4b7e-4d1a-9b3c-intellij-rce-2026
status: experimental
description: Detects common post-exploitation process creation by the IntelliJ IDEA process, potentially indicative of RCE via Structural Search script constraints in untrusted projects.
references:
- https://nvd.nist.gov/vuln/detail/CVE-2026-100256
author: valtersit.com
date: 2026/01/01
tags:
- attack.execution
- attack.t1204.002
- cve.2026.100256
logsource:
category: process_creation
product: windows
detection:
selection_parent:
ParentImage|endswith:
- '\idea64.exe'
- '\idea.exe'
selection_susp_children:
Image|endswith:
- '\cmd.exe'
- '\powershell.exe'
- '\pwsh.exe'
- '\curl.exe'
- '\wscript.exe'
- '\cscript.exe'
filter_devtools:
CommandLine|contains:
- 'idea\plugins'
- 'gradle'
- 'maven'
condition: selection_parent and selection_susp_children and not filter_devtools
falsepositives:
- Legitimate build tooling or plugin managers launched from the IDE
- Developer workflows invoking shells for tasks
level: medium
YARA Rule
rule CVE_2026_100256_IntelliJ_Untrusted_StructuralSearch
{
meta:
author = "valtersit.com"
description = "Detects project artifacts referencing Structural Search script constraints, a potential delivery vector for CVE-2026-100256."
reference = "https://nvd.nist.gov/vuln/detail/CVE-2026-100256"
date = "2026-01-01"
severity = "medium"
strings:
$search1 = "structuralSearch" ascii nocase
$search2 = "StructuralSearch" ascii
$constraint1 = "scriptConstraint" ascii nocase
$constraint2 = "script constraint" ascii nocase
$marker1 = "<searchConfiguration" ascii nocase
$marker2 = "searchConfiguration" ascii nocase
condition:
(uint16(0) == 0x4B50 or true) and
(1 of ($search1, $search2, $marker1, $marker2)) and
(1 of ($constraint1, $constraint2))
}
Suricata IDS Rule
alert tcp $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2026-100256 Possible IntelliJ IDEA RCE Post-Exploitation Egress"; flow:established,to_server; content:"|55 73 65 72 2d 41 67 65 6e 74 7c"; http_header; content:"IntelliJ"; http_header; nocase; threshold:type both, track by_src, count 1, seconds 300; classtype:attempted-user; reference:cve,2026-100256; reference:url,nvd.nist.gov/vuln/detail/CVE-2026-100256; sid:2026100256; rev:1;)
Elastic Detection
process where event.type == "start" and
process.parent.name in ("idea64.exe", "idea.exe", "idea", "idea.sh") and
process.name in ("cmd.exe", "powershell.exe", "pwsh.exe", "curl", "curl.exe", "wget", "bash", "sh", "osascript")
Splunk SPL Query
index=endpoint EventCode=1
| eval parent=lower(ParentImage)
| eval child=lower(Image)
| where (like(parent,"%idea64.exe") OR like(parent,"%idea.exe") OR like(parent,"%idea%"))
AND (like(child,"%cmd.exe") OR like(child,"%powershell.exe") OR like(child,"%pwsh.exe")
OR like(child,"%curl%") OR like(child,"%wget%") OR like(child,"%osascript%") OR like(child,"%bash"))
| stats count earliest(_time) as first_seen latest(_time) as last_seen values(CommandLine) as cmds by host, User, parent, child
| where count >= 1
Wazuh OSSEC Rule
<group name="windows,sysmon,cve-2026-100256,">
<rule id="100256" level="10">
<if_sid>61603</if_sid>
<field name="win.eventdata.parentImage">idea64\.exe$|idea\.exe$</field>
<field name="win.eventdata.image">cmd\.exe$|powershell\.exe$|pwsh\.exe$|curl\.exe$|wscript\.exe$|cscript\.exe$</field>
<description>CVE-2026-100256: Suspicious child process spawned by IntelliJ IDEA - possible RCE via untrusted project script constraints</description>
<mitre>
<id>T1204.002</id>
</mitre>
<group>cve_2026_100256,</group>
</rule>
</group>
Mitigation & Patch Guidance
Patch confidence: 0/4 (UNPATCHED — no patch evidence from any tracked source). No vendor advisory, workaround, or fixed-version reference is present in the supplied intelligence, although the NVD description indicates the fix boundary is IntelliJ IDEA 2026.2.3. Treat the following as risk-reduction guidance rather than a confirmed remediation plan.
Immediate mitigations
- Do not open projects from untrusted or unverified sources. Enforce a policy that third-party repositories, archives, and "reproduction" projects are reviewed before being opened in IntelliJ IDEA.
- Where feasible, disable or restrict the Structural Search feature and avoid executing project-provided structural search configurations until a fix is applied.
- Isolate development of untrusted code in disposable VMs or restricted user accounts without access to production credentials, signing keys, or source-control tokens.
- Run the IDE with least privilege, and segregate high-value credentials away from the workstation used to review untrusted projects.
Patch / upgrade steps
- Upgrade JetBrains IntelliJ IDEA to version 2026.2.3 or later. Because no patch sources were tracked, validate the fix version against the official JetBrains security advisory and release notes before relying on it.
- Where the IDE is managed centrally, push the updated version through your software distribution tooling and verify version compliance across the fleet.
Long-term hardening
- Adopt an IDE trust model: require explicit trust confirmation before a project can trigger code-execution features, and audit any settings that auto-execute project-supplied logic.
- Maintain an inventory of developer endpoints and IDE versions, and subscribe to JetBrains and NVD feeds for this CVE and related IntelliJ advisories.
- Apply defense-in-depth for developer environments: endpoint detection for IDE-spawned child processes (see detection section), network egress monitoring, and separation of build infrastructure from interactive development hosts.
References
- NVD — CVE-2026-100256: https://nvd.nist.gov/vuln/detail/CVE-2026-100256
- JetBrains Security Advisories (monitor for the advisory covering IntelliJ IDEA 2026.2.3): https://www.jetbrains.com/privacy-security/issues-fixed/
- MITRE ATT&CK T1204.002 — User Execution: Malicious File: https://attack.mitre.org/techniques/T1204/002/
- CWE-829 — Inclusion of Functionality from Untrusted Control Sphere: https://cwe.mitre.org/data/definitions/829.html
- CISA KEV Catalog (verify whether CVE-2026-100256 is later added): https://www.cisa.gov/known-exploited-vulnerabilities-catalog
No public PoC, exploit code, or Nuclei template is known for CVE-2026-100256, and there is no KEV listing or known threat-actor campaign attributable to this CVE at the time of writing.
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.