CVE-2021-38092

8.8 HIGH

📋 TL;DR

This integer overflow vulnerability in FFmpeg's convolution filter allows attackers to cause denial of service or potentially execute arbitrary code by processing specially crafted video files. It affects systems running FFmpeg 4.2.1 that process untrusted video content. Media processing servers, video conversion services, and applications embedding FFmpeg are particularly vulnerable.

💻 Affected Systems

Products:
  • FFmpeg
Versions: 4.2.1 specifically (check other versions for similar issues)
Operating Systems: All platforms running FFmpeg
Default Config Vulnerable: ⚠️ Yes
Notes: Any system using FFmpeg to process video files from untrusted sources is vulnerable. The convolution filter must be invoked, which occurs during certain video processing operations.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Remote code execution leading to complete system compromise if the integer overflow enables memory corruption that can be weaponized.

🟠

Likely Case

Denial of service through application crash when processing malicious video files, disrupting media processing services.

🟢

If Mitigated

Limited impact with proper input validation and sandboxing, potentially causing only application crashes without privilege escalation.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires crafting a malicious video file that triggers the integer overflow in the convolution filter. No public proof-of-concept has been released, but the vulnerability is well-documented.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Fixed in commit 99f8d32129dd233d4eb2efa44678a0bc44869f23 and later versions

Vendor Advisory: https://git.ffmpeg.org/gitweb/ffmpeg.git/commit/99f8d32129dd233d4eb2efa44678a0bc44869f23

Restart Required: Yes

Instructions:

1. Update FFmpeg to version 4.4 or later. 2. Alternatively, apply the specific patch from commit 99f8d32129dd233d4eb2efa44678a0bc44869f23. 3. Recompile FFmpeg if building from source. 4. Restart any services using FFmpeg.

🔧 Temporary Workarounds

Disable convolution filter

all

Prevent use of the vulnerable filter_prewitt function by disabling convolution filter operations

ffmpeg -filter_complex 'convolution=disable' input.mp4 output.mp4

Sandbox FFmpeg processing

linux

Run FFmpeg in a container or sandbox with limited privileges to contain potential exploitation

docker run --security-opt no-new-privileges -v /input:/input -v /output:/output ffmpeg ffmpeg -i /input/video.mp4 /output/processed.mp4

🧯 If You Can't Patch

  • Implement strict input validation - only allow trusted video sources and validate file formats before processing
  • Deploy network segmentation - isolate FFmpeg processing systems from critical infrastructure

🔍 How to Verify

Check if Vulnerable:

Check FFmpeg version: ffmpeg -version | grep 'version' and verify if it's 4.2.1. Also check if the system processes video files from untrusted sources.

Check Version:

ffmpeg -version | grep 'version'

Verify Fix Applied:

Verify FFmpeg version is 4.4 or later, or check if commit 99f8d32129dd233d4eb2efa44678a0bc44869f23 is included in your build.

📡 Detection & Monitoring

Log Indicators:

  • FFmpeg process crashes with segmentation faults
  • Unexpected termination of media processing services
  • Error logs mentioning convolution.c or filter_prewitt

Network Indicators:

  • Unusual video file uploads to media processing endpoints
  • Multiple failed media processing requests

SIEM Query:

source="ffmpeg.log" AND ("segmentation fault" OR "SIGSEGV" OR "convolution")

🔗 References

📤 Share & Export