[php-src] Issue #24708: Assertion failure in binary operators when an error handler unsets an operand

From: Date: Mon, 26 Oct 2026 00:17:51 +0000
Subject: [php-src] Issue #24708: Assertion failure in binary operators when an error handler unsets an operand
Groups: php.bugs 
Request: Send a blank email to php-bugs+get-253201@lists.php.net to get a copy of this message
Issue: https://github.com/php/php-src/issues/24708 Author: vi3tL0u1s ### Description The following code: ```php <?php set_error_handler(function () { unset($GLOBALS['x']); }); $x = 1; $x & $y; ``` Resulted in this output: ``` php: php-src/Zend/zend_operators.c:463: zendi_try_get_long: Assertion `0' failed. AddressSanitizer:DEADLYSIGNAL ================================================================= ==PID==ERROR: AddressSanitizer: ABRT on unknown address 0x5a2b22cb00131b90 (pc 0x7f89d54279bc bp 0x000000131b90 sp 0x7ffd2a94ea30 T0) #0 0x7f89d54279bc in pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969bc) #1 0x7f89d53d3475 in raise (/lib/x86_64-linux-gnu/libc.so.6+0x42475) #2 0x7f89d53b97f2 in abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f2) #3 0x7f89d53b971a (/lib/x86_64-linux-gnu/libc.so.6+0x2871a) #4 0x7f89d53cae95 in __assert_fail (/lib/x86_64-linux-gnu/libc.so.6+0x39e95) #5 0x55a43aa94bbe in zendi_try_get_long php-src/Zend/zend_operators.c:463 #6 0x55a43aaa0e5d in bitwise_and_function php-src/Zend/zend_operators.c:1894 #7 0x55a43a7f443b in zend_bw_and_helper_SPEC php-src/Zend/zend_vm_execute.h:715 #8 0x55a43a86489c in ZEND_BW_AND_SPEC_TMPVARCV_TMPVARCV_HANDLER php-src/Zend/zend_vm_execute.h:15243 #9 0x55a43a96dbd7 in execute_ex php-src/Zend/zend_vm_execute.h:112535 #10 0x55a43a97b05f in zend_execute php-src/Zend/zend_vm_execute.h:116055 #11 0x55a43aaf429a in zend_execute_script php-src/Zend/zend.c:1986 #12 0x55a43a4e2891 in php_execute_script_ex php-src/main/main.c:2636 #13 0x55a43a4e2dee in php_execute_script php-src/main/main.c:2676 #14 0x55a43aafa06c in do_cli php-src/sapi/cli/php_cli.c:941 #15 0x55a43aafc849 in do_php_cli php-src/sapi/cli/php_cli.c:1354 #16 0x55a43aaf5124 in main php-src/sapi/cli/php_cli_main.c:18 #17 0x7f89d53bad8f (/lib/x86_64-linux-gnu/libc.so.6+0x29d8f) #18 0x7f89d53bae3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e3f) #19 0x55a439406ef4 in _start (php-src/sapi/cli/php+0x606ef4) AddressSanitizer can not provide additional info. SUMMARY: AddressSanitizer: ABRT (/lib/x86_64-linux-gnu/libc.so.6+0x969bc) in pthread_kill ``` To reproduce: ``` ./php-src/sapi/cli/php poc.php ``` Commit: ``` 49b2bc4532ec00859256707ac3771657d2889808 ``` Configurations: ``` CC=gcc CFLAGS="-g -O1 -fsanitize=address -fno-omit-frame-pointer" LDFLAGS="-fsanitize=address" \ ./configure --enable-debug --disable-shared --enable-pic --enable-mbstring --with-zlib --without-iconv ``` This bug was found by EyeQ, [Following Dragons: Code Review-Guided Fuzzing](https://arxiv.org/pdf/2602.10487) (to appear at ICSE 2027). ### PHP Version ```plain PHP 8.7.0-dev (cli) (built: Oct 26 2026 10:28:24) (NTS DEBUG) Copyright © The PHP Group and Contributors Zend Engine v4.7.0-dev, Copyright © Zend by Perforce ``` ### Operating System Ubuntu 22.04

« previous php.bugs (#253201) next »