PHP up to 5.5.13 php_print_info Memory information disclosure

CVSS Meta Temp Score
CVSS is a standardized scoring system to determine possibilities of attacks. The Temp Score considers temporal factors like disclosure, exploit and countermeasures. The unique Meta Score calculates the average score of different sources to provide a normalized scoring system.
Current Exploit Price (≈)
Our analysts are monitoring exploit markets and are in contact with vulnerability brokers. The range indicates the observed or calculated exploit price to be seen on exploit markets. A good indicator to understand the monetary effort required for and the popularity of an attack.
CTI Interest Score
Our Cyber Threat Intelligence team is monitoring different web sites, mailing lists, exploit markets and social media networks. The CTI Interest Score identifies the interest of attackers and the security community for this specific vulnerability in real-time. A high score indicates an elevated risk to be targeted for this vulnerability.
3.4$0-$5k0.00

Summaryinfo

A vulnerability has been found in PHP up to 5.5.13 and classified as problematic. This impacts the function php_print_info. This manipulation causes information disclosure (Memory). This vulnerability is handled as CVE-2014-4721. Additionally, an exploit exists. The affected component should be upgraded.

Detailsinfo

A vulnerability was found in PHP up to 5.5.13 (Programming Language Software). It has been declared as problematic. Affected by this vulnerability is the function php_print_info. The manipulation with an unknown input leads to a information disclosure vulnerability (Memory). The CWE definition for the vulnerability is CWE-200. The product exposes sensitive information to an actor that is not explicitly authorized to have access to that information. As an impact it is known to affect confidentiality.

The weakness was released 07/04/2014 by Stefan Esser (i0n1c) with SektionEins GmbH as phpinfo() Type Confusion Infoleak Vulnerability and SSL Private Keys as confirmed blog post (Website). The advisory is shared at sektioneins.de. The public release happened without involvement of the project team. This vulnerability is known as CVE-2014-4721 since 07/06/2014. The exploitation appears to be difficult. The attack can be launched remotely. The exploitation doesn't need any form of authentication. Technical details and also a public exploit are known. MITRE ATT&CK project uses the attack technique T1592 for this issue. Responsible for the vulnerability is the following code:

php_info_print_table_start();
php_info_print_table_header(2, "Variable", "Value");
if (zend_hash_find(&EG(symbol_table), "PHP_SELF", sizeof("PHP_SELF"), (void **) &data) != FAILURE) {
    php_info_print_table_row(2, "PHP_SELF", Z_STRVAL_PP(data));
}
if (zend_hash_find(&EG(symbol_table), "PHP_AUTH_TYPE", sizeof("PHP_AUTH_TYPE"), (void **) &data) != FAILURE) {
    php_info_print_table_row(2, "PHP_AUTH_TYPE", Z_STRVAL_PP(data));
}
if (zend_hash_find(&EG(symbol_table), "PHP_AUTH_USER", sizeof("PHP_AUTH_USER"), (void **) &data) != FAILURE) {
    php_info_print_table_row(2, "PHP_AUTH_USER", Z_STRVAL_PP(data));
}
if (zend_hash_find(&EG(symbol_table), "PHP_AUTH_PW", sizeof("PHP_AUTH_PW"), (void **) &data) != FAILURE) {
    php_info_print_table_row(2, "PHP_AUTH_PW", Z_STRVAL_PP(data));
}
The advisory points out:
The code above looks up the variables in question in the symbol table and then passes their value to the php_info_print_table_row() function. However it does this without checking first if the variable retrieved is actually a string variable.

A public exploit has been developed by Stefan Esser in PHP and been published immediately after the advisory. It is possible to download the exploit at sektioneins.de. It is declared as proof-of-concept. The vulnerability scanner Nessus provides a plugin with the ID 77032 (CentOS 5 / 6 : php / php53 (CESA-2014:1012)), which helps to determine the existence of the flaw in a target environment. It is assigned to the family CentOS Local Security Checks. The commercial vulnerability scanner Qualys is able to test this issue with plugin 169006 (SUSE Enterprise Linux Security Update for php53 (SUSE-SU-2016:1638-1)). The code used by the exploit is:

$PHP_SELF = 0x55555555;
phpinfo(INFO_VARIABLES);

Upgrading eliminates this vulnerability.

