| Name | CVE-2026-6104 |
| Description | In PHP versions 8.4.* before 8.4.21 and 8.5.* before 8.5.6, when an encoding name containing an embedded NUL byte is passed to mb_convert_encoding() or related mbstring functions, the code incorrectly assumes that when strncasecmp() returns 0 it means the strings have the same length. This can lead to out-of-bounds read of global memory, potentially causing a crash or information disclosure or crash. Affected functions include mb_convert_encoding(), mb_detect_encoding(), mb_convert_variables(), and mb_detect_order(), as well as the mbstring.detect_order and mbstring.http_output INI settings. |
| Source | CVE (at NVD; CERT, ENISA, LWN, oss-sec, fulldisc, Debian ELTS, Red Hat, Ubuntu, Gentoo, SUSE bugzilla/CVE, GitHub advisories/code/issues, web search, more) |
| References | DSA-6256-1 |
| Debian Bugs | 1136054 |
The table below lists information on source packages.
| Source Package | Release | Version | Status |
|---|---|---|---|
| php7.4 (PTS) | bullseye | 7.4.33-1+deb11u5 | fixed |
| bullseye (security) | 7.4.33-1+deb11u11 | fixed | |
| php8.2 (PTS) | bookworm, bookworm (security) | 8.2.31-1~deb12u1 | fixed |
| php8.4 (PTS) | trixie | 8.4.16-1~deb13u1 | vulnerable |
| trixie (security) | 8.4.21-1~deb13u1 | fixed | |
| forky, sid | 8.4.21-1 | fixed |
The information below is based on the following data on fixed versions.
| Package | Type | Release | Fixed Version | Urgency | Origin | Debian Bugs |
|---|---|---|---|---|---|---|
| php7.4 | source | (unstable) | (not affected) | |||
| php8.2 | source | (unstable) | (not affected) | |||
| php8.4 | source | trixie | 8.4.21-1~deb13u1 | DSA-6256-1 | ||
| php8.4 | source | (unstable) | 8.4.21-1 | 1136054 |
- php8.2 <not-affected> (Only affects 8.4 and later)
- php7.4 <not-affected> (Only affects 8.4 and later)
https://github.com/php/php-src/security/advisories/GHSA-74r9-qxhc-fx53
https://github.com/php/php-src/commit/56ee76f82045ab728f3e63e20bf9530621e829cb