CVE-2023-28448
Rust vulnerability analysis and mitigation

Overview

Versionize, a framework for version tolerant serialization/deserialization of Rust data structures, was found to contain a vulnerability identified as CVE-2023-28448. The vulnerability was discovered in the 'Versionize::deserialize' implementation provided by the 'versionize' crate for 'vmm_sys_utils::fam::FamStructWrapper', which could lead to out-of-bounds memory accesses. The issue affected versions from 0.1.1 and was patched in version 0.1.10 (GitHub Advisory).

Technical details

The vulnerability stems from the way FamStructWrapper handles C-style flexible array members. The data format stores the size of the allocation twice: once in the header (len1) and again as metadata of the memory allocation (len2). During deserialization, the library separately deserializes the header and memory allocation, allocating len2 bytes of memory and prefixing it with the separately deserialized header. Since len2 is an implementation detail, it's forgotten after deserialization, and subsequent operations assume the memory allocated has size len1. If len1 != len2 in malformed input, this can lead to out-of-bounds memory access. The vulnerability has a CVSS v3.1 base score of 7.5 (HIGH) according to NVD assessment (NVD).

Impact

When exploited, this vulnerability could lead to out-of-bounds memory accesses, particularly if len1 > len2 in the deserialized data. This could potentially result in unauthorized access to memory contents beyond the intended boundaries of the allocated memory (GitHub PR).

Exploitability

The vulnerability can be triggered through malformed input where the length specified in the header (len1) differs from the actual size of the flexible array member (len2). The exploitation requires the ability to provide serialized input to applications using the affected versions of the versionize crate (GitHub Advisory).

Mitigation and workarounds

The issue was fixed in version 0.1.10 of the versionize crate by implementing a check that verifies the lengths of compared flexible arrays are equal for any deserialized header. The fix aborts deserialization if a mismatch is detected. Users are advised to upgrade to version 0.1.10 or later (GitHub Commit).

Additional resources


SourceThis report was generated using AI

Related Rust vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-53530HIGH8.7
  • Rust logoRust
  • ratex-parser
NoYesAug 21, 2026
CVE-2026-53531MEDIUM6.9
  • Rust logoRust
  • ratex-parser
NoYesAug 21, 2026
GHSA-mc9m-6fm9-pghcMEDIUM6.9
  • Python logoPython
  • zoo-kcl
NoYesAug 20, 2026
GHSA-jgvr-6x5w-hx5wMEDIUM6.9
  • Python logoPython
  • kcl-lib
NoYesAug 20, 2026
CVE-2026-54136MEDIUM5.1
  • Rust logoRust
  • windmill-api
NoYesAug 20, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management