The vulnerability is also documented in the databases at X-Force (94287), Tenable (77032), Secunia (SA59794†) and Vulnerability Center (SBV-45272†). Additional details are provided at bugzilla.redhat.com. Entries connected to this vulnerability are available at VDB-1062, VDB-3695, VDB-4322 and VDB-5786. If you want to get the best quality for vulnerability data then you always have to consider VulDB.

Productinfo

Type

Name

Version

License

Website

CPE 2.3info

CPE 2.2info

CVSSv4info

VulDB Vector: 🔍
VulDB Reliability: 🔍

CVSSv3info

VulDB Meta Base Score: 3.7
VulDB Meta Temp Score: 3.4

VulDB Base Score: 3.7
VulDB Temp Score: 3.4
VulDB Vector: 🔍
VulDB Reliability: 🔍

CVSSv2info

AVACAuCIA
💳💳💳💳💳💳
💳💳💳💳💳💳
💳💳💳💳💳💳
VectorComplexityAuthenticationConfidentialityIntegrityAvailability
UnlockUnlockUnlockUnlockUnlockUnlock
UnlockUnlockUnlockUnlockUnlockUnlock
UnlockUnlockUnlockUnlockUnlockUnlock

VulDB Base Score: 🔍
VulDB Temp Score: 🔍
VulDB Reliability: 🔍

NVD Base Score: 🔍

Exploitinginfo

Name: Memory
Class: Information disclosure / Memory
CWE: CWE-200 / CWE-284 / CWE-266
CAPEC: 🔍
ATT&CK: 🔍

Physical: No
Local: No
Remote: Yes

Availability: 🔍
Access: Public
Status: Proof-of-Concept
Author: Stefan Esser
Programming Language: 🔍
Download: 🔍

EPSS Score: 🔍
EPSS Percentile: 🔍

Price Prediction: 🔍
Current Price Estimation: 🔍

0-DayUnlockUnlockUnlockUnlock
TodayUnlockUnlockUnlockUnlock

Nessus ID: 77032
Nessus Name: CentOS 5 / 6 : php / php53 (CESA-2014:1012)
Nessus File: 🔍
Nessus Risk: 🔍
Nessus Family: 🔍

OpenVAS ID: 702974
OpenVAS Name: Debian Security Advisory DSA 2974-1 (php5 - security update)
OpenVAS File: 🔍
OpenVAS Family: 🔍

Qualys ID: 🔍
Qualys Name: 🔍

Threat Intelligenceinfo

Interest: 🔍
Active Actors: 🔍
Active APT Groups: 🔍

Countermeasuresinfo

Recommended: Upgrade
Status: 🔍

0-Day Time: 🔍
Exploit Delay Time: 🔍

Timelineinfo

07/04/2014 🔍
07/04/2014 +0 days 🔍
07/06/2014 +2 days 🔍
07/06/2014 +0 days 🔍
07/06/2014 +0 days 🔍
07/08/2014 +2 days 🔍
07/09/2014 +1 days 🔍
07/14/2014 +5 days 🔍
02/08/2022 +2766 days 🔍

Sourcesinfo

Product: php.org

Advisory: phpinfo() Type Confusion Infoleak Vulnerability and SSL Private Keys
Researcher: Stefan Esser (i0n1c)
Organization: SektionEins GmbH
Status: Confirmed
Confirmation: 🔍

CVE: CVE-2014-4721 (🔍)
GCVE (CVE): GCVE-0-2014-4721
GCVE (VulDB): GCVE-100-67021

OVAL: 🔍

X-Force: 94287 - PHP php_print_info() information disclosure, Medium Risk
SecurityFocus: 52225
Secunia: 59794 - Debian update for php5, Moderately Critical
Vulnerability Center: 45272 - PHP <5.4.30 and 5.5 before 5.5.14 Remote Information Disclosure via Integer Data Type with Crafted Values, Low

scip Labs: https://www.scip.ch/en/?labs.20161013
Misc.: 🔍
See also: 🔍

Entryinfo

Created: 07/09/2014 18:16
Updated: 02/08/2022 16:04
Changes: 07/09/2014 18:16 (91), 06/01/2017 08:11 (2), 02/08/2022 15:58 (3), 02/08/2022 16:04 (2)
Complete: 🔍
Cache ID: 216::103

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

Discussion

No comments yet. Languages: en.

Please log in to comment.

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!