Search
Find a vulnerability
Search criteria
ⓘ
Use this form to refine search results.
Full-text search supports keyword queries with ranking and filtering.
You can combine vendor, product, and sources to narrow results.
Enable “Apply ordering” to sort by date instead of relevance.
2 vulnerabilities by nitrite
CVE-2026-64678 (GCVE-0-2026-64678)
Vulnerability from nvd – Published: 2026-11-11 04:07 – Updated: 2026-11-11 04:07
VLAI
EPSS
VEX
Title
Nitrite: Unfiltered Java Deserialization in Legacy v1 Database Migration Path
Summary
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.
Severity
9.8 (Critical)
CWE
- CWE-502 - Deserialization of Untrusted Data
Assigner
References
2 references
| URL | Tags |
|---|---|
| https://github.com/nitrite/nitrite-java/security/… | x_refsource_CONFIRM |
| https://github.com/nitrite/nitrite-java/releases/… | x_refsource_MISC |
Impacted products
1 product
| Vendor | Product | Version | |
|---|---|---|---|
| nitrite | nitrite-java |
Affected:
< 4.4.1
|
{
"containers": {
"cna": {
"affected": [
{
"product": "nitrite-java",
"vendor": "nitrite",
"versions": [
{
"status": "affected",
"version": "\u003c 4.4.1"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "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() \u2014 solely to remap a handful of known legacy class names to their current equivalents \u2014 and implements no class allowlist, blocklist, or ObjectInputFilter (JEP 290). Any Serializable class reachable on the embedding application\u0027s 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."
}
],
"metrics": [
{
"cvssV3_1": {
"attackComplexity": "LOW",
"attackVector": "NETWORK",
"availabilityImpact": "HIGH",
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"confidentialityImpact": "HIGH",
"integrityImpact": "HIGH",
"privilegesRequired": "NONE",
"scope": "UNCHANGED",
"userInteraction": "NONE",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-502",
"description": "CWE-502: Deserialization of Untrusted Data",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-11-11T04:07:12.719Z",
"orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"shortName": "GitHub_M"
},
"references": [
{
"name": "https://github.com/nitrite/nitrite-java/security/advisories/GHSA-9297-g93h-86gg",
"tags": [
"x_refsource_CONFIRM"
],
"url": "https://github.com/nitrite/nitrite-java/security/advisories/GHSA-9297-g93h-86gg"
},
{
"name": "https://github.com/nitrite/nitrite-java/releases/tag/v4.4.1",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/nitrite/nitrite-java/releases/tag/v4.4.1"
}
],
"source": {
"advisory": "GHSA-9297-g93h-86gg",
"discovery": "UNKNOWN"
},
"title": "Nitrite: Unfiltered Java Deserialization in Legacy v1 Database Migration Path"
}
},
"cveMetadata": {
"assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"assignerShortName": "GitHub_M",
"cveId": "CVE-2026-64678",
"datePublished": "2026-11-11T04:07:12.719Z",
"dateReserved": "2026-07-20T17:12:12.892Z",
"dateUpdated": "2026-11-11T04:07:12.719Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64678 (GCVE-0-2026-64678)
Vulnerability from cvelistv5 – Published: 2026-11-11 04:07 – Updated: 2026-11-11 04:07
VLAI
EPSS
VEX
Title
Nitrite: Unfiltered Java Deserialization in Legacy v1 Database Migration Path
Summary
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.
Severity
9.8 (Critical)
CWE
- CWE-502 - Deserialization of Untrusted Data
Assigner
References
2 references
| URL | Tags |
|---|---|
| https://github.com/nitrite/nitrite-java/security/… | x_refsource_CONFIRM |
| https://github.com/nitrite/nitrite-java/releases/… | x_refsource_MISC |
Impacted products
1 product
| Vendor | Product | Version | |
|---|---|---|---|
| nitrite | nitrite-java |
Affected:
< 4.4.1
|
{
"containers": {
"cna": {
"affected": [
{
"product": "nitrite-java",
"vendor": "nitrite",
"versions": [
{
"status": "affected",
"version": "\u003c 4.4.1"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "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() \u2014 solely to remap a handful of known legacy class names to their current equivalents \u2014 and implements no class allowlist, blocklist, or ObjectInputFilter (JEP 290). Any Serializable class reachable on the embedding application\u0027s 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."
}
],
"metrics": [
{
"cvssV3_1": {
"attackComplexity": "LOW",
"attackVector": "NETWORK",
"availabilityImpact": "HIGH",
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"confidentialityImpact": "HIGH",
"integrityImpact": "HIGH",
"privilegesRequired": "NONE",
"scope": "UNCHANGED",
"userInteraction": "NONE",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-502",
"description": "CWE-502: Deserialization of Untrusted Data",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-11-11T04:07:12.719Z",
"orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"shortName": "GitHub_M"
},
"references": [
{
"name": "https://github.com/nitrite/nitrite-java/security/advisories/GHSA-9297-g93h-86gg",
"tags": [
"x_refsource_CONFIRM"
],
"url": "https://github.com/nitrite/nitrite-java/security/advisories/GHSA-9297-g93h-86gg"
},
{
"name": "https://github.com/nitrite/nitrite-java/releases/tag/v4.4.1",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/nitrite/nitrite-java/releases/tag/v4.4.1"
}
],
"source": {
"advisory": "GHSA-9297-g93h-86gg",
"discovery": "UNKNOWN"
},
"title": "Nitrite: Unfiltered Java Deserialization in Legacy v1 Database Migration Path"
}
},
"cveMetadata": {
"assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"assignerShortName": "GitHub_M",
"cveId": "CVE-2026-64678",
"datePublished": "2026-11-11T04:07:12.719Z",
"dateReserved": "2026-07-20T17:12:12.892Z",
"dateUpdated": "2026-11-11T04:07:12.719Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}