Skip to main content

nnn file manager CVE-2026-121549

| EUVDEUVD-2026-115894 MEDIUM
Insecure Temporary File (CWE-377)
2026-11-03 VulnCheck
4.1
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Obtain local unprivileged account
  2. Delivery
    Pre-create symlink at predictable /tmp path
  3. Exploit
    Victim runs pdfread or nuke plugin
  4. Execution
    Plugin follows symlink and truncates target
  5. Impact
    Overwrite file writable by victim

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Secure temp file creation
Exploitation Conditions

Requires a local unprivileged account on the same host and the ability to write into /tmp (or $TMPDIR). The attacker must pre-create a symlink at the predictable target path before the victim acts: for pdfread this is the name-derived path '${TMPDIR:-/tmp}/<basename-without-extension>', and for nuke's listimages it is the PID-derived '${TMPDIR:-/tmp}/nuke_$$'. The victim must then actively invoke the pdfread or nuke plugin within nnn (UI:A) - for the name-derived case, typically on an attacker-influenced filename; for the PID-derived case, the attacker must also predict/guess the victim's process PID (reflected as AT:P). Limiting factors: no remote vector (local only), authenticated local access needed (PR:L), mandatory victim interaction, and impact bounded to files the victim can already write - so shared/multi-user systems are the realistic exposure, and single-user desktops are largely unaffected.

Impact

This is a genuinely low-to-moderate real-world risk, not a critical priority despite the CWE-377 class. The supplied CVSS 4.0 vector (AV:L/AC:L/AT:P/PR:L/UI:A, score 4.1) describes a local, privilege-requiring attack that also needs victim interaction (UI:A) and a non-guaranteed attack requirement (AT:P) - all of which sharply constrain exploitability. There is no KEV listing and no EPSS score in the input, so there is no evidence of active or widespread exploitation; exploitation status is 'no public exploit identified at time of analysis.' The vuln.today Decision label is 'this_month' (moderate urgency, not act_now/emergency), which is consistent with the low CVSS and the absence of exploitation signals. The only impact is integrity (VI:H): overwriting/truncating files the victim can already write, with no confidentiality (VC:N) or availability-of-system (VA:N) impact. One signal conflict to note: the input Tag 'Information Disclosure' contradicts the CVSS vector, which shows VC:N (no confidentiality impact) and VI:H - this is a file-overwrite/integrity flaw, not disclosure. Net: low priority for most defenders; patch within the normal cycle unless nnn is run by privileged users on shared multi-user hosts, where the integrity impact is more meaningful.

Exploit ScenarioDerived

On a shared multi-user host, a local unprivileged attacker pre-creates a symbolic link at the predictable /tmp path that nnn's pdfread or nuke plugin will use (derived from the input file's basename for pdfread, or the PID-based /tmp/nuke_$$ for nuke). When the victim later opens a PDF or previews images through those plugins, the plugin follows the symlink and truncates/overwrites the link target with the victim's privileges, corrupting any file the victim can write. No confirmed working exploit code is identified, though the vulnerable code paths are documented in the VulnCheck advisory and the linked source lines.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available

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

Alert me

AnalysisAIv1 – Nov 03, 2026

The pdfread and nuke plugins shipped with nnn through version 5.3 write to predictable, name- and PID-derived paths under ${TMPDIR:-/tmp}, letting another local user on the same host pre-create a symlink there so the victim's plugin run truncates and overwrites any file the victim can write. Exploitation requires an authenticated local account, write access to the temp directory, and the victim actively invoking the plugin (for the nuke listimages path the attacker must also predict the victim's PID), which confines realistic exposure to shared multi-user systems rather than single-user desktops. There is no remote vector and no public exploit code identified at time of analysis; an upstream commit fixing the plugin temp-file handling is available.

RemediationAI

Vendor patch status: upstream fix available (commit 04715921aece0257fef7a8558c0783493d98efff, https://github.com/jarun/nnn/commit/04715921aece0257fef7a8558c0783493d98efff); a released tagged version containing it is not independently confirmed, so track the jarun/nnn releases page or backport the commit into your packaged copy - the change is confined to plugins/pdfread, plugins/nuke, plugins/togglex and src/nnn.c. Until that lands, the practical workaround for the plugin temp path is to point TMPDIR at a directory only the user can write (a private per-user temp dir) for nnn sessions, which removes the pre-creation window but changes where all nnn temp output goes; note that this does not address the separately hardened FIFO handling in src/nnn.c, so the commit remains the complete fix. On shared multi-user hosts, restricting plugin use (or the whole nnn deployment) to trusted users is the remaining compensating control and does not fix the underlying predictable-path behaviour.

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

The flaw is CWE-377 (Insecure Temporary File): both shell plugins build a temp path from attacker-influenceable or guessable components instead of allocating a unique file safely. In plugins/pdfread the target was '${TMPDIR:-/tmp}/<basename of input with extension stripped>', so the path is derived from the filename the user previews; in plugins/nuke's listimages it was '${TMPDIR:-/tmp}/nuke_$$', derived from the victim shell's PID. Because those names are predictable, a local attacker who can write to the same temp directory can plant a symlink at the expected path before the victim triggers the plugin, and the plugin's redirection then truncates the link target with the victim's privileges - limited to files the victim can already write (integrity-only impact, no confidentiality or availability impact in the assessed vector). The upstream fix replaces both hand-built paths with 'mktemp -d "${TMPDIR:-/tmp}/pdfread.XXXXXX"' / 'nuke.XXXXXX' directories plus a 'trap rm -rf' cleanup, and the same commit hardens the FIFO notification path in src/nnn.c by adding open_fifo() with O_NOFOLLOW, fstat/S_ISFIFO validation, and lstat/S_ISFIFO checks around mkfifo, and fixes quoting in plugins/togglex.

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 4.1 MEDIUM
CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:A/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N
vuln.today AI 4.4 MEDIUM

Local account needed to plant the symlink (PR:L), victim must run the plugin (UI:R), success depends on a predictable-path/PID condition (AC:H), and impact is integrity-only file overwrite (I:H, C/A:N).

3.1 AV:L/AC:H/PR:L/UI:R/S:U/C:N/I:H/A:N
4.0 AV:L/AC:L/AT:P/PR:L/UI:A/VC:N/VI:H/VA:N/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
Low
User Interaction
Active
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
High
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

nnn through 5.3 contains an insecure temporary file vulnerability in the pdfread and nuke plugins that allows local attackers to overwrite files by exploiting predictable paths in /tmp. Attackers can pre-create a symlink at the name-derived or PID-derived path so the victim's plugin truncates and overwrites any file the victim can write.

Threat Intelligence Overview

Prevalence
Low
niche open-source terminal file manager for Linux/Unix power users
Data Quality
4 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 MEDIUM
CISA KEV No
Public POC No
EPSS N/A
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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
Defer
Exploitation· derived
None
System Exposure· derived
Small
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

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

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