CVE-2025-28162 Overview
A Buffer Overflow vulnerability has been identified in libpng versions 1.6.43 through 1.6.46 that allows a local attacker to cause a denial of service condition. When processing malformed PNG images with AddressSanitizer (ASan) enabled, the program leaks memory in various locations, eventually leading to high memory usage and causing the program to become unresponsive.
Critical Impact
Local attackers can exploit this vulnerability to exhaust system memory resources, rendering affected applications unresponsive and potentially impacting system stability.
Affected Products
- libpng 1.6.43
- libpng 1.6.44
- libpng 1.6.45
- libpng 1.6.46
Discovery Timeline
- 2026-01-27 - CVE CVE-2025-28162 published to NVD
- 2026-01-29 - Last updated in NVD database
Technical Details for CVE-2025-28162
Vulnerability Analysis
This vulnerability is classified as CWE-120 (Buffer Copy without Checking Size of Input), commonly known as a classic buffer overflow. The flaw exists in the libpng library's image processing routines where improper bounds checking allows memory to be written beyond allocated buffer boundaries.
When processing specially crafted PNG images, the vulnerable code path fails to properly validate input sizes before copying data into fixed-size buffers. This oversight enables attackers to trigger memory corruption conditions that manifest as memory leaks. Over time, repeated exploitation leads to resource exhaustion as the application continues to allocate memory without proper cleanup.
The local attack vector means an attacker must have the ability to provide malicious PNG files to applications using the vulnerable libpng versions. This could occur through various scenarios including image upload functionality, document processing pipelines, or any application that processes user-supplied PNG images.
Root Cause
The root cause stems from insufficient bounds checking in the PNG image processing functions within libpng. When handling certain malformed PNG data structures, the library fails to validate the size of input data against the allocated buffer capacity, leading to buffer overflow conditions. The memory leaks detected by AddressSanitizer indicate that the overflow corrupts memory management structures, preventing proper deallocation of allocated resources.
Attack Vector
The vulnerability requires local access to exploit. An attacker must be able to supply a maliciously crafted PNG file to an application using the vulnerable libpng library. The attack does not require elevated privileges, but does require the attacker to have a local user account or the ability to provide input files to affected applications.
The exploitation results in denial of service through memory exhaustion. As the vulnerable application processes malicious images, memory continues to accumulate until the system becomes unresponsive or the application crashes due to out-of-memory conditions.
Technical details and proof-of-concept information are available in the GitHub Gist PoC published by the security researcher. Additional discussion can be found in GitHub Issue #656 on the libpng repository.
Detection Methods for CVE-2025-28162
Indicators of Compromise
- Unusual memory consumption patterns in applications that process PNG images
- Application crashes or unresponsiveness when handling PNG files
- AddressSanitizer reports showing memory leaks in libpng-related functions
- System-wide memory pressure originating from image processing services
Detection Strategies
- Monitor memory usage trends for applications utilizing libpng for PNG image processing
- Deploy AddressSanitizer or similar memory analysis tools in testing environments to identify exploitation attempts
- Implement application-level monitoring to detect abnormal PNG file processing behavior
- Review system logs for out-of-memory errors or OOM killer events associated with image processing applications
Monitoring Recommendations
- Configure resource monitoring alerts for applications known to use libpng versions 1.6.43 through 1.6.46
- Implement memory usage thresholds and automatic alerting for image processing services
- Monitor for repeated crashes or restarts of services that handle PNG image processing
- Enable detailed logging for file upload and image processing functionality
How to Mitigate CVE-2025-28162
Immediate Actions Required
- Inventory all systems and applications using libpng versions 1.6.43 through 1.6.46
- Update libpng to a patched version when available from the libpng development group
- Implement input validation to reject malformed or suspicious PNG files before processing
- Consider implementing resource limits (memory caps) for applications processing untrusted PNG images
Patch Information
Organizations should monitor the libpng GitHub repository for official patch releases addressing this vulnerability. Until a patch is available, implementing the workarounds below is recommended to reduce exposure risk.
Workarounds
- Restrict PNG file processing to trusted sources only where feasible
- Implement application-level memory limits using cgroups or similar containerization technologies
- Deploy resource monitoring with automatic service restarts when memory thresholds are exceeded
- Consider using alternative PNG processing libraries for critical applications until a patch is available
# Example: Configure memory limits for PNG processing service using systemd
# Add to /etc/systemd/system/png-processor.service.d/limits.conf
[Service]
MemoryMax=2G
MemoryHigh=1.5G
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

