[GIT-PULLS] [php-src] PR #22924: ext/session: check the created ID before validating it

[email protected] (iliaal) Wed, 29 Jul 2026 18:01:02 +0000
Newsgroups php.git-pulls
Message-ID <[email protected]>
Pull Request: https://github.com/php/php-src/pull/22924
Author: iliaal

`session_create_id()` hands the return value of `s_create_sid()` straight to `s_validate_sid()`. A userland `create_sid()` that throws makes ps_create_sid_user() return NULL, and ps_validate_sid_user() then reaches `ZVAL_STR_COPY()` with a NULL key.

Reproducer is a SessionHandler subclass whose create_sid() throws on its second call, with validateId() defined, then session_create_id() on an active session: SIGSEGV on 8.4, 8.5 and master. The four other s_create_sid() call sites, in php_session_initialize() and session_regenerate_id(), already test for NULL; #22580 covers the remaining one in SessionHandler::create_sid().