CVE-2026-102514: Out-of-bounds write in PeaZip PEA extractor allows code execution via a crafted .pea archive
Out-of-bounds Write (CWE-787) in the PEA archive extraction routine (pea.pas, unpeaprocedure) of the first-party pea component in PeaZip 11.2.0 and earlier allows an attacker who convinces a victim to open or extract a crafted .pea archive to execute arbitrary code as the user running PeaZip. While decompressing a PCOMPRESS1 stream, the 32-bit compressed-block-size field of the first block (compsize) is read directly from the archive and used without validation as the length of a blockread into the fixed-size global buffers wbuf1/wbuf2 (1,114,112 bytes) and as the bound of the subsequent copy loop. The existing check "compsize > WBUFSIZE" is applied only to the size of each following block, so the first block escapes it; the same unvalidated value is also used to index wbuf1[compsize], an out-of-bounds read at an attacker-chosen offset. The copy loop additionally copies the requested length instead of the number of bytes actually read, and terminates on equality rather than on an upper bound. Because the project is built without range checking and no archive password, integrity tag or non-default configuration is required, the overflow overwrites adjacent global data; code execution was demonstrated by two independent researchers against the official Linux x86-64 and Windows x64 builds, and the denial-of-service and memory-corruption primitive is cross-platform (Windows, macOS, Linux, BSD).
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
PeaZipto a version that resolves this vulnerability.Fixed in 11.3.0
Event History
Frequently Asked Questions
Who is exposed to exploitation?
Users of PeaZip 11.2.0 and earlier are exposed when they open or extract an attacker-crafted .pea archive containing a PCOMPRESS1 stream. Successful exploitation executes code with the privileges of the user running PeaZip.
Does exploitation require a password, integrity bypass, or non-default configuration?
No. The issue does not require an archive password, an integrity tag, or a non-default configuration.
What must an attacker do to trigger the vulnerability?
An attacker must convince a victim to open or extract a crafted .pea archive. The crafted archive supplies an unvalidated first compressed-block size that exceeds the fixed-size extraction buffers.
How can I tell whether a system may be affected?
Systems running PeaZip 11.2.0 or earlier may be affected. Exposure depends on whether a user opens or extracts untrusted .pea archives, particularly archives using PCOMPRESS1 compression.