CVE-2020-16159

9.1 CRITICAL

📋 TL;DR

CVE-2020-16159 is a heap out-of-bounds read vulnerability in GoPro's gpmf-parser library version 1.5. Parsing malicious GPMF metadata can cause segmentation faults (crashes) or information disclosure. This affects any application using the vulnerable gpmf-parser library to process GoPro media files.

💻 Affected Systems

Products:
  • GoPro gpmf-parser library
Versions: Version 1.5 specifically
Operating Systems: All operating systems where gpmf-parser is used
Default Config Vulnerable: ⚠️ Yes
Notes: Any application that uses the gpmf-parser library to parse GoPro metadata (GPMF format) is vulnerable when processing untrusted input.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Remote code execution leading to complete system compromise if combined with other vulnerabilities, or sensitive memory disclosure revealing credentials or other protected data.

🟠

Likely Case

Application crashes (denial of service) when processing malicious files, potentially disrupting media processing workflows.

🟢

If Mitigated

Limited to denial of service if proper input validation and memory protections are in place, with no data exfiltration.

🌐 Internet-Facing: MEDIUM
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires feeding malicious GPMF data to the parser, which could be delivered via crafted media files. Public technical details exist.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Version 1.5.1 or later

Vendor Advisory: https://github.com/gopro/gpmf-parser/commit/2cc0af7ffee6f12934e2d57750bdf292f62b0a97

Restart Required: No

Instructions:

1. Update gpmf-parser to version 1.5.1 or later. 2. Recompile any applications using the library. 3. Replace the old library files with the patched version.

🔧 Temporary Workarounds

Input Validation

all

Implement strict input validation for GPMF data before passing to the parser to reject malformed or suspicious files.

N/A - Implementation specific

Memory Protection

linux

Enable ASLR (Address Space Layout Randomization) and other memory protection mechanisms to reduce impact.

echo 2 > /proc/sys/kernel/randomize_va_space (Linux)
Enable DEP/ASLR in Windows settings

🧯 If You Can't Patch

  • Isolate systems using gpmf-parser from untrusted networks and inputs.
  • Monitor for crashes or unusual behavior in applications processing GoPro files.

🔍 How to Verify

Check if Vulnerable:

Check the gpmf-parser version in use. If version is 1.5, it is vulnerable. Use 'strings' or dependency checkers on binaries.

Check Version:

Check library files or application documentation for version info; no universal command.

Verify Fix Applied:

Verify gpmf-parser version is 1.5.1 or later. Test with known malicious GPMF samples to ensure no crashes.

📡 Detection & Monitoring

Log Indicators:

  • Segmentation fault errors in application logs
  • Unexpected process termination when parsing media files

Network Indicators:

  • Unusual file uploads to systems processing GoPro media
  • Network traffic containing GPMF metadata to vulnerable parsers

SIEM Query:

Example: 'event_type:crash AND process_name:*gpmf*' or similar based on your SIEM.

🔗 References

📤 Share & Export