CVE Catalog

CVE-2026-64678

CriticalCVSS 9.8
Published: Translated: NVD NIST

Summary

In the Nitrite (NO2) database prior to version 4.4.1, MVStoreUtils.openOrCreate() automatically detects a legacy v1 format and triggers a migration path that deserializes stored values via java.io.ObjectInputStream.readObject() without any class allowlist or ObjectInputFilter. Any Serializable class reachable on the embedding application's classpath can be instantiated, which is a precondition for remote code execution if a suitable gadget class (e.g. from commons-collections) is present.

Risk Assessment

Opening a crafted database file may lead to remote code execution in the context of the application embedding Nitrite. The risk is high if known gadget classes are present on the classpath.

Recommendation

Update Nitrite to version 4.4.1 or later. Avoid opening untrusted database files and restrict classes available on the classpath.

Related vulnerabilities

Original NVD description (English source)

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.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS