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.
Related vulnerabilities
RUSTSEC-2026-0333 (GHSA-4XCC-23FX-W2WJ)
Vulnerability from osv_rustsec – Published: 2026-10-06 12:00 – Updated: 2026-10-08 14:47 – Source websiteParserConfig::max_events, max_nodes, max_total_scalar_bytes,
max_merge_keys, alias_anchor_ratio and the alias jump factor were
enforced only by the two Value loaders. A typed target with a
default-shaped configuration is served by the streaming deserializer,
which never read those fields, so tightening any of them had no effect
on from_str::<T> for a struct target. The default document-length,
depth and alias-count caps were enforced on every path, so no input was
unbounded; the gap affects callers who tightened the other budgets for
hostile input.
Version 0.0.53 charges every budget on the streaming path as well and adds cross-path parity tests.
Users who cannot upgrade can deserialize into noyalib::Value first and
convert with from_value, or rely on max_document_length and
max_depth, which were always applied on every path.
{
"affected": [
{
"database_specific": {
"categories": [
"denial-of-service"
],
"cvss": null,
"informational": null
},
"ecosystem_specific": {
"affected_functions": null,
"affects": {
"arch": [],
"functions": [
"noyalib::from_reader",
"noyalib::from_reader_with_config",
"noyalib::from_slice",
"noyalib::from_slice_with_config",
"noyalib::from_str",
"noyalib::from_str_with_config"
],
"os": []
}
},
"package": {
"ecosystem": "crates.io",
"name": "noyalib",
"purl": "pkg:cargo/noyalib"
},
"ranges": [
{
"events": [
{
"introduced": "0.0.0-0"
},
{
"fixed": "0.0.53"
}
],
"type": "SEMVER"
}
],
"versions": []
}
],
"aliases": [
"GHSA-4xcc-23fx-w2wj"
],
"database_specific": {
"license": "CC-BY-4.0"
},
"details": "`ParserConfig::max_events`, `max_nodes`, `max_total_scalar_bytes`,\n`max_merge_keys`, `alias_anchor_ratio` and the alias jump factor were\nenforced only by the two `Value` loaders. A typed target with a\ndefault-shaped configuration is served by the streaming deserializer,\nwhich never read those fields, so tightening any of them had no effect\non `from_str::\u003cT\u003e` for a struct target. The default document-length,\ndepth and alias-count caps were enforced on every path, so no input was\nunbounded; the gap affects callers who tightened the other budgets for\nhostile input.\n\nVersion 0.0.53 charges every budget on the streaming path as well and\nadds cross-path parity tests.\n\nUsers who cannot upgrade can deserialize into `noyalib::Value` first and\nconvert with `from_value`, or rely on `max_document_length` and\n`max_depth`, which were always applied on every path.",
"id": "RUSTSEC-2026-0333",
"modified": "2026-10-08T14:47:14Z",
"published": "2026-10-06T12:00:00Z",
"references": [
{
"type": "PACKAGE",
"url": "https://crates.io/crates/noyalib"
},
{
"type": "ADVISORY",
"url": "https://rustsec.org/advisories/RUSTSEC-2026-0333.html"
},
{
"type": "WEB",
"url": "https://github.com/sebastienrousseau/noyalib/pull/470"
}
],
"related": [],
"severity": [],
"summary": "Resource budgets not enforced on the typed deserialization path"
}