CVE-2012-3543

7.5 HIGH

📋 TL;DR

CVE-2012-3543 is a hash collision denial-of-service vulnerability in Mono's ASP.NET Web Forms implementation. Attackers can craft malicious POST requests with colliding hash values to cause excessive CPU consumption and service degradation. This affects Mono 2.10.x installations running ASP.NET applications.

💻 Affected Systems

Products:
  • Mono
Versions: 2.10.x (specifically 2.10.8 and earlier)
Operating Systems: Linux, Unix-like systems, Windows
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects ASP.NET Web Forms applications running on Mono. Applications using other frameworks or native .NET on Windows are not affected.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete service unavailability due to CPU exhaustion, potentially affecting multiple applications on the same server.

🟠

Likely Case

Significant performance degradation leading to partial service disruption and increased response times.

🟢

If Mitigated

Minimal impact with proper request filtering and resource monitoring in place.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Exploit requires sending specially crafted HTTP POST requests to vulnerable endpoints. No authentication needed.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Mono 2.10.9 and later

Vendor Advisory: http://www.mono-project.com/news/2012/08/28/mono-2-10-9-released/

Restart Required: Yes

Instructions:

1. Backup your Mono installation and applications. 2. Download Mono 2.10.9 or later from official sources. 3. Stop all Mono services. 4. Install the updated version. 5. Restart services and verify functionality.

🔧 Temporary Workarounds

Request filtering

all

Implement web application firewall rules to limit POST request size and rate

# Example for mod_security: SecRule REQUEST_METHOD "@streq POST" "phase:1,id:1001,block,msg:'POST request filtering'"
# Rate limiting with nginx: limit_req_zone $binary_remote_addr zone=postlimit:10m rate=10r/s;

Resource limiting

linux

Configure CPU and memory limits for Mono processes

# Using systemd: CPUQuota=50%
# Using cgroups: cgcreate -g cpu,memory:/mono_limit
cgset -r cpu.cfs_quota_us=50000 mono_limit

🧯 If You Can't Patch

  • Implement strict rate limiting and request size limits at the network perimeter
  • Monitor CPU usage and set up alerts for abnormal spikes in Mono process consumption

🔍 How to Verify

Check if Vulnerable:

Check Mono version with: mono --version | grep 'version'

Check Version:

mono --version

Verify Fix Applied:

Verify version is 2.10.9 or higher: mono --version

📡 Detection & Monitoring

Log Indicators:

  • High CPU usage spikes in system logs
  • Multiple large POST requests to ASP.NET endpoints in web server logs
  • Increased response times logged in application monitoring

Network Indicators:

  • Unusually large POST requests to ASP.NET endpoints
  • High volume of requests from single IP addresses
  • Abnormal traffic patterns to Mono-hosted applications

SIEM Query:

source="web_server" method="POST" size_bytes>100000 | stats count by src_ip

🔗 References

📤 Share & Export