CVE-2023-6349

7.5 HIGH

📋 TL;DR

This heap overflow vulnerability in libvpx allows attackers to execute arbitrary code or cause denial of service by encoding VP9 video frames with dimensions larger than originally configured. It affects any software using vulnerable versions of libvpx for video encoding, including web browsers, media players, and video processing applications.

💻 Affected Systems

Products:
  • libvpx
  • Google Chrome
  • Chromium-based browsers
  • Firefox
  • VLC media player
  • FFmpeg
  • GStreamer
  • Any software using libvpx for VP9 encoding
Versions: libvpx versions before 1.13.1
Operating Systems: Linux, Windows, macOS, Android, iOS
Default Config Vulnerable: ⚠️ Yes
Notes: Vulnerability triggers when encoding VP9 video frames with dimensions exceeding originally configured size. Applications must be actively using libvpx's VP9 encoding functionality.

📦 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 causing denial of service, potentially leading to system instability.

🟢

If Mitigated

Controlled crashes with minimal impact if proper memory protections and sandboxing are implemented.

🌐 Internet-Facing: HIGH - Many internet-facing applications use libvpx for video processing, especially web services handling user-uploaded video content.
🏢 Internal Only: MEDIUM - Internal applications using libvpx for video processing could be exploited through malicious files or compromised internal systems.

🎯 Exploit Status

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

Exploitation requires crafting malicious video files or triggering specific encoding conditions. Heap overflow vulnerabilities are often exploitable for code execution with sufficient effort.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 1.13.1 or above

Vendor Advisory: https://crbug.com/webm/1642

Restart Required: Yes

Instructions:

1. Update libvpx to version 1.13.1 or later. 2. Update dependent applications (browsers, media players) to versions using patched libvpx. 3. Restart affected applications and services.

🔧 Temporary Workarounds

Disable VP9 encoding

all

Disable VP9 video encoding functionality in applications where possible

Application-specific configuration changes required

Input validation

all

Validate video dimensions before passing to libvpx encoding functions

Implement size checks in application code before calling libvpx encoding APIs

🧯 If You Can't Patch

  • Implement strict input validation for video dimensions in applications using libvpx
  • Isolate video processing services in containers or sandboxes with limited privileges

🔍 How to Verify

Check if Vulnerable:

Check libvpx version: 'vpxenc --version' or check package manager. If version < 1.13.1, vulnerable.

Check Version:

vpxenc --version 2>/dev/null | head -1 || dpkg -l | grep libvpx || rpm -qa | grep libvpx

Verify Fix Applied:

Confirm libvpx version is 1.13.1 or higher: 'vpxenc --version' should show 1.13.1+

📡 Detection & Monitoring

Log Indicators:

  • Application crashes with segmentation faults in libvpx functions
  • Memory corruption errors in application logs
  • Unexpected process termination during video encoding

Network Indicators:

  • Unusual video file uploads with abnormal dimensions
  • Multiple failed encoding attempts from single source

SIEM Query:

process_name: (chrome OR firefox OR vlc) AND event_type: crash AND module: libvpx*

🔗 References

📤 Share & Export