Bug #75934 [Com]: Out of Bound in sodium_pad

From: Date: Sat, 28 Apr 2018 14:13:43 +0000
Subject: Bug #75934 [Com]: Out of Bound in sodium_pad
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-214966@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=75934&edit=1 ID: 75934 Comment by: jedisct1@php.net Reported by: zhihua dot yao at dbappsecurity dot com dot cn Summary: Out of Bound in sodium_pad Status: Assigned Type: Bug Package: Reproducible crash PHP Version: 7.2.2 Assigned To: jedisct1 Block user comment: N Private report: N New Comment: zend_string_alloc() is broken due to the absence of overflow check before rounding; if the requested length is >= SIZE_MAX-16, it allocates either 0 or 16 bytes, and returns a valid pointer instead of an OOM. Previous Comments: ------------------------------------------------------------------------ [2018-04-28 00:52:09] zhihua dot yao at dbappsecurity dot com dot cn However, I was using the latest version. When I compiled the sodium, this poc would cause a crash.Maybe it has been fixed? ------------------------------------------------------------------------ [2018-04-27 14:34:31] jedisct1@php.net Weird, the memory allocation should have failed. There are no ways to allocate close to 4 Gb on Linux/i386. Tried on a Linux system and the memory allocation failed as expected. Where did you find a PHP 7 binary for such an old distribution? ------------------------------------------------------------------------ [2018-04-27 14:26:59] zhihua dot yao at dbappsecurity dot com dot cn Yes,Ubuntu 14.04 x86 ------------------------------------------------------------------------ [2018-04-27 13:43:14] jedisct1@php.net What system is that on? Is it a 32 bit system? ------------------------------------------------------------------------ [2018-04-27 12:05:17] cmb@php.net On a quick glance, the check blocksize > SIZE_MAX[1] looks fishy. Frank, could you please have a look at this issue? [1] <https://github.com/php/php-src/blob/PHP-7.2.2/ext/sodium/libsodium.c#L3386> ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at https://bugs.php.net/bug.php?id=75934 -- Edit this bug report at https://bugs.php.net/bug.php?id=75934&edit=1

« previous php.bugs (#214966) next »