CVE-2020-20450

7.5 HIGH

📋 TL;DR

CVE-2020-20450 is a null pointer dereference vulnerability in FFmpeg 4.2's libavformat/aviobuf.c component that can cause a denial of service. Attackers can crash FFmpeg processes by providing specially crafted input files. This affects any system or application using vulnerable FFmpeg versions for media processing.

💻 Affected Systems

Products:
  • FFmpeg
Versions: 4.2 specifically; other versions may be affected depending on backports
Operating Systems: All operating systems running vulnerable FFmpeg versions
Default Config Vulnerable: ⚠️ Yes
Notes: Any application or service using FFmpeg 4.2 for media processing is vulnerable when handling malicious input files.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete denial of service causing FFmpeg processes to crash, potentially disrupting media processing pipelines, streaming services, or applications relying on FFmpeg for video/audio operations.

🟠

Likely Case

Application crashes when processing malicious media files, leading to service disruption and potential data loss in processing queues.

🟢

If Mitigated

Isolated crashes in sandboxed environments with proper monitoring and restart mechanisms, minimizing broader system impact.

🌐 Internet-Facing: MEDIUM - Exploitable via malicious media uploads to web applications using FFmpeg, but requires specific input processing.
🏢 Internal Only: LOW - Primarily affects media processing systems; limited impact on general internal infrastructure.

🎯 Exploit Status

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

Exploitation requires providing specially crafted media files to vulnerable FFmpeg instances; trivial for attackers with file upload capabilities.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: FFmpeg 4.2.2 and later

Vendor Advisory: https://trac.ffmpeg.org/ticket/7993

Restart Required: Yes

Instructions:

1. Update FFmpeg to version 4.2.2 or later using your package manager. 2. For Debian/Ubuntu: apt update && apt upgrade ffmpeg. 3. For source installations: git pull origin release/4.2 && rebuild. 4. Restart all services using FFmpeg.

🔧 Temporary Workarounds

Input validation and sanitization

all

Implement strict file validation for media uploads before passing to FFmpeg

Process isolation

linux

Run FFmpeg in isolated containers with resource limits and automatic restart

docker run --memory=512m --restart=on-failure ffmpeg-container

🧯 If You Can't Patch

  • Implement strict input validation for all media files before FFmpeg processing
  • Isolate FFmpeg processes in containers with resource limits and monitoring for crashes

🔍 How to Verify

Check if Vulnerable:

Check FFmpeg version: ffmpeg -version | grep 'version' and verify if it's 4.2.x (specifically 4.2.0 or 4.2.1)

Check Version:

ffmpeg -version | grep 'version'

Verify Fix Applied:

Confirm version is 4.2.2 or later: ffmpeg -version | grep 'version'

📡 Detection & Monitoring

Log Indicators:

  • Segmentation fault errors in FFmpeg logs
  • Unexpected process termination of ffmpeg processes
  • Core dumps in /var/crash or similar directories

Network Indicators:

  • Unusual media file uploads followed by service disruption

SIEM Query:

process.name:ffmpeg AND (event.outcome:failure OR signal.name:SIGSEGV)

🔗 References

📤 Share & Export