Cloudanix VulnDB

CVE-2024-5197

None

CVSS

—

EPSS

0.8%

Published

Jun 3, 2024

CISA due date

—

Cloudanix analysis

Monitor only SSVC: Track

A flaw in a widely used video library can let attackers corrupt memory inside programs that play or create certain video files, potentially crashing the software or taking control of it.

Exploitation
Remote Authenticated
Attacker needs
Low Privilege
Complexity
High
Impact
Data Tampering
Component
Library
Class
Memory Corruption
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

Integer overflows in vpx_img_alloc() and vpx_img_wrap() when supplied large d_w, d_h, align or stride_align values cause incorrect buffer size/offset calculations and leave fields of the returned vpx_image_t struct invalid, enabling subsequent memory corruption.

Why it matters to the business

Applications that decode or encode VP8/VP9/WebM video streams may crash or allow arbitrary memory writes, leading to service outages or remote code execution in media pipelines and browsers.

How an attack unfolds

An attacker supplies a malicious image descriptor containing oversized width, height or alignment values to vpx_img_alloc or vpx_img_wrap; the resulting integer overflow produces an undersized or misaligned buffer that later write operations corrupt adjacent memory.

How to fix it

Upgrade webmproject/libvpx to commit 12f3a2ac603e8f10742105519e0cd03c3b8f71dd (version 1.14.1) or newer in all dependent builds; rebuild and redeploy any statically linked binaries or containers.

How to confirm the fix worked

Confirm the installed libvpx shared object or source tree reports version 1.14.1 or later; fuzz allocation paths with maximum-size d_w/d_h parameters and verify no invalid vpx_image_t fields are produced.

Typical attack path

  1. Identify a target process that links against a vulnerable libvpx version and accepts attacker-controlled video parameters
  2. Craft a VPX image allocation call or incoming bitstream that triggers vpx_img_alloc/vpx_img_wrap with large d_w/d_h/align values
  3. Trigger subsequent library operations that dereference the corrupted vpx_image_t fields to achieve memory corruption
  4. Leverage the corruption primitive for code execution or denial of service

How to detect it

Review process creation logs and library load events for unexpected invocations of vpx_img_alloc or vpx_img_wrap; inspect crash dumps for invalid image descriptor values; correlate with inbound video streams containing anomalous dimension fields.

What your security team should do

  • Inventory all products and containers that statically or dynamically link libvpx and schedule upgrades within 30 days
  • Add libvpx version checks to build pipelines and dependency scanners
  • Monitor EPSS and KEV feeds for any future rise in exploit maturity

The record

There exists interger overflows in libvpx in versions prior to 1.14.1. Calling vpx_img_alloc() with a large value of the d_w, d_h, or align parameter may result in integer overflows in the calculations of buffer sizes and offsets and some fields of the returned vpx_image_t struct may be invalid. Calling vpx_img_wrap() with a large value of the d_w, d_h, or stride_align parameter may result in integer overflows in the calculations of buffer sizes and offsets and some fields of the returned vpx_image_t struct may be invalid. We recommend upgrading to version 1.14.1 or beyond

Affected packages

