- Exploited
- No known exploitation
- Fix
- Fixed in 0.38.0
- Who is exposed
- Not reported
Do first: Upgrade to a fixed version: 0.38.0.
- Last modified
- A 0-100 score for how much a CVE matters across the industry: exploitation, exposure, how widely the software is used, severity and whether a fix exists.What do these mean? →
- 10/100 · provisional
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
The calamine Rust library, which reads Excel workbooks (.xls, .xlsb, and VBA projects in .xlsx), is affected. A specially crafted spreadsheet file can crash an application that parses it, either through a thread panic or process abort, or cause it to consume excessive memory and run out of resources, resulting in denial of service.
Written by anthropic/claude-haiku-5.5 from the sources below. Verify against them.
Read the original description
The Compound File Binary (OLE2) parser (src/cfb.rs), used when reading .xls and .xlsb workbooks and when extracting VBA projects from .xlsx, can panic or allocate without bound on crafted input. Both are reachable through the public reader API (open_workbook, Xls::new, Xlsb::new) on an attacker-supplied file. Impact is denial of service only — no memory unsafety (safe Rust turns the out-of-bounds read into a bounds-checked panic).
- Reachable panic (out-of-bounds slice index). The directory stream is iterated with
.chunks(128), butDirectory::from_slicereads fixed offsets (buf[..64],buf[116..120],buf[120..128]) without checking the chunk length. A directory stream whose length is not a multiple of 128 yields a short final chunk, causing a panic (range end index 64 out of range for slice of length N).SectorSize::Small64-byte mini sectors are a second trigger. - Unbounded allocation / OOM. The DIFAT loader grows the
difatvector without bounding the number of iterations; a crafted self-referential DIFAT chain drives a multi-gigabyte allocation from a tiny file (a 512-byte file attempts an allocation of several gigabytes).
A consumer that parses untrusted or user-supplied spreadsheets can be crashed (thread panic, or process abort under panic=abort) or driven out of memory by a small crafted file.
Fixed in calamine 0.38.0 (commit b8ec4f0); the maintainer confirmed the fix in https://github.com/tafia/calamine/pull/762.
cve.now Index
- Exploitation?/40Unknown. No CISA SSVC exploitation rating yet
- Exposure?/25Unknown. No advisory context yet
- Reach10/20Affects crates.io packages
- Severity?/10Unknown. No CVSS score or vendor rating
- No patch0/5No signal
What would change the score
- Would score about 65 if added to CISA KEV
- Would score about 60 if CISA's SSVC rates exploitation active
- Would score about 32 if advisories confirm default setups are exposed
What to do
Upgrade to a fixed version: 0.38.0.
Timeline
- Advisory published6 days
- Record last updated
Affected versions
- calaminecrates.io
From 0.0.0-0 · fixed in 0.38.0
Evidence 3
- Advisory
- Repository
- Link
Corrections
None so far.
Something wrong on this page? Report an error. Every fix is listed here.
Questions about RUSTSEC-2026-0436
Is RUSTSEC-2026-0436 being exploited?
It is not in CISA's Known Exploited Vulnerabilities catalog, and CISA's SSVC assessment does not mark exploitation as active. That does not mean it has not been attacked: vendors and researchers can report attacks before CISA lists them. No public exploit code is tracked.Source: cve.now feed data
Which versions are affected by RUSTSEC-2026-0436?
calamine (crates.io): from 0.0.0-0 before 0.38.0.Source: cve.now feed data
How do I fix RUSTSEC-2026-0436?
Upgrade to a fixed version: 0.38.0.Source: cve.now feed data