Deserialization in Litedb
CVE-2022-23535
LiteDB is a small, fast and lightweight .NET NoSQL embedded database. Versions prior to 5.0.13 are subject to Deserialization of Untrusted Data. LiteDB uses a special field in JSON documents to cast different types from `BsonDocument` to POCO classes. When instances of an object are not the same of class, `BsonMapper` use a special field `_type` string info with full class name with assembly to be loaded and fit into your model. If your end-user can send to your app a plain JSON string, deserialization can load an unsafe object to fit into your model. This issue is patched in version 5.0.13 with some basic fixes to avoid this, but is not 100% guaranteed when using `Object` type. The next major version will contain an allow-list to select what kind of Assembly can be loaded. Workarounds are detailed in the vendor advisory.
Vulnerability class: Insecure Deserialization
EPSS: 0.007 (49.4th percentile) — read the EPSS interpretation.
CVSS v3 metric
CVSS v3 base score 7.3 (High). Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L.
Affected products
- Litedb
- Mbdavid Litedb — versions < 5.0.13
Weakness classification (CWE)
References
- security-advisories@github.com (x_refsource_CONFIRM, Patch, Mitigation, Vendor Advisory)
- security-advisories@github.com (Patch, x_refsource_MISC)
Frequently asked questions
- What is CVE-2022-23535?
- CVE-2022-23535 is a high-severity vulnerability in Litedb, classified under Deserialization of Untrusted Data. CVSS score: 7.3/10. Published 2023-02-24.
- How severe is CVE-2022-23535?
- High severity. CVSS v3 base score is 7.3 out of 10.