CVE-2025-25724
NoneCVSS
—
EPSS
0.4%
Published
Mar 2, 2025
CISA due date
—
Cloudanix analysis
A flaw in handling certain archive files can make software crash or behave unexpectedly when it tries to list contents from a specially made file.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Moderate
- Impact
- Denial Of Service
- Component
- Library
- Class
- Improper Input Validation
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The list_item_verbose function in tar/util.c fails to check the return value of strftime, allowing a crafted TAR archive processed at verbose level 2 to produce output exceeding the 100-byte buffer in custom locales and trigger denial of service or other unspecified effects.
Why it matters to the business
Applications relying on libarchive for TAR handling can be disrupted by specially crafted archive files, causing service outages or unpredictable behavior during file operations.
How an attack unfolds
An attacker prepares a TAR archive containing locale-specific timestamp data that forces strftime to return a long string when verbose processing is enabled at level 2; the missing return-value check then allows the buffer overflow or crash condition to manifest during archive listing.
How to fix it
Upgrade libarchive past version 3.7.7 and ensure strftime return values are validated before use in tar/util.c; rebuild dependent applications against the patched library.
How to confirm the fix worked
Compile and run unit tests that feed verbose-level-2 TAR archives with long locale strings, then confirm no buffer overruns or crashes occur and that strftime return values are explicitly checked.
Typical attack path
- Craft a TAR archive that triggers excessive strftime output under verbose level 2
- Deliver the archive to a target process that calls list_item_verbose
- Trigger archive reading to invoke the unchecked strftime path
- Observe denial of service or secondary impact from buffer mishandling
How to detect it
Inspect application and system logs for segmentation faults or abnormal exits during TAR extraction with verbose output enabled; correlate crashes with receipt of external archive files.
What your security team should do
- Prioritize updating all instances of libarchive to a fixed release
- Add input-size and locale checks around verbose TAR processing in custom code
- Review application logs for crashes during archive extraction
The record
list_item_verbose in tar/util.c in libarchive through 3.7.7 does not check an strftime return value, which can lead to a denial of service or unspecified other impact via a crafted TAR archive that is read with a verbose value of 2. For example, the 100-byte buffer may not be sufficient for a custom locale.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| AlmaLinux:10 | bsdtar | 0 | 3.7.7-3.el10_0 |
| AlmaLinux:10 | libarchive | 0 | 3.7.7-3.el10_0 |
| AlmaLinux:10 | libarchive-devel | 0 | 3.7.7-3.el10_0 |
| AlmaLinux:9 | bsdtar | 0 | 3.5.3-5.el9_6 |
| AlmaLinux:9 | libarchive | 0 | 3.5.3-5.el9_6 |
| AlmaLinux:9 | libarchive-devel | 0 | 3.5.3-5.el9_6 |
| Alpine:v3.18 | libarchive | 0 | 3.7.9-r0 |
| Alpine:v3.19 | libarchive | 0 | 3.7.9-r0 |
| Alpine:v3.20 | libarchive | 0 | 3.7.9-r0 |
| Alpine:v3.21 | libarchive | 0 | 3.7.9-r0 |
| Alpine:v3.22 | libarchive | 0 | 3.7.9-r0 |
| Chainguard | libarchive | 0 | 3.7.7-r2 |
| Chainguard | libarchive-dev | 0 | 3.7.7-r2 |
| Chainguard | libarchive-doc | 0 | 3.7.7-r2 |
| Chainguard | libarchive-tools | 0 | 3.7.7-r2 |
| Debian:11 | libarchive | 0 | No fix |
| Debian:12 | libarchive | 0 | No fix |
| Debian:13 | libarchive | 0 | No fix |
| Debian:13 | libarchive | 0 | 3.7.4-3 |
| Mageia:9 | libarchive | 0 | 3.6.2-5.4.mga9 |
| SUSE:Linux Enterprise Micro 5.3 | libarchive | 0 | 3.5.1-150400.3.18.1 |
| SUSE:Linux Enterprise Micro 5.4 | libarchive | 0 | 3.5.1-150400.3.18.1 |
| SUSE:Linux Enterprise Micro 5.5 | libarchive | 0 | 3.5.1-150400.3.18.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP6 | libarchive | 0 | 3.7.2-150600.3.12.1 |
| SUSE:Linux Enterprise Module for Development Tools 15 SP6 | libarchive | 0 | 3.7.2-150600.3.12.1 |
| Wolfi | libarchive | 0 | 3.7.7-r2 |
| Wolfi | libarchive-dev | 0 | 3.7.7-r2 |
| Wolfi | libarchive-doc | 0 | 3.7.7-r2 |
| Wolfi | libarchive-tools | 0 | 3.7.7-r2 |
| openSUSE:Leap 15.6 | libarchive | 0 | 3.7.2-150600.3.12.1 |
| openSUSE:Tumbleweed | libarchive | 0 | 3.7.7-3.1 |
Related vulnerabilities
- CVE-2025-5914 A vulnerability has been identified in the libarchive library, specifically within the… Also affects bsdtar
- CVE-2024-57970 libarchive through 3.7.7 has a heap-based buffer over-read in header_gnu_longlink in… Also affects bsdtar
- JLSEC-2025-250 libarchive through 3.7.7 has a heap-based buffer over-read in header_gnu_longlink in… Also affects libarchive
- CVE-2025-1632 A vulnerability was found in libarchive up to 3.7.7. Also affects libarchive
- CVE-2024-20696 Windows Libarchive Remote Code Execution Vulnerability Also affects libarchive
- CVE-2024-48958 execute_filter_delta in archive_read_support_format_rar.c in libarchive before 3.7.5… Also affects libarchive
- CVE-2024-48957 execute_filter_audio in archive_read_support_format_rar.c in libarchive before 3.7.5… Also affects libarchive
- CVE-2024-20697 Windows Libarchive Remote Code Execution Vulnerability Also affects libarchive