Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft malicious UFS filesystem image
-
DeliveryDeliver .img/ufs file to victim
-
ExploitVictim opens archive in NanaZip
-
ExecutionTrigger out-of-bounds null write in UFS parser
-
PersistCorrupt adjacent heap allocation
-
ImpactApplication crash (denial of service)
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, write limits
MITRE ATT&CK
2 techniques across 2 tactics: Execution, Privilege Escalation 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 open or list a crafted UFS/UFS2 filesystem image in NanaZip; the UFS handler is registered for the ufs, ufs2, and img file extensions, and the MSIX manifest's wildcard file association enables format autodetection, so the crafted bytes alone can route to the vulnerable parser. The write occurs during IInArchive::Open(), before any further user interaction. The trigger condition is specific: the inode's file size must be a multiple of the block size so the directory buffer (ActualSize = BlockOffsetsCount * BlockSize) has no trailing slack, and a directory entry with minimal d_reclen (9) and maximal d_namlen (255) is positioned near the buffer end to drive the null write up to 254 bytes past the allocation. Limiting factors: user interaction is required (the victim must open the file - CVSS UI:R and SSVC Automatable=no), only versions from 5.0.1250.0 to before 6.0.1698.0 are affected, and enabled Win32 mitigations (CFG, CET shadow stack, no-remote-images, child-process and dynamic-code restrictions) make escalation beyond DoS substantially harder, though they do not prevent the heap corruption itself. |
| Impact | This is a genuinely moderate issue, not an inflated high-CVSS score, and the signals are internally consistent. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:H, 7.1) correctly reflects a flaw reachable via a crafted file that the victim must open (UI:R), with no confidentiality impact, limited integrity impact (a single attacker-positioned null byte), and high availability impact (reliable crash). The real-world exploitation signals all point to low urgency: EPSS is 0.01% (2nd percentile), there is no CISA KEV listing, and SSVC records Exploitation=poc, Automatable=no, Technical Impact=partial. The vuln.today priority is 'this_week', consistent with a patchable, user-interaction-gated memory-corruption bug rather than an emergency. The primary confirmed impact is denial of service (heap-metadata corruption causing a crash); the advisory explicitly describes a potential heap-corruption primitive but states that demonstrating code execution is beyond the report's scope, and notes that NanaZip's enabled mitigations (CFG, CET shadow stack, no-remote-images, child-process and dynamic-code restrictions) raise the bar for RCE. SSVC Automatable=no aligns with the UI:R requirement - exploitation is not wormable or drive-by at scale, favoring targeted use. No signals conflict here; the combination of low EPSS, no KEV, poc-only exploitation, and a user-open requirement indicates a real but non-urgent, update-this-cycle priority. |
| Exploit ScenarioDerived | An attacker crafts a malicious UFS1/UFS2 filesystem image (e.g. a .img file) and delivers it to a victim via email, download, or a shared drive, relying on NanaZip's wildcard file association and format autodetection. When the victim opens or lists the archive, the UFS directory parser writes a single null byte up to 254 bytes past a heap allocation, corrupting adjacent heap metadata and crashing the process. The advisory includes a documented PoC generator (a 128 KiB UFS1 image) with exact triggering steps and AddressSanitizer confirmation; this is a public PoC reference and is not verified as a working exploit beyond reliable DoS. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv2 – Oct 26, 2026
A one-byte heap out-of-bounds null write (CWE-787) in NanaZip's UFS/UFS2 filesystem image parser allows a crafted .ufs, .ufs2, or .img file to zero a byte up to 254 bytes past the end of a heap allocation as soon as the archive is opened or listed, corrupting heap metadata and crashing the process. NanaZip versions from 5.0.1250.0 (the first release shipping the UFS handler) up to but not including 6.0.1698.0 are affected; the CVSS 3.1 score is 7.1 with impact C:N/I:L/A:H and UI:R, and the report explicitly frames the practical outcome as denial of service, with further escalation made substantially harder by CFG, CET shadow stack, no-remote-images and child-process/dynamic-code restrictions. A public PoC exists in the form of a crafted 128 KiB UFS1 image generator described in the GitHub advisory, but the issue is not in CISA KEV and EPSS is very low (0.01%, 2nd percentile), so there is no confirmed active exploitation.
Earlier versions of this analysis (1)
Heap out-of-bounds null write in NanaZip's UFS/UFS2 filesystem image parser (versions 5.0.1252.0 through 6.0.1698.0) enables a limited heap corruption primitive when a user opens a crafted disk image. The attacker controls the byte offset of the single null-byte write within a ~254-byte window past the heap allocation boundary, yielding partial integrity and availability impact with no confidentiality exposure. No public exploit has been confirmed at time of analysis, EPSS places exploitation probability at the 2nd percentile, and the vulnerability is not listed in CISA KEV.
RemediationAI
Vendor-released patch: upgrade to NanaZip 6.0.1698.0 (stable) or 6.5.1742.0 (preview), per the GHSA advisory at https://github.com/M2Team/NanaZip/security/advisories/GHSA-44wh-7gc3-w936. The fix adds a record-internal bound check before the null-terminator write, matching FreeBSD's ufs_lookup validation: reject the entry when offsetof(direct, d_name) + NameLength + 1 > RecordLength, ensuring the name plus terminator fits inside d_reclen bytes of the record. The advisory does not publish a configuration-level workaround, so updating is the complete fix; the only mitigations in place are the binary's existing Win32 hardening (CFG, CET shadow stack, no-remote-images, child-process restriction and dynamic-code restriction), which raise the bar for turning the single-byte corruption into code execution but do not prevent the out-of-bounds write or the resulting denial of service. Given SSVC Exploitation: poc and the vuln.today decision label of this_week, prioritise the upgrade on endpoints where untrusted archive or disk-image files are routinely opened with NanaZip.
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
The flaw lives in GetAllPaths() in NanaZip.Codecs.Archive.Ufs.cpp, which walks variable-length UFS struct direct entries inside a directory block. Each entry carries d_ino (uint32_t), d_reclen (uint16_t, offset +4), d_type (+6), d_namlen (uint8_t, +7) and d_name (+8, 256 bytes), so offsetof(direct, d_name) is 8. The directory data is copied into a std::vector<std::uint8_t> Buffer(ActualSize) where ActualSize = BlockOffsetsCount * BlockSize, but the parsing loop is bounded by EndOffset = Information.FileSize; when FileSize is a multiple of the block size (e.g. di_size = 4096 with fs_bsize = 4096) the buffer has zero trailing slack and the loop can walk right up to the allocation boundary. Three existing guards are insufficient: one only checks that 9 bytes remain for the entry header, one bounds d_reclen against EndOffset, and one only rejects d_namlen above UFS_MAXNAMLEN (255). The line Current->d_name[NameLength] = '\0' then executes without verifying either the canonical UFS invariant offsetof(d_name) + NameLength + 1 <= d_reclen or CurrentOffset + offsetof(d_name) + NameLength < Buffer.size(). Positioning an entry at EndOffset - 9 with d_reclen = 9 and d_namlen = 255 drives the null write to Buffer[EndOffset + 254], giving the attacker control of the byte offset within a 0..254 byte window past the allocation. The parser is reached during IInArchive::Open(), i.e. purely from opening or listing the file, and the handler is registered for the ufs, ufs2 and img extensions while the MSIX manifest declares a wildcard file association enabling format autodetection. AddressSanitizer confirms a heap-buffer-overflow WRITE of size 1 at line 636, reached via Ufs::Open, CArc::OpenStream2 and CArchiveLink::Open.
Know when Nanazip 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
AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:H
Crafted file is delivered remotely but the victim must open it (AV:N, UI:R); no auth needed (PR:N); a single controlled null byte yields limited integrity (I:L) and a reliable crash (A:H), with no data disclosure (C:N).
Primary rating from NVD.
CVSS VectorNVD
Lifecycle Timeline
5DescriptionNVD
NanaZip is an open source file archive. From 5.0.1252.0 to before 6.0.1698.0, a one-byte heap out-of-bounds null write exists in the UFS/UFS2 filesystem image parser in NanaZip. The vulnerability is triggered when opening a crafted UFS filesystem image. The attacker controls the byte offset of the write within a ~254-byte window past the heap allocation boundary. This vulnerability is fixed in 6.0.1698.0.
Executive ViewAI
NanaZip versions 5.0.1250.0 through 6.0.1697.x contain a heap corruption vulnerability in the UFS filesystem parser. An attacker can crash the application by tricking a user into opening a malicious .ufs, .ufs2, or .img file, causing a denial of service. While exploitation for code execution is difficult due to built-in mitigations, the disruption to users and potential for further attacks warrant management attention.
Apply vendor patch.
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
A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.
Memory corruption occurs when a program writes data beyond the boundaries of allocated memory regions or accesses memory in unintended ways, violating the integrity of the process's address space.
Nanazip versions up to 6.0.1630.0 is affected by loop with unreachable exit condition (infinite loop) (CVSS 7.5).
NanaZip versions 5.0.1252.0 through 6.0.1629.0 contain an out-of-bounds heap read in the .NET Single File bundle parser
NanaZip versions 5.0.1252.0 through 6.5.1637.0 contain an out-of-bounds memory access flaw in the UFS file parser that c
Out-of-bounds memory read in NanaZip versions 5.0.1252.0 through 6.0.1637.x allows local authenticated attackers to disc
NanaZip versions 5.0.1252.0 through 6.0.1629.0 are vulnerable to denial of service through malformed ROMFS archives that
NanaZip versions 5.0.1252.0 through 6.5.1637.x contain an integer underflow in the .NET Single File Application parser t
Heap out-of-bounds read in NanaZip's SquashFS LZ4 decompression handler exposes adjacent heap memory contents when a use
Opening a crafted ZealFS v1 filesystem image in NanaZip builds from 5.0.1252.0 up to (but not including) 6.0.1698.0 trig
Process crash via uncaught C++ exception in NanaZip's .NET single-file bundle handler affects all versions prior to 6.5.
Stack exhaustion in NanaZip's UFS/UFS2 filesystem image parser crashes the application when a user opens a specially cra
Memory exhaustion in NanaZip's littlefs filesystem image parser (versions 5.0.1252.0 through before 6.0.1698.0) allows a
Integer divide-by-zero in NanaZip's UFS/UFS2 filesystem image parser crashes the application when a user opens a special
EUVD-2026-29793
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB