CVE-2016-1541
High · 8.8CVSS
8.8
EPSS
10.3%
Published
May 7, 2016
CISA due date
—
Cloudanix analysis
A bug in a common tool that reads ZIP files could let attackers run their own programs on your computer if you open a specially crafted archive.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Low
- Impact
- Remote Code Execution
- Component
- Library
- Class
- Improper Input Validation
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Heap-based buffer overflow in zip_read_mac_metadata during ZIP archive parsing allows remote attackers to execute arbitrary code via crafted entry-size values.
Why it matters to the business
Systems that process untrusted ZIP archives using vulnerable libarchive versions face risk of full system compromise, data theft, or ransomware deployment; the library's wide use in backup, packaging, and container tools amplifies exposure across many environments.
How an attack unfolds
An attacker crafts a ZIP archive containing malicious entry-size metadata values that trigger the buffer overflow in the zip_read_mac_metadata function; when a victim application or service processes the archive with an affected libarchive version, the overflow leads to arbitrary code execution under the privileges of the parsing process.
How to fix it
Upgrade libarchive to a version containing commit d0331e8e5b05b475f20b1f3101fe1ad772d7e7e7 or later (3.2.0+); for kubeflow-pipelines and kubeflow-pipelines-apiserver on Chainguard or Wolfi, update to 2.2.0-r6 or newer. Rebuild and redeploy any dependent containers or packages after the update.
How to confirm the fix worked
Confirm installed libarchive version is at or above the fixed commit or release; run regression tests with known-malformed ZIP samples that previously triggered the overflow; verify no crashes or unexpected behavior during archive extraction in staging environments.
Typical attack path
- Craft a malicious ZIP archive with oversized or malformed entry-size values targeting the zip_read_mac_metadata path
- Deliver the archive via email, download, or supply-chain vector to a target system
- Trigger processing of the archive through user action, automated backup, or application ingestion
- Achieve code execution and establish persistence or escalate privileges
How to detect it
Review application and system logs for segmentation faults or crashes during ZIP extraction; search for invocations of zip_read_mac_metadata or archive_read_support_format_zip in process traces; correlate with file creation or execution events shortly after archive processing.
- zip_read_mac_metadata
- archive_read_support_format_zip.c
- SIGSEGV during ZIP extraction
What your security team should do
- Prioritize patching all instances of libarchive and dependent packages within the next maintenance window due to remote code execution potential
- Inventory applications and pipelines that ingest untrusted ZIP files and enforce input sanitization or sandboxing until patched
- Update build pipelines to pull only fixed versions of kubeflow-pipelines components
- Monitor for new exploit code or public PoCs given the CVE's age and moderate EPSS
The record
Heap-based buffer overflow in the zip_read_mac_metadata function in archive_read_support_format_zip.c in libarchive before 3.2.0 allows remote attackers to execute arbitrary code via crafted entry-size values in a ZIP archive.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Alpine:v3.4 | libarchive | 0 | 3.2.0-r0 |
| Debian:11 | libarchive | 0 | 3.1.2-11.1 |
| Debian:12 | libarchive | 0 | 3.1.2-11.1 |
| Debian:13 | libarchive | 0 | 3.1.2-11.1 |
| Debian:8 | libarchive | 0 | 3.1.2-11+deb8u1 |
| Mageia:5 | libarchive | 0 | 3.2.0-1.mga5 |
| Red Hat:enterprise_linux:7::client | bsdcpio | 0 | 0:3.1.2-10.el7_2 |
| Red Hat:enterprise_linux:7::client | bsdtar | 0 | 0:3.1.2-10.el7_2 |
| Red Hat:enterprise_linux:7::client | libarchive | 0 | 0:3.1.2-10.el7_2 |
| Red Hat:enterprise_linux:7::client | libarchive-debuginfo | 0 | 0:3.1.2-10.el7_2 |
| Red Hat:enterprise_linux:7::client | libarchive-devel | 0 | 0:3.1.2-10.el7_2 |
| Red Hat:enterprise_linux:7::computenode | bsdcpio | 0 | 0:3.1.2-10.el7_2 |
| Red Hat:enterprise_linux:7::computenode | bsdtar | 0 | 0:3.1.2-10.el7_2 |
| Red Hat:enterprise_linux:7::computenode | libarchive | 0 | 0:3.1.2-10.el7_2 |
| Red Hat:enterprise_linux:7::computenode | libarchive-debuginfo | 0 | 0:3.1.2-10.el7_2 |
| Red Hat:enterprise_linux:7::computenode | libarchive-devel | 0 | 0:3.1.2-10.el7_2 |
| Red Hat:enterprise_linux:7::server | bsdcpio | 0 | 0:3.1.2-10.el7_2 |
| Red Hat:enterprise_linux:7::server | bsdtar | 0 | 0:3.1.2-10.el7_2 |
| Red Hat:enterprise_linux:7::server | libarchive | 0 | 0:3.1.2-10.el7_2 |
| Red Hat:enterprise_linux:7::server | libarchive-debuginfo | 0 | 0:3.1.2-10.el7_2 |
| Red Hat:enterprise_linux:7::server | libarchive-devel | 0 | 0:3.1.2-10.el7_2 |
| Red Hat:enterprise_linux:7::workstation | bsdcpio | 0 | 0:3.1.2-10.el7_2 |
| Red Hat:enterprise_linux:7::workstation | bsdtar | 0 | 0:3.1.2-10.el7_2 |
| Red Hat:enterprise_linux:7::workstation | libarchive | 0 | 0:3.1.2-10.el7_2 |
| Red Hat:enterprise_linux:7::workstation | libarchive-debuginfo | 0 | 0:3.1.2-10.el7_2 |
| Red Hat:enterprise_linux:7::workstation | libarchive-devel | 0 | 0:3.1.2-10.el7_2 |
| SUSE:Linux Enterprise Desktop 12 | libarchive | 0 | 3.1.2-12.1 |
| SUSE:Linux Enterprise Desktop 12 SP1 | libarchive | 0 | 3.1.2-12.1 |
| SUSE:Linux Enterprise Server 12 | libarchive | 0 | 3.1.2-12.1 |
| SUSE:Linux Enterprise Server 12 SP1 | libarchive | 0 | 3.1.2-12.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 | libarchive | 0 | 3.1.2-12.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | libarchive | 0 | 3.1.2-12.1 |
| SUSE:Linux Enterprise Software Development Kit 12 | libarchive | 0 | 3.1.2-12.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP1 | libarchive | 0 | 3.1.2-12.1 |
| Ubuntu:14.04:LTS | libarchive | 0 | 3.1.2-7ubuntu2.2 |
| Ubuntu:16.04:LTS | libarchive | 0 | 3.1.2-11ubuntu0.16.04.1 |
| openSUSE:Tumbleweed | bsdtar | 0 | 3.2.2-2.1 |
Related vulnerabilities
- JLSEC-2025-250 libarchive through 3.7.7 has a heap-based buffer over-read in header_gnu_longlink in… Also affects libarchive
- CVE-2024-57970 libarchive through 3.7.7 has a heap-based buffer over-read in header_gnu_longlink in… Also affects libarchive
- CVE-2024-20696 Windows Libarchive Remote Code Execution Vulnerability Also affects libarchive
- CVE-2017-14502 read_header in archive_read_support_format_rar.c in libarchive 3.3.2 suffers from an… Also affects libarchive
- CVE-2016-10209 The archive_wstring_append_from_mbs function in archive_string.c in libarchive 3.2.2… Also affects libarchive
- CVE-2016-5418 The sandboxing code in libarchive 3.2.0 and earlier mishandles hardlink archive entries… Also affects libarchive
- CVE-2015-8921 The ae_strtofflags function in archive_entry.c in libarchive before 3.2.0 allows remote… Also affects libarchive
- CVE-2015-8916 bsdtar in libarchive before 3.2.0 returns a success code without filling the entry when… Also affects libarchive