Attacks/Breaches
9/11/2013
10:37 PM
Connect Directly
Twitter
Twitter
RSS
E-Mail
50%
50%

Are PHP SuperGlobal Parameters Really That Big A Deal?

New report shows potential for PHP exploits, but others in the industry say patching PHP servers is the issue, not faulty parameters

A new report out this week (PDF) from Imperva detailing the potential danger for attacks through vulnerable PHP SuperGlobal parameters suggests that organizations running PHP servers should ditch the use of these variables in application requests. But while other security experts agree that PHP security must be addressed to prevent serious breaches, they argue that the real problem is in server patching practices rather than the use of SuperGlobal variables.

"PHP is definitely a vulnerable language when not implemented correctly, and unfortunately, most Web programmers don't truly understand the vulnerabilities or attack vectors associated with them," says Joshua Crumbaugh, lead penetration tester at IT Cyber Security.

Released on Monday, the report chronicled the attack methods that Imperva researchers observed across a sample of 24 applications containing attack vectors related to SuperGlobal variables, noting that they identified 144 related attacks per application within a month, with some attack campaigns lasting over the course of five months. In particular, the report showed how attackers are commonly able to chain together multiple low-impact vulnerabilities related to SuperGlobal in order to achieve variable manipulation, security filter evasion, and arbitrary code execution.

[Is IPS in it for the long haul? See The Future of IPS.]

"One of the key lessons for enterprises is that they should defend themselves even against what seems to be in the beginning a really not-so-important vulnerability because when it is chained with other not-so-important vulnerabilities, together they can create a really powerful exploit," says Tal Be'ery, leader of Imperva's Web research team.

According to Be'ery, while PHP security has generally improved during the past few years, it's not getting better fast enough, particularly for a language that by his firm's estimates powers more than 80 percent of the Web. While most security experts would agree with that sentiment, some are taking issue with Be'ery's and Imperva's public push against SuperGlobal.

"Instead of calling to remove SuperGlobals, it might be better to call on people to update their PHP," says Serge Batchilo, a security researcher for Security Innovation. "The vulnerabilities at the root of this wave of attacks are CVE-2010-3065 and CVE-2011-2505, which means they have been assigned CVE identifiers in 2010 and 2011, respectively, and are almost certainly patched in PHP versions for the past couple of years."

Batchilo accused Imperva of drumming up controversy with what he calls an "essentially trivial finding," explaining that the best way to improve PHP security is through more timely patching.

"Removing SuperGlobals would break a lot of PHP applications and is not likely to happen in the short term, while installing patches that have been available for years is a simple and effective solution that can be easily implemented in the short term," Batchilo says. "When a patched vulnerability is being exploited, it is common sense to install the patch. It's even better just to update servers periodically as a preventative measure."

Crumbaugh agrees, reiterating that the No. 1 recommendation he has for those administering PHP applications is to keep those applications and the system upgraded.

"Unless there are some serious flaws in the implementation of your software or gigantic configuration errors, it's rare that I can break into a server with fully patched software and services," he says, explaining that he frequently exploits out-of-date PHP systems in his penetration tests, and noting that he frequently runs into companies that take years to update critical vulnerabilities. "Keep everything up to date, and you'll increase your security posture."

Have a comment on this story? Please click "Add Your Comment" below. If you'd like to contact Dark Reading's editors directly, send us a message.

Ericka Chickowski specializes in coverage of information technology and business innovation. She has focused on information security for the better part of a decade and regularly writes about the security industry as a contributor to Dark Reading.  View Full Bio

Comment  | 
Print  | 
More Insights
Comments
Newest First  |  Oldest First  |  Threaded View
anon8998837805
50%
50%
anon8998837805,
User Rank: Apprentice
9/13/2013 | 3:33:36 PM
re: Are PHP SuperGlobal Parameters Really That Big A Deal?
To prevent similar vulnerabilities during development, avoid using the PHP parse_str() function with untrusted data.
anon8998837805
50%
50%
anon8998837805,
User Rank: Apprentice
9/13/2013 | 3:26:01 PM
re: Are PHP SuperGlobal Parameters Really That Big A Deal?
To be clear, CVE-2011-2505 is a vuln in phpMyAdmin, but the idea is the same - install patches. -Serge
Register for Dark Reading Newsletters
White Papers
Cartoon
Current Issue
Dark Reading Must Reads - September 25, 2014
Dark Reading's new Must Reads is a compendium of our best recent coverage of identity and access management. Learn about access control in the age of HTML5, how to improve authentication, why Active Directory is dead, and more.
Flash Poll
Video
Slideshows
Twitter Feed
Dark Reading - Bug Report
Bug Report
Enterprise Vulnerabilities
From DHS/US-CERT's National Vulnerability Database
CVE-2003-1598
Published: 2014-10-01
SQL injection vulnerability in log.header.php in WordPress 0.7 and earlier allows remote attackers to execute arbitrary SQL commands via the posts variable.

CVE-2011-4624
Published: 2014-10-01
Cross-site scripting (XSS) vulnerability in facebook.php in the GRAND FlAGallery plugin (flash-album-gallery) before 1.57 for WordPress allows remote attackers to inject arbitrary web script or HTML via the i parameter.

CVE-2012-0811
Published: 2014-10-01
Multiple SQL injection vulnerabilities in Postfix Admin (aka postfixadmin) before 2.3.5 allow remote authenticated users to execute arbitrary SQL commands via (1) the pw parameter to the pacrypt function, when mysql_encrypt is configured, or (2) unspecified vectors that are used in backup files gene...

CVE-2012-5485
Published: 2014-09-30
registerConfiglet.py in Plone before 4.2.3 and 4.3 before beta 1 allows remote attackers to execute Python code via unspecified vectors, related to the admin interface.

CVE-2012-5486
Published: 2014-09-30
ZPublisher.HTTPRequest._scrubHeader in Zope 2 before 2.13.19, as used in Plone before 4.3 beta 1, allows remote attackers to inject arbitrary HTTP headers via a linefeed (LF) character.

Best of the Web
Dark Reading Radio
Archived Dark Reading Radio
Chris Hadnagy, who hosts the annual Social Engineering Capture the Flag Contest at DEF CON, will discuss the latest trends attackers are using.