Skip to main content

nnn EUVDEUVD-2026-115893

| CVE-2026-121548 HIGH
OS Command Injection (CWE-78)
2026-11-03 VulnCheck
8.4
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Plant file with shell-syntax filename
  2. Delivery
    Victim opens directory in nnn
  3. Exploit
    Victim runs togglex plugin on selection
  4. Execution
    Crafted name breaks out of sh -c script
  5. Impact
    Execute arbitrary commands as invoking user

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

Requires (1) an attacker able to place or deliver a file whose name contains a double quote plus shell metacharacters into a directory the victim will open in nnn (e.g. a shared directory, a downloaded or extracted archive, or any directory populated with attacker-influenced filenames), and (2) the victim actively invoking the togglex plugin on a selection that includes that file. Execution runs with the privileges of the user invoking togglex. Limiting factors: the vector is local (AV:L) and strictly requires victim interaction (UI:A) - it does not fire merely from listing the directory, only from running togglex; it affects nnn versions through 5.3 where the unpatched togglex plugin is used. There is no remote or unauthenticated path.

Impact

The input CVSS 4.0 score of 8.4 (High) reflects the full compromise of confidentiality, integrity, and availability (VC:H/VI:H/VA:H) that arbitrary command execution grants, but the vector itself tempers the urgency: AV:L means this is a local, file-based vector rather than remote, and UI:A (active user interaction) means the victim must themselves invoke the togglex plugin on a selection that includes the malicious file - the attacker only plants a filename. PR:N is justified in the sense that placing a file requires no privileges on the target, but execution is gated entirely on victim action. No EPSS score and no KEV listing are present in the supplied data, and there is no SSVC exploitation/automatable breakdown; the only decision signal is vuln.today's 'this_week' priority label, which argues for prompt but not emergency patching. On balance this is a legitimately high-impact but conditional issue - dangerous in multi-user hosts, shared directories, or when browsing extracted/downloaded archives, and lower-risk for a single-user operator browsing only their own trusted files. It is not a mass-exploitable remote vulnerability, so real-world priority should track exposure to untrusted filenames rather than the raw 8.4.

Exploit ScenarioDerived

An attacker plants a file whose name contains a double quote and shell syntax into a directory the victim will browse (e.g. a shared folder, an extracted archive, or a web/download directory). When the victim opens that directory in nnn and runs the togglex plugin to flip the executable bit on a selection containing the file, xargs -I splices the crafted name into the sh -c script and the embedded commands run with the victim's privileges. A public VulnCheck advisory and a GitHub issue reference exist; neither is verified as working exploit code in the supplied data.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available

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

Alert me

AnalysisAIv1 – Nov 03, 2026

Arbitrary command execution in nnn through 5.3 (CVSS 8.4 High) occurs when the togglex plugin processes selected filenames containing a double quote and shell syntax, allowing an unauthenticated local attacker who can plant such a filename to run commands as the user invoking togglex. The victim must actively run togglex on a selection that includes the malicious file; simply opening the directory is not enough, and there is no remote or unauthenticated network path. No public exploit was identified at time of analysis, and an upstream fix commit is referenced (released patched version not independently confirmed).

RemediationAI

Upstream fix available (PR/commit); released patched version not independently confirmed. Apply commit 04715921aece0257fef7a8558c0783493d98efff or the vendor's updated nnn package/advisory, and verify plugins/togglex now invokes xargs ... sh {} and handles each filename as $1 rather than splicing {} into sh -c. Until patched, do not run togglex on selections that include untrusted filenames; disable or remove the togglex plugin, or restrict its use to trusted directories, accepting that executable-bit toggling via the plugin is lost. Review the same commit's related changes for nuke, pdfread, and FIFO handling if those plugins/features are used. Advisory: https://www.vulncheck.com/advisories/nnn-through-5.3-os-command-injection-via-togglex-plugin; issue: https://github.com/jarun/nnn/issues/2188.

Affected VersionsENISA

nnn 0 ≤5.3

Affected Packages

euvd nnn 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

nnn is a terminal file manager; its plugins/togglex shell script toggles executable bits for selected files. In affected versions, the script pipes a NUL-separated selection into xargs -0 -I {} sh -c and substitutes {} directly inside a double-quoted shell command, so a filename containing a double quote and shell metacharacters can break out of the intended quoting and be interpreted by sh. This is CWE-78 OS command injection; the local CPE cpe:2.3:a:jarun:nnn:*:*:*:*:*:*:*:* covers jarun nnn, and the issue is specific to the v5.3-line togglex plugin. The upstream commit 04715921aece0257fef7a8558c0783493d98efff changes the invocation to pass the filename as positional parameter $1 (xargs ... sh {}), and also includes temp-file hardening in nuke/pdfread and FIFO validation in src/nnn.c.

Know when Nnn 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 8.4 HIGH
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
vuln.today AI 7.8 HIGH

Plugin acts on local files so AV:L; no privileges needed to drop a file (PR:N) but the victim must run togglex (UI:R); arbitrary command execution as the invoking user gives C/I/A:H with no scope change.

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:N/PR:N/UI:A/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
None
Privileges Required
None
User Interaction
Active
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

Jarun nnn through 5.3 contains an OS command injection vulnerability in plugins/togglex that allows attackers to execute commands via crafted filenames. Attackers can place files whose names contain a double quote and shell syntax, which xargs -I splices into an sh -c script, running commands as the user invoking togglex.

Executive ViewAI

Why It Matters

CVE-2026-121548 is a high-severity flaw in the nnn file manager's togglex plugin that allows arbitrary command execution when a user runs the plugin on a directory containing a file with a specially crafted name. This primarily affects individual workstations where users may encounter untrusted filenames, such as downloaded archives or shared directories, and requires the user to actively invoke the plugin on the malicious file. Leadership should prioritize patching to prevent potential local privilege escalation and data compromise on user endpoints.

Business Impact: Medium
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

Prevalence
Low
popular terminal file manager but niche power-user tool, no enterprise footprint
Data Quality
4 sources
Confidence: Medium
EUVD NVD CVE.org Vulnrichment GitHub

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 N/A
Patch available Yes
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
Defer
Exploitation
Poc
System Exposure· derived
Small
Automatable
No
Human Impact
Medium
Technical Impact
Total

Priority Score

42
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +42
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