CVE-2021-30474

9.8 CRITICAL

📋 TL;DR

CVE-2021-30474 is a use-after-free vulnerability in libaom's grain_table.c that allows memory corruption. Attackers can exploit this to execute arbitrary code or cause denial of service. Systems using AOMedia libaom library for AV1 video processing are affected.

💻 Affected Systems

Products:
  • AOMedia libaom
  • Applications using libaom for AV1 video processing
  • Web browsers with AV1 support
  • Media players with AV1 support
Versions: All versions before 2021-03-30
Operating Systems: Linux, Windows, macOS, BSD
Default Config Vulnerable: ⚠️ Yes
Notes: Vulnerability triggers when processing specially crafted AV1 video content with grain synthesis enabled

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Remote code execution leading to complete system compromise

🟠

Likely Case

Application crash or denial of service

🟢

If Mitigated

Limited impact with proper memory protections and exploit mitigations

🌐 Internet-Facing: MEDIUM - Requires processing malicious AV1 video content
🏢 Internal Only: LOW - Typically requires user interaction or specific video processing workflows

🎯 Exploit Status

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

Exploitation requires delivering malicious AV1 video content; public proof-of-concept demonstrates crash

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Commit 6e31957b6dc62dbc7d1bb70cd84902dd14c4bf2e and later

Vendor Advisory: https://aomedia.googlesource.com/aom/+/6e31957b6dc62dbc7d1bb70cd84902dd14c4bf2e

Restart Required: Yes

Instructions:

1. Update libaom to version with commit 6e31957b6dc62dbc7d1bb70cd84902dd14c4bf2e or later. 2. Rebuild applications using libaom. 3. Restart affected services.

🔧 Temporary Workarounds

Disable grain synthesis

all

Disable AV1 grain synthesis feature to prevent triggering the vulnerability

Set --disable-grain-synthesis in libaom configuration

🧯 If You Can't Patch

  • Implement network filtering to block malicious video content
  • Use application sandboxing to limit potential damage

🔍 How to Verify

Check if Vulnerable:

Check libaom version: aomenc --version | grep 'v'

Check Version:

aomenc --version

Verify Fix Applied:

Verify libaom includes commit 6e31957b6dc62dbc7d1bb70cd84902dd14c4bf2e: git log --oneline | grep '6e31957'

📡 Detection & Monitoring

Log Indicators:

  • Application crashes with segmentation faults
  • Memory corruption errors in system logs

Network Indicators:

  • Unusual AV1 video file transfers
  • Exploit kit traffic patterns

SIEM Query:

source="*application.logs*" AND ("segmentation fault" OR "use-after-free" OR "libaom")

🔗 References

📤 Share & Export