CVE-2021-45290
📋 TL;DR
This vulnerability in Binaryen 103 allows attackers to cause a Denial of Service (DoS) by triggering an assertion abort in the wasm::handle_unreachable function. It affects systems using Binaryen for WebAssembly compilation and optimization. The vulnerability can crash applications that process malicious WebAssembly modules.
💻 Affected Systems
- Binaryen
📦 What is this software?
Binaryen by Webassembly
Fedora by Fedoraproject
Fedora by Fedoraproject
⚠️ Risk & Real-World Impact
Worst Case
Complete service disruption where applications using Binaryen crash when processing malicious WebAssembly input, potentially affecting dependent services.
Likely Case
Application crashes when processing untrusted WebAssembly modules, leading to temporary service unavailability until restart.
If Mitigated
Minimal impact if systems only process trusted WebAssembly modules or have proper input validation and sandboxing.
🎯 Exploit Status
Exploitation requires feeding a specially crafted WebAssembly module to Binaryen. No public proof-of-concept was found in references.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Binaryen 104 or later
Vendor Advisory: https://github.com/WebAssembly/binaryen/issues/4383
Restart Required: Yes
Instructions:
1. Check current Binaryen version. 2. Update to Binaryen 104 or later using package manager or source compilation. 3. Restart any services using Binaryen.
🔧 Temporary Workarounds
Input Validation
allValidate and sanitize WebAssembly modules before processing with Binaryen
Process Isolation
allRun Binaryen in isolated containers or sandboxes to limit crash impact
🧯 If You Can't Patch
- Implement strict input validation for WebAssembly modules
- Deploy Binaryen in containerized environments with automatic restart capabilities
🔍 How to Verify
Check if Vulnerable:
Check Binaryen version: binaryen --version or check installed package version
Check Version:
binaryen --version
Verify Fix Applied:
Verify version is 104 or later: binaryen --version | grep -q 'version 10[4-9]\|version [1-9][0-9][0-9]'
📡 Detection & Monitoring
Log Indicators:
- Application crashes with assertion failures
- Process termination logs mentioning Binaryen or wasm::handle_unreachable
Network Indicators:
- Unusual WebAssembly module uploads to compilation services
SIEM Query:
process_name:"binaryen" AND (event_type:"crash" OR exit_code:!0)
🔗 References
- https://github.com/WebAssembly/binaryen/issues/4383
- https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/UKGCHPS7UAIOOBGSXDJAUFE5CROTTF6J/
- https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/YCWLB4PWYQO55F7IGNC7KUYN2MFZE3JP/
- https://github.com/WebAssembly/binaryen/issues/4383
- https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/UKGCHPS7UAIOOBGSXDJAUFE5CROTTF6J/
- https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/YCWLB4PWYQO55F7IGNC7KUYN2MFZE3JP/