Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain local IBMi account on shared host
-
ExploitOverwrite world-writable component object (GETMBRINFO)
-
ExecutionVictim connects via extension and invokes component
-
ImpactAltered program executes under victim's account
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V13 - Configuration Permission assignment review
|
| Exploitation Conditions | Exploitation requires all of the following: (1) the attacker holds a separate local account on the same IBM i system as the victim; (2) a Code-for-IBMi component object (e.g., the GETMBRINFO program) was installed with broad *PUBLIC permissions permitting modification by other local accounts; (3) the extension is a version prior to 3.0.1, which accepts a component after merely confirming a procedure exists and relies on the LONG_COMMENT marker, never verifying component integrity; and (4) a victim subsequently initiates a connection through the extension that invokes the tampered component. Limiting factors that reduce realistic risk: the attacker needs valid local IBM i credentials, the target object must have been deployed with permissive (non-restrictive) authorities, and no impact occurs unless a victim connects and triggers the component after it has been altered. |
| Impact | CVSS 4.0 base score is 8.9 (high), but the real-world risk is more constrained than that headline suggests. Exploitation is not remote-unauthenticated: it requires an attacker to already hold a local account on the target IBM i system (PR:L), the vulnerable component object (e.g., GETMBRINFO) to have been installed with broad *PUBLIC permissions (the CWE-732 root cause), the extension to be a version prior to 3.0.1, and - critically - a separate victim to subsequently connect via the extension and invoke the tampered component (UI:P / AT:P). No EPSS score, CISA KEV listing, or public proof-of-concept was provided in the intelligence, so there is no public exploit identified at time of analysis and no evidence of active or automatable exploitation. SSVC decision data was not supplied. Note a signal conflict: the vendor CVSS 4.0 vector asserts AV:N (network), yet the description frames the malicious action as a local account altering a program object on the IBM i - the 'network' element appears to be the victim's later connection rather than the attacker's intrusion vector, so AV:L is arguably more faithful; verify the attack-vector interpretation with the vendor. Net assessment: a legitimately serious integrity/code-execution flaw for multi-user IBM i environments, but gated behind a local foothold, insecure object permissions, and a victim action - a targeted insider/lateral-movement risk rather than a mass-exploitation priority. |
| Exploit ScenarioDerived | A low-privileged user on a shared IBM i system notices that a Code-for-IBMi component program such as GETMBRINFO was installed with broad public write permissions and replaces it with a malicious variant; because pre-3.0.1 only checks that the procedure exists (relying on the LONG_COMMENT marker) rather than verifying integrity, the tampering is not detected. When a developer with higher privileges later connects through the VS Code extension and the component is invoked, the attacker's altered program runs under the connecting developer's account, yielding code execution in that user's context. No public proof-of-concept is known at time of analysis, and success depends on the victim connecting after the object is poisoned. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 12, 2026
Code for IBM i (vscode-ibmi) releases before 3.0.1 install and later execute IBM i component programs without verifying their integrity, so an authenticated attacker holding a separate local account on the same IBM i system can modify a component such as GETMBRINFO when it was deployed with permissive *PUBLIC authorities, and the altered program then runs in the context of any user who subsequently connects through the extension. The reported CVSS 4.0 score is 8.9, but the independent assessment rates the issue CVSS 3.1 AV:L/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H, reflecting that exploitation requires valid local IBM i credentials, a loosely secured component object, and a victim initiating a connection that triggers the tampered program; no public exploit code or confirmed active exploitation was identified at time of analysis. Version 3.0.1 fixes the flaw, with details in GHSA-rmqv-7c5v-wvjc.
RemediationAI
Vendor-released patch: upgrade the Code for IBM i extension to version 3.0.1 or later from the VS Code Marketplace, which restores integrity verification of installed components; see advisory GHSA-rmqv-7c5v-wvjc and commit 6a13990a0f6c2fb4cf71ba8fbde1cef32c808b1e. Where an immediate upgrade is not possible, compensate on the IBM i host by tightening authority on the extension's component objects so that only the owning profile and explicitly authorized administrators can change them, for example by removing *PUBLIC change rights (*CHANGE, *OBJEXIST, *OBJMGT) from the affected programs and their libraries or protecting them with an authorization list; the trade-off is that other administration or automation profiles will require explicit grants and the extension may fail until authorities are corrected. Audit existing GETMBRINFO and related component objects for unexpected modification using object change timestamps, source-to-object comparison, or recompilation, and reinstall components from a trusted copy if tampering is suspected. Because exploitation requires a separate local IBM i account, reviewing local user profiles and removing unnecessary ones also shrinks the attack surface, though it does not replace patching.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
This is a CWE-732 incorrect permission assignment for a critical resource, rooted in how the extension's component subsystem trusts artifacts on disk. Code for IBM i exposes an IBMiComponent abstraction used to deploy helper objects (ILE programs and service programs such as GETMBRINFO) to the IBM i host. Before 3.0.1 the extension accepted a component after merely confirming that an expected procedure existed and treated the LONG_COMMENT marker as though it established authenticity, without computing or comparing a hash or signature over the installed object. Because the deployed components are ordinary IBM i objects whose authority is governed by *PUBLIC, a deployment granting broad public change rights lets any other local profile on the same system rewrite the program body, and the extension later invokes that procedure under the connecting user's authority, yielding code execution in the victim's context. The upstream fix commit 6a13990a0f6c2fb4cf71ba8fbde1cef32c808b1e accompanies the 3.0.1 release, which also refreshes build and runtime dependencies such as tar, esbuild and vitest. The CPE cpe:2.3:a:codefori:vscode-ibmi:*:*:*:*:*:*:*:* is version-agnostic, so every pre-3.0.1 build should be treated as affected.
Know when Vscode Ibmi gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:P/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
Attacker needs a local account to overwrite a world-writable component object (AV:L, PR:L); a victim must connect and run it (UI:R); code then executes under the victim's account, crossing a security boundary (S:C).
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
Code for IBMi is a Visual Studio Code extension for maintaining and compiling ILE languages on the IBMi platform. Prior to 3.0.1, IBMi components implementing IBMiComponent were accepted after checking that a procedure existed without reliably verifying component integrity. Components installed with broad public permissions allow another local account to alter a program such as GETMBRINFO. A later connection can execute the altered program under the connecting account because the LONG_COMMENT marker alone does not establish integrity. This issue is fixed in version 3.0.1.
Executive ViewAI
IBM's Code for IBM i extension for Visual Studio Code (all releases before 3.0.1) installs and executes IBM i component programs without verifying their integrity, so an authenticated user holding a local IBM i account can alter a component such as GETMBRINFO when it was deployed with permissive *PUBLIC authorities, and that tampered program then runs in the context of any colleague who connects through the extension. Because this tooling is used by developers and administrators reaching into business-critical IBM i systems, the practical risk is loss of integrity and availability on core workloads rather than a widespread external attack. Exploitation requires valid local credentials, a loosely secured component object, and a victim-initiated connection; no public exploit identified at time of analysis, but a vendor fix (3.0.1) is documented.
Apply vendor patch (3.0.1); until deployed, restrict *PUBLIC and non-administrative write authority on IBM i component programs and monitor audit journals for unauthorized object modification.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
EUVD-2026-97969
NVD
CVE.org
EPSS
GitHub
Exploit-DB