{"affected":[{"product":"nitrite-java","source":"CNA: GitHub_M","vendor":"nitrite","versions":[{"status":"affected","version":"< 4.4.1"}]}],"cveId":"CVE-2026-64678","cwes":["CWE-502"],"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.","epss":{"date":"2026-11-12","percentile":0.52151,"score":0.00662},"exploits":[{"kind":"exploit","source":"ADP: CISA-ADP","url":"https://github.com/nitrite/nitrite-java/security/advisories/GHSA-9297-g93h-86gg"}],"kev":null,"metrics":[{"score":9.8,"severity":"critical","source":"CNA: GitHub_M","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","version":"3.1"},{"score":9.8,"severity":"critical","source":"NVD: security-advisories@github.com","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","version":"3.1"}],"modifiedAt":1794511837259,"publishedAt":1794370032719,"references":[{"source":"CNA: GitHub_M","tags":["x_refsource_CONFIRM"],"url":"https://github.com/nitrite/nitrite-java/security/advisories/GHSA-9297-g93h-86gg"},{"source":"CNA: GitHub_M","tags":["x_refsource_MISC"],"url":"https://github.com/nitrite/nitrite-java/releases/tag/v4.4.1"},{"source":"ADP: CISA-ADP","tags":["exploit"],"url":"https://github.com/nitrite/nitrite-java/security/advisories/GHSA-9297-g93h-86gg"},{"source":"security-advisories@github.com","tags":[],"url":"https://github.com/nitrite/nitrite-java/releases/tag/v4.4.1"},{"source":"security-advisories@github.com","tags":[],"url":"https://github.com/nitrite/nitrite-java/security/advisories/GHSA-9297-g93h-86gg"}],"remediation":[],"revision":"7f66017cb9adae4d101e369b0f863dc60a0df1cbfbf63d567a798f8cf3b31b34","sources":[{"modifiedAt":1794511837259,"name":"CNA: GitHub_M","retrievedAt":1794514304736,"url":"https://www.cve.org/CVERecord?id=CVE-2026-64678"},{"modifiedAt":1794374391937,"name":"NVD","retrievedAt":1794377966842,"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-64678"},{"modifiedAt":null,"name":"FIRST EPSS","retrievedAt":1794514318978,"url":"https://api.first.org/data/v1/epss?cve=CVE-2026-64678"}],"ssvc":{"assessedAt":1794511809186,"automatable":"yes","exploitation":"poc","source":"ADP: CISA-ADP","technicalImpact":"total"},"status":"published","title":"Nitrite: Unfiltered Java Deserialization in Legacy v1 Database Migration Path","updatedAt":1794514318978}