[php-src] Issue #18901: integer overflow mb_split
| From: | YuanchengJiang | Date: | Sun, 22 Jun 2025 06:21:35 +0000 |
| Subject: | [php-src] Issue #18901: integer overflow mb_split | ||
| Groups: | php.bugs | ||
| Request: | Send a blank email to php-bugs+get-250298@lists.php.net to get a copy of this message | ||
Issue: https://github.com/php/php-src/issues/18901
Author: YuanchengJiang
### Description
The following code:
```php
<?php
define("MAX_64Bit", 9223372036854775807);
define("MAX_32Bit", 2147483647);
define("MIN_64Bit", -9223372036854775807 - 1);
define("MIN_32Bit", -2147483647 - 1);
$longVals = array(
MAX_64Bit -1, MAX_64Bit + 1, MIN_64Bit + 1, MIN_64Bit - 1
);
$otherVals = array(0, 1, -1, 7, 9, 65, -44, MAX_32Bit, MIN_32Bit, MAX_64Bit, MIN_64Bit);
foreach ($longVals as $longVal) {
foreach($otherVals as $otherVal) {
}
}
$fusion = $otherVal;
try {mb_split($fusion,$fusion,$otherVal);} catch (Exception $e) { echo($e); }
```
Resulted in this output:
```
/home/phpfuzz/WorkSpace/flowfusion/php-src/ext/mbstring/php_mbregex.c:1217:5: runtime error: signed
integer overflow: -9223372036854775808 - 1 cannot be represented in type 'zend_long' (aka
'long')
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior
/home/phpfuzz/WorkSpace/flowfusion/php-src/ext/mbstring/php_mbregex.c:1217:5 in
```
To reproduce:
```
./php-src/sapi/cli/php ./test.php
```
Commit:
```
be70f42de7c9ec0e6158ce9ec9d21f0dac24897f
```
Configurations:
```
CC="clang-12" CXX="clang++-12" CFLAGS="-DZEND_VERIFY_TYPE_INFERENCE"
CXXFLAGS="-DZEND_VERIFY_TYPE_INFERENCE" ./configure --enable-debug
--enable-address-sanitizer --enable-undefined-sanitizer --enable-re2c-cgoto --enable-fpm
--enable-litespeed --enable-phpdbg-debug --enable-zts --enable-bcmath --enable-calendar --enable-dba
--enable-dl-test --enable-exif --enable-ftp --enable-gd --enable-gd-jis-conv --enable-mbstring
--enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvmsg --enable-zend-test
--with-zlib --with-bz2 --with-curl --with-enchant --with-gettext --with-gmp --with-mhash --with-ldap
--with-libedit --with-readline --with-snmp --with-sodium --with-xsl --with-zip --with-mysqli
--with-pdo-mysql --with-pdo-pgsql --with-pgsql --with-sqlite3 --with-pdo-sqlite --with-webp
--with-jpeg --with-freetype --enable-sigchild --with-readline --with-pcre-jit --with-iconv
```
Operating System:
```
Ubuntu 20.04 Host, Docker 0599jiangyc/flowfusion:latest
```
*This report is automatically generated by [FlowFusion](https://github.com/php/flowfusion)*
### PHP Version
```plain
be70f42de7c9ec0e6158ce9ec9d21f0dac24897f
```
### Operating System
_No response_