diff --git a/ext/standard/dir.c b/ext/standard/dir.c index 93f0c386ef0..6c9241e36dc 100644 --- a/ext/standard/dir.c +++ b/ext/standard/dir.c @@ -281,6 +281,9 @@ PHP_FUNCTION(chdir) } convert_to_string_ex(arg); + if (PG(safe_mode) && !php_checkuid((*arg)->value.str.val, NULL, CHECKUID_ALLOW_ONLY_DIR)) { + RETURN_FALSE; + } ret = VCWD_CHDIR((*arg)->value.str.val); if (ret != 0) {