CVE-2019-25645
Executive Summary
CVE-2019-25645 is a denial of service (DoS) vulnerability in WinAVI iPod/3GP/MP4/PSP Converter version 4.4.2. The flaw allows local attackers to crash the application by processing a malformed AVI file with an oversized buffer. When a victim loads the crafted file through the "Convert to iPhone" function, the application terminates unexpectedly, leading to a denial of service. No patch is available from the vendor, and the vulnerability remains unpatched.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
CVSS Breakdown & Threat Level
- CVSS Score: 0.0 (No CVSS vector assigned by NVD)
- Threat Level: Low (Local attack vector, low complexity, no privileges required, user interaction required)
- Impact: Denial of service (application crash), no data confidentiality or integrity impact.
Deep Dive & Mechanics
The vulnerability resides in the AVI file parsing routine of WinAVI Converter. When the application reads an AVI file, it does not properly validate the size of a buffer before copying data into it. An attacker can craft an AVI file with an oversized buffer in a specific chunk (e.g., the strh or strf chunk). When the application attempts to process this chunk during the "Convert to iPhone" operation, it copies the oversized data into a fixed-size stack or heap buffer, causing a buffer overflow. This overflow corrupts adjacent memory, leading to an access violation and application crash.
The crash is triggered locally, meaning the attacker must have access to the system and convince the user to open the malicious file. No remote exploitation is possible without user interaction.
Vulnerable vs. Patched Code
Since no patch is available, there is no patched code to compare. The vulnerable code is in the AVI parsing module of WinAVI 4.4.2. A hypothetical fix would involve:
- Vulnerable:
memcpy(buffer, chunk_data, chunk_size);wherechunk_sizeis not checked againstbuffersize. - Patched:
if (chunk_size > buffer_size) return error; memcpy(buffer, chunk_data, chunk_size);
Exploitation & Lab Setup
Red Team
- Craft the Malicious AVI File:
- Use a hex editor or a Python script to create an AVI file with a manipulated
strhchunk containing an oversized buffer. - Example Python script:
import struct # Create a minimal AVI header with oversized strh chunk avi_header = b'RIFF' + struct.pack('<I', 0xFFFFFFFF) + b'AVI LIST' # ... (simplified for brevity) with open('malicious.avi', 'wb') as f: f.write(avi_header + b'\x00' * 10000) # oversized buffer
- Use a hex editor or a Python script to create an AVI file with a manipulated
- Deliver the File:
- Place the file on the target system via USB, email, or network share.
- Trigger the Vulnerability:
- Open WinAVI Converter, select "Convert to iPhone", and load the malicious AVI file.
- The application will crash immediately.
Blue Team
- Detection:
- Monitor for abnormal AVI file sizes or unusual chunk structures.
- Use file integrity monitoring to detect creation of suspicious AVI files.
- Prevention:
- Restrict execution of WinAVI Converter to trusted users only.
- Use application whitelisting to block untrusted software.
- Response:
- If a crash is detected, isolate the system and analyze the AVI file for malicious content.
- Educate users not to open AVI files from untrusted sources.
Indicators of Compromise (IOCs)
- File Hashes (example):
- SHA256:
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855(placeholder)
- SHA256:
- File Name:
malicious.avior any AVI file with oversizedstrhchunk. - Process:
WinAVI.execrashes with exception code0xc0000005(access violation). - Registry: No persistent registry changes.
Detection Engineering
YARA Rule
rule CVE_2019_25645_WinAVI_DoS {
meta:
description = "Detects malformed AVI files exploiting CVE-2019-25645"
author = "Valters IT"
date = "2025-04-14"
reference = "CVE-2019-25645"
strings:
$avi_magic = "RIFF"
$strh = "strh"
$oversized = { 00 00 00 00 } // placeholder for oversized buffer pattern
condition:
$avi_magic at 0 and $strh and #oversized > 1000
}
Sigma Rule
title: WinAVI Converter Crash via Malformed AVI
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects WinAVI Converter crash due to oversized buffer in AVI file
author: Valters IT
date: 2025/04/14
logsource:
category: process_creation
product: windows
detection:
selection:
Image|endswith: '\\WinAVI.exe'
ExitCode: '0xc0000005'
condition: selection
falsepositives:
- Unknown
level: medium
Suricata Rule
alert http any any -> any any (msg:"CVE-2019-25645 WinAVI DoS via Malformed AVI"; flow:to_client; file_data; content:"RIFF"; content:"strh"; within:100; byte_test:4,>,1000,0,relative; sid:1000001; rev:1;)
Remediation & Mitigation
- No Patch Available: The vendor has not released a fix. Users should consider replacing WinAVI Converter with an alternative tool.
- Mitigation:
- Do not open AVI files from untrusted sources.
- Use a sandbox or virtual machine to run WinAVI Converter.
- Apply file reputation filtering to block suspicious AVI files.
- Workaround: Disable the "Convert to iPhone" function if possible, or use a different conversion profile.
Valters IT