CVE-2020-35880

9.8 CRITICAL

📋 TL;DR

This vulnerability in the Rust bigint crate allows memory safety violations through soundness issues, potentially leading to arbitrary code execution. It affects any Rust application using the vulnerable bigint crate versions. The high CVSS score indicates critical impact potential.

💻 Affected Systems

Products:
  • Rust applications using bigint crate
Versions: All versions through 2020-05-07
Operating Systems: All platforms running Rust applications
Default Config Vulnerable: ⚠️ Yes
Notes: Any Rust project with bigint dependency is vulnerable unless explicitly pinned to patched version.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Remote code execution leading to complete system compromise, data theft, or ransomware deployment.

🟠

Likely Case

Application crashes, denial of service, or memory corruption leading to unpredictable behavior.

🟢

If Mitigated

Limited impact if application runs with minimal privileges and proper sandboxing.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ⚠️ Yes
Complexity: MEDIUM

Soundness violations in Rust typically require specific conditions to trigger but can be exploited via crafted inputs.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Versions after 2020-05-07

Vendor Advisory: https://rustsec.org/advisories/RUSTSEC-2020-0025.html

Restart Required: Yes

Instructions:

1. Update Cargo.toml to use bigint >=0.4.0. 2. Run 'cargo update'. 3. Rebuild and redeploy application. 4. Restart affected services.

🔧 Temporary Workarounds

Pin to safe version

all

Explicitly specify non-vulnerable bigint version in Cargo.toml

bigint = ">=0.4.0"

🧯 If You Can't Patch

  • Isolate vulnerable applications in network segments with strict egress filtering
  • Implement application allowlisting and restrict execution privileges

🔍 How to Verify

Check if Vulnerable:

Run 'cargo tree | grep bigint' and check version. If version <=0.3.2, vulnerable.

Check Version:

cargo tree | grep bigint

Verify Fix Applied:

Run 'cargo tree | grep bigint' and confirm version >=0.4.0.

📡 Detection & Monitoring

Log Indicators:

  • Application crashes with memory corruption errors
  • Unexpected segmentation faults

Network Indicators:

  • Unusual outbound connections from Rust applications

SIEM Query:

process_name:rust AND (event_type:crash OR error_message:"memory corruption")

🔗 References

📤 Share & Export