Skip to content

Commit ff8055f

Browse files
committed
- Disallow illegal class names
1 parent 6c1c64c commit ff8055f

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

ext/standard/var_unserializer.re

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -473,7 +473,7 @@ PHPAPI int php_var_unserialize(UNSERIALIZE_PARAMETER)
473473
}
474474
475475
"O:" uiv ":" ["] {
476-
size_t len, len2, maxlen;
476+
size_t len, len2, len3, maxlen;
477477
int elements;
478478
char *class_name;
479479
zend_class_entry *ce;
@@ -506,6 +506,13 @@ PHPAPI int php_var_unserialize(UNSERIALIZE_PARAMETER)
506506
return 0;
507507
}
508508
509+
len3 = strspn(class_name, "0123456789_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ");
510+
if (len3 != len)
511+
{
512+
*p = YYCURSOR + len3 - len;
513+
return 0;
514+
}
515+
509516
class_name = estrndup(class_name, len);
510517
511518
do {

0 commit comments

Comments
 (0)