Skip to main content

pbi-cli CVE-2026-108744

| EUVDEUVD-2026-96909 HIGH
OS Command Injection (CWE-78)
2026-10-11 VulnCheck GHSA-jvcc-r2cm-664x
7.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Craft .pbip project at space-free path containing '&'
  2. Delivery
    Lure victim into opening project in pbi-cli
  3. Exploit
    desktop_sync passes unquoted path to cmd /c start
  4. Execution
    Shell parses '&' and executes injected command
  5. Impact
    Arbitrary commands run with victim privileges

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization OS command sanitization, avoid shell exec
MITRE ATT&CK

2 techniques across 1 tactic: Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires the victim to be running pbi-cli version 3.10.1 through 3.12.0 and to open, write, or reload a Power BI .pbip project that is located at a filesystem path which (a) contains no spaces and (b) contains an '&' character, so that desktop_sync.py's unquoted argument to 'cmd /c start' is reinterpreted by the Windows shell as a command separator. The attacker cannot execute remotely or without help: they must first place the malicious project at an attacker-controlled path and socially engineer the victim into opening it (UI:P). Limiting factors: local attack vector only (Windows 'cmd' implies a Windows host), mandatory user interaction, dependence on a non-default crafted path, and the fact that paths containing spaces defeat the specific injection - all of which constrain this to targeted scenarios rather than broad exploitation.

Impact

The input provides a CVSS 4.0 vector (CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N) scoring 7.3 (High), which is internally consistent with the description: the attack is LOCAL (AV:L), needs no attacker privileges (PR:N), but hinges on passive user interaction (UI:P - the victim opening a project) plus a specific attack requirement (AT:P - a crafted, space-free path containing '&'). Impact is high across confidentiality, integrity, and availability because arbitrary commands run with the victim's privileges. No EPSS score is provided, there is no CISA KEV listing, and no POC=YES flag is present in the input, so exploitation status is 'no public exploit identified at time of analysis' - although a detailed hackmd write-up and direct source-line references exist, which lowers the barrier to weaponization. Weighing these signals together, this is a genuine but NOT top-tier priority: the LOCAL vector, required user interaction, and specific non-default path condition make mass/automated exploitation implausible, pointing instead toward targeted social-engineering against developers using this specific niche CLI. The absence of EPSS/KEV data is a gap (not an error), so real-world exploitation probability cannot be quantified from the provided data.

Exploit ScenarioDerived

An attacker crafts or renames a Power BI (.pbip) project so it resides at a space-free filesystem path containing an '&' character (e.g. delivered via a shared repo, zip, or network share) and lures a pbi-cli user into opening it. When the victim reopens, writes, or reloads the report, desktop_sync.py passes the unquoted path to 'cmd /c start', and the shell interprets the '&' as a command separator, executing attacker-chosen commands with the victim's privileges. No public exploit is identified in the input, but a step-by-step hackmd analysis and the exact vulnerable source lines are publicly referenced, materially easing exploit development.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.5% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 11, 2026

OS command injection in pbi-cli 3.10.1 through 3.12.0 allows a local attacker to execute arbitrary commands with victim privileges when the victim opens a crafted Power BI .pbip project from a space-free filesystem path containing an '&' character. The flaw resides in desktop_sync.py, which passes unquoted paths to 'cmd /c start' during report write or reload, and exploitation requires user interaction (UI:P) with the crafted path. No public exploit code or active exploitation (CISA KEV) has been identified at time of analysis; CVSS 4.0 score is 7.3 (High), and an independent CVSS 3.1 assessment yields 7.8 (High).

RemediationAI

No vendor-released patch identified at time of analysis. Users should monitor the pbi-cli GitHub repository (https://github.com/MinaSaad1/pbi-cli) and the VulnCheck advisory (https://www.vulncheck.com/advisories/pbi-cli-3.10.1-through-3.12.0-os-command-injection-via-desktop-sync) for an update. As a compensating control, ensure that all Power BI .pbip projects are opened from paths that contain at least one space and avoid '&' characters in the path, as the injection specifically requires a space-free path with '&'; this mitigation is fragile and can be bypassed if the underlying quoting issue remains. Additional controls: avoid opening .pbip projects from untrusted or attacker-writable locations, and run pbi-cli with minimal privileges to limit the impact of command execution. A more robust, albeit unofficial, workaround is to manually edit desktop_sync.py to wrap the path variable in double quotes before passing it to cmd /c start, but this requires code modification and has not been validated by the vendor. Until a patch is available, consider restricting use of the desktop synchronization feature or sandboxing pbi-cli execution.

Affected VersionsENISA

pbi-cli 3.10.1 ≤3.12.0

Affected Packages

euvd pbi_cli no fix

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

The vulnerability is an OS command injection (CWE-78) in pbi-cli, a Python-based command-line interface for Power BI. In desktop_sync.py lines 286-291 and 398-405, the application builds a Windows shell command using 'cmd /c start' with an unquoted .pbip project path when reopening or reloading a Power BI project. On Windows, cmd.exe treats '&' as a command separator, so if the project path contains an '&' and no spaces, the shell interprets the portion after '&' as an additional command, executing it with the privileges of the victim running pbi-cli. The attack is local (AV:L) because the attacker must place the malicious project at a specific filesystem path, and it requires passive user interaction (UI:P) for the victim to open or write to that project. The CVSS 4.0 vector (AV:L/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N) reflects that a specific attack requirement (AT:P) - a space-free path containing '&' - must be met, and user interaction is needed. The CPE cpe:2.3:a:minasaad1:pbi-cli:*:*:*:*:*:*:*:* identifies the affected product as pbi-cli by MinaSaad1.

Know when Pbi Cli 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

Vendor (VulnCheck) PRIMARY 7.3 HIGH
CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
vuln.today AI 7.8 HIGH

Exploitation is local via a victim-opened malicious project (AV:L, UI:R) needing no attacker privileges (PR:N); crafting the '&' path is straightforward (AC:L), and injected commands yield full C/I/A impact in the victim's context (S:U).

3.1 AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
4.0 AV:L/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Local
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
Passive
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

pbi-cli 3.10.1 through 3.12.0 contains an OS command injection vulnerability in desktop_sync.py that passes unquoted .pbip paths to cmd /c start when reopening projects. Attackers can lure victims into opening a Power BI project from a space-free path containing & to run commands with victim privileges during report write or reload.

Executive ViewAI

Why It Matters

pbi-cli 3.10.1 through 3.12.0 carries an unpatched high-severity command-execution risk that could allow a local adversary to operate with the rights of an affected Power BI user who opens a malicious project. Because exploitation requires user interaction and a specific filesystem path, the immediate concern is targeted workstation compromise and downstream access to data or credentials available to that user. Leadership should treat this as an urgent endpoint and developer-tooling exposure until a vendor fix is available, with no public exploit identified at time of analysis.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations include avoiding untrusted .pbip projects, ensuring pbi-cli project paths do not contain '&', running pbi-cli with least privilege, restricting or removing pbi-cli 3.10.1-3.12.0 where possible, isolating affected installations, monitoring for 'cmd /c start' abuse, and applying application control and EDR detections.

Threat Intelligence Overview

EPSS Score
0.5%
Top 56% exploitable
Prevalence
Rare
obscure individual-maintained open-source Power BI CLI, tiny footprint
Social Media
1
Sightings
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.5%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Small
Automatable· derived
No
Human Impact
High

Priority Score

37
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +36
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

OS command injection occurs when an application passes unsanitized user input directly into system shell commands.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy