From 7d332f3d4809230c00866498da0ec085ead3edd4 Mon Sep 17 00:00:00 2001 From: lazerg Date: Thu, 22 Oct 2026 09:29:41 +0500 Subject: [PATCH] Fix GH-24523: UAF in zend_test_compile_to_ast() on parse error --- ext/zend_test/test.c | 3 +++ ext/zend_test/tests/gh24523.phpt | 16 ++++++++++++++++ 2 files changed, 19 insertions(+) create mode 100644 ext/zend_test/tests/gh24523.phpt diff --git a/ext/zend_test/test.c b/ext/zend_test/test.c index 400a2413a8ae..355e76289a07 100644 --- a/ext/zend_test/test.c +++ b/ext/zend_test/test.c @@ -1976,6 +1976,9 @@ static PHP_FUNCTION(zend_test_compile_to_ast) zend_arena *ast_arena; zend_ast *ast = zend_compile_string_to_ast(str, &ast_arena, ZSTR_EMPTY_ALLOC()); + if (!ast) { + RETURN_THROWS(); + } zend_string *result = zend_ast_export("", ast, ""); diff --git a/ext/zend_test/tests/gh24523.phpt b/ext/zend_test/tests/gh24523.phpt new file mode 100644 index 000000000000..633e88baec17 --- /dev/null +++ b/ext/zend_test/tests/gh24523.phpt @@ -0,0 +1,16 @@ +--TEST-- +GH-24523 (UAF in zend_test_compile_to_ast() on parse error) +--EXTENSIONS-- +zend_test +--FILE-- +getMessage(), "\n"; +} + +?> +--EXPECT-- +Unclosed '('