CVE-2026-64678
9.8 CRITICALpublic exploit availablePublished 2026-11-11 · Updated 2026-11-11
AI risk analysis
- Summary
- Nitrite DB versions prior to 4.4.1 deserialize untrusted data from legacy database files using Java ObjectInputStream without class filtering, enabling arbitrary code execution via gadget chains when malicious serialized objects are present in the database file. This is a deserialization flaw (CWE-502) with CVSS 9.8 due to remote exploitability and full confidentiality/integrity/availability impact.
- Exploitability
- Exploitation requires an attacker to first inject a malicious serialized object into a Nitrite database file (e.g., via compromised data ingestion or social engineering of a local file), then trigger database opening by the vulnerable application; no network-based remote injection is possible without such prior compromise.
- Blast radius
- If exploited, attackers could achieve full remote code execution on the host running the vulnerable Nitrite-backed application, potentially compromising all data, systems, and services accessible to that application's process.
- Detection
- No reliable host or network indicator is derivable from the published description.
- Prioritized remediation
- Upgrade to Nitrite version 4.4.1 or later, which implements class filtering via NitriteObjectInputStream to prevent unsafe deserialization.
Analysis generated locally by garnet-coder (no data left the box). AI-assisted — verify against primary sources before acting.
NVD description
NOsql Object (NO2 a.k.a Nitrite) database is an open source nosql embedded document store. Prior to version 4.4.1, when Nitrite opens a database file, MVStoreUtils.openOrCreate() automatically checks for a legacy v1-format store and, on detecting one (or hitting a compatibility error while opening), triggers an automatic migration path. This path deserializes stored values using NitriteDataType.deserialize(byte[]), which passes the raw bytes directly to java.io.ObjectInputStream.readObject() via a custom NitriteObjectInputStream subclass. That subclass overrides only readClassDescriptor() — solely to remap a handful of known legacy class names to their current equivalents — and implements no class allowlist, blocklist, or ObjectInputFilter (JEP 290). Any Serializable class reachable on the embedding application's classpath can therefore be instantiated via readObject(), with readObject()/readExternal()/readResolve() callbacks invoked unconditionally. If a suitable gadget class (e.g. from commons-collections or similar) happens to be present on the classpath, this is a precondition for remote code execution. This issue has been patched in version 4.4.1.
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Weaknesses
CWE-502
Public exploit & PoC references
All references
Source data: NVD (nvd.nist.gov), public domain. Exploit-DB.ai adds local AI analysis for defensive use only.
Related CVEs
- HIGHCVE-2026-114403PoC
- HIGHCVE-2026-117612
- CRITICALCVE-2026-118636
- CRITICALCVE-2025-59953PoC
- HIGHCVE-2026-100308PoC
- HIGHCVE-2026-100511
- CRITICALCVE-2026-100730PoC
- HIGHCVE-2026-100843PoC
Related by shared AI tags and CWE weakness class. Browse the full archive.