PHP 5.3.7+ issue is_a function

2011.11.11
Risk: High
Local: No
Remote: Yes
CWE: CWE-94


CVSS Base Score: 7.5/10
Impact Subscore: 6.4/10
Exploitability Subscore: 10/10
Exploit range: Remote
Attack complexity: Low
Authentication: No required
Confidentiality impact: Partial
Integrity impact: Partial
Availability impact: Partial

PHP 5.3.7 changed the behavior of the is_a() function, used to check if an object is an instance of a class, to call the __autoload() function. This causes a remote code execute problem when coupled with a standard library like PEAR that internally uses is_a to check if a returned variable is an Error object or not. An unprotected __autoload() function that blindly includes based upon the variable it receives can be tricked into including a remote file by, for example, uploading a specially crafted file containing a link to a remote website. Full explanation + code example has been posted on our website at http://www.byte.nl/blog/2011/09/23/security-bug-in-is_a-function-in-php- 5-3-7-5-3-8/ and has been e-mailed to security (at) php (dot) net [email concealed] -- Cipriano Groenendal

References:

https://bugzilla.redhat.com/show_bug.cgi?id=741020
http://svn.php.net/viewvc/?view=revision&revision=317183
https://bugs.php.net/bug.php?id=55475
http://www.securityfocus.com/archive/1/519770/30/0/threaded
http://www.byte.nl/blog/2011/09/23/security-bug-in-is_a-function-in-php-5-3-7-5-3-8/


Vote for this issue:
50%
50%


 

Thanks for you vote!


 

Thanks for you comment!
Your message is in quarantine 48 hours.

Comment it here.


(*) - required fields.  
{{ x.nick }} | Date: {{ x.ux * 1000 | date:'yyyy-MM-dd' }} {{ x.ux * 1000 | date:'HH:mm' }} CET+1
{{ x.comment }}

Copyright 2017, cxsecurity.com

 

Back to Top