Description
Multiple integer signedness errors in the printf function family in PHP 4 before 4.4.5 and PHP 5 before 5.2.1 on 64 bit machines allow context-dependent attackers to execute arbitrary code via (1) certain negative argument numbers that arise in the php_formatted_print function because of 64 to 32 bit truncation, and bypass a check for the maximum allowable value; and (2) a width and precision of -1, which make it possible for the php_sprintf_appendstring function to place an internal buffer at an arbitrary memory location.
References
- php-printf-format-string(33755) vdb-entry
- ADV-2007-1991 vdb-entry
- SSRT071423 vendor-advisory
- HPSBTU02232 vendor-advisory
- 33955 vdb-entry
- http://www.php.net/releases/5_2_1.php
- 23219 vdb-entry
- 34767 vdb-entry
- ADV-2007-2374 vdb-entry
- 25423 third-party-advisory
- http://www.php-security.org/MOPB/MOPB-38-2007.html
- 25850 third-party-advisory