Ecosystem Package Introduced Fixed
AlmaLinux:8 libvpx 0 1.7.0-11.el8_10
AlmaLinux:8 libvpx-devel 0 1.7.0-11.el8_10
AlmaLinux:9 libvpx 0 1.9.0-8.el9_5
AlmaLinux:9 libvpx-devel 0 1.9.0-8.el9_5
Debian:10 libvpx 0 1.7.0-3+deb10u3
Debian:11 libvpx 0 1.9.0-1+deb11u3
Debian:12 libvpx 0 1.12.0-1+deb12u3
Debian:13 libvpx 0 1.14.1-1
Mageia:9 libvpx 0 1.12.0-1.3.mga9
Red Hat:enterprise_linux:8::appstream libvpx 0 0:1.7.0-11.el8_10
Red Hat:enterprise_linux:8::appstream libvpx-debuginfo 0 0:1.7.0-11.el8_10
Red Hat:enterprise_linux:8::appstream libvpx-debugsource 0 0:1.7.0-11.el8_10
Red Hat:enterprise_linux:8::appstream libvpx-devel 0 0:1.7.0-11.el8_10
Red Hat:enterprise_linux:8::appstream libvpx-utils-debuginfo 0 0:1.7.0-11.el8_10
Red Hat:enterprise_linux:8::crb libvpx 0 0:1.7.0-11.el8_10
Red Hat:enterprise_linux:8::crb libvpx-debuginfo 0 0:1.7.0-11.el8_10
Red Hat:enterprise_linux:8::crb libvpx-debugsource 0 0:1.7.0-11.el8_10
Red Hat:enterprise_linux:8::crb libvpx-devel 0 0:1.7.0-11.el8_10
Red Hat:enterprise_linux:8::crb libvpx-utils-debuginfo 0 0:1.7.0-11.el8_10
Red Hat:enterprise_linux:9::appstream libvpx 0 0:1.9.0-8.el9_5
Red Hat:enterprise_linux:9::appstream libvpx-debuginfo 0 0:1.9.0-8.el9_5
Red Hat:enterprise_linux:9::appstream libvpx-debugsource 0 0:1.9.0-8.el9_5
Red Hat:enterprise_linux:9::appstream libvpx-devel 0 0:1.9.0-8.el9_5
Red Hat:enterprise_linux:9::appstream libvpx-utils-debuginfo 0 0:1.9.0-8.el9_5
Red Hat:enterprise_linux:9::crb libvpx 0 0:1.9.0-8.el9_5
Red Hat:enterprise_linux:9::crb libvpx-debuginfo 0 0:1.9.0-8.el9_5
Red Hat:enterprise_linux:9::crb libvpx-debugsource 0 0:1.9.0-8.el9_5
Red Hat:enterprise_linux:9::crb libvpx-devel 0 0:1.9.0-8.el9_5
Red Hat:enterprise_linux:9::crb libvpx-utils-debuginfo 0 0:1.9.0-8.el9_5
Rocky Linux:8 libvpx 0 0:1.7.0-11.el8_10
Rocky Linux:9 libvpx 0 0:1.9.0-8.el9_5
SUSE:Enterprise Storage 7.1 libvpx 0 1.6.1-150000.6.16.1
SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS libvpx 0 1.6.1-150000.6.16.1
SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS libvpx 0 1.6.1-150000.6.16.1
SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS libvpx 0 1.6.1-150000.6.16.1
SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS libvpx 0 1.11.0-150400.3.7.1
SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS libvpx 0 1.6.1-150000.6.16.1
SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS libvpx 0 1.11.0-150400.3.7.1
SUSE:Linux Enterprise Module for Basesystem 15 SP5 libvpx 0 1.11.0-150400.3.7.1
SUSE:Linux Enterprise Module for Basesystem 15 SP6 libvpx 0 1.11.0-150400.3.7.1
SUSE:Linux Enterprise Module for Desktop Applications 15 SP5 libvpx 0 1.6.1-150000.6.16.1
SUSE:Linux Enterprise Module for Desktop Applications 15 SP6 libvpx 0 1.6.1-150000.6.16.1
SUSE:Linux Enterprise Module for Package Hub 15 SP5 libvpx 0 1.11.0-150400.3.7.1
SUSE:Linux Enterprise Module for Package Hub 15 SP6 libvpx 0 1.11.0-150400.3.7.1
SUSE:Linux Enterprise Server 15 SP2-LTSS libvpx 0 1.6.1-150000.6.16.1
SUSE:Linux Enterprise Server 15 SP3-LTSS libvpx 0 1.6.1-150000.6.16.1
SUSE:Linux Enterprise Server 15 SP4-LTSS libvpx 0 1.6.1-150000.6.16.1
SUSE:Linux Enterprise Server 15 SP4-LTSS libvpx 0 1.11.0-150400.3.7.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP2 libvpx 0 1.6.1-150000.6.16.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP3 libvpx 0 1.6.1-150000.6.16.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP4 libvpx 0 1.6.1-150000.6.16.1
SUSE:Linux Enterprise Server for SAP Applications 15 SP4 libvpx 0 1.11.0-150400.3.7.1
SUSE:Manager Proxy 4.3 libvpx 0 1.11.0-150400.3.7.1
SUSE:Manager Server 4.3 libvpx 0 1.11.0-150400.3.7.1
Ubuntu:20.04:LTS libvpx 0 1.8.2-1ubuntu0.3
Ubuntu:22.04:LTS libvpx 0 1.11.0-2ubuntu2.3
Ubuntu:23.10 libvpx 0 1.12.0-1ubuntu2.1
Ubuntu:24.04:LTS libvpx 0 1.14.0-1ubuntu2.1
Ubuntu:24.10 libvpx 0 1.14.1-1ubuntu1
Ubuntu:Pro:14.04:LTS libvpx 0 No fix
Ubuntu:Pro:14.04:LTS libvpx 0 1.3.0-2ubuntu0.1+esm3
Ubuntu:Pro:16.04:LTS libvpx 0 No fix
Ubuntu:Pro:16.04:LTS libvpx 0 1.5.0-2ubuntu1.1+esm3
Ubuntu:Pro:18.04:LTS libvpx 0 No fix
Ubuntu:Pro:18.04:LTS libvpx 0 1.7.0-3ubuntu0.18.04.1+esm2
openSUSE:Leap 15.5 libvpx 0 1.11.0-150400.3.7.1
openSUSE:Leap 15.6 libvpx 0 1.11.0-150400.3.7.1
openSUSE:Tumbleweed libvpx 0 1.14.1-1.1

Related vulnerabilities