The convert.base64-encode, convert.quoted-printable-encode and convert.quoted-printable-decode stream filters accept a line-break-chars option whose length is tracked separately from the string itself. The filter constructors duplicate the value with pestrdup(), which stops at the first NUL byte, while keeping the original length. When the filter later emits a line break it copies the recorded length out of the truncated allocation, reading past its end and placing adjacent heap bytes into the filter output.
Fix
Patch, vendor advisory and mitigation references on NVD 1
- https://github.com/php/php-src/security/advisories/GHSA-88hq-2827-7pg6 Vendor Advisory, Exploit
Every line above is quoted from NVD, CISA, Microsoft, the vendor's own advisory or DISA; nothing is generated.
Change history 1
- First seenCVSS 5.9 · phpNVD modified 2026-10-27 15:33
Affected (CPE criteria) 1
cpe:2.3:a:php:php:*:*:*:*:*:*:*:*
References 1
- https://github.com/php/php-src/security/advisories/GHSA-88hq-2827-7pg6 Vendor Advisory, Exploit