Cloudanix VulnDB

CVE-2014-9912

Critical · 9.8

CVSS

9.8

EPSS

4.9%

Published

Jan 4, 2017

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A programming error in older versions of the PHP language allowed remote attackers to crash or take over web servers by sending specially crafted text that the server tried to display in different languages.

Exploitation
Remote Unauthenticated
Attacker needs
None
Complexity
Low
Impact
Remote Code Execution
Component
Library
Class
Memory Corruption
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

The vulnerability is a buffer overflow in PHP's ICU integration triggered by an overly long first argument to locale_get_display_name, allowing memory corruption that can lead to denial of service or arbitrary code execution.

Why it matters to the business

Unpatched PHP installations remain exposed to remote crashes or code execution that can disrupt web services or enable full server compromise; the issue is decades old with no active exploitation campaigns reported, so immediate business risk is low for updated environments.

How an attack unfolds

An attacker sends an HTTP request that causes a PHP application to invoke locale_get_display_name with a crafted long locale string; the call reaches the vulnerable ICU uresbund.cpp path without length checks, overflowing a buffer and potentially allowing control of execution flow.

How to fix it

Upgrade PHP to versions 5.3.29 or later, 5.4.30 or later, or 5.5.14 or later. Disable the intl extension if locale display name functionality is not required. Apply vendor patches or rebuild PHP with updated ICU libraries.

How to confirm the fix worked

Confirm PHP version is at or above the fixed releases listed in the advisory; test that locale_get_display_name rejects or safely truncates long inputs without crashing; review application code for direct calls to the affected function.

Typical attack path

  1. Identify a web endpoint or script that calls locale_get_display_name or related intl functions
  2. Craft a request containing an excessively long first argument to the function
  3. Trigger the buffer overflow to crash the process or attempt code execution
  4. If code execution succeeds, establish persistence or move laterally within the server

How to detect it

Search web server and PHP error logs for segmentation faults or buffer overflow crashes occurring during calls involving locale or intl functions; look for unusually long locale strings in application request logs.

What your security team should do

  • Immediately inventory all PHP deployments and prioritize upgrades for internet-facing systems
  • Disable the intl extension where feasible until patches are applied
  • Monitor for any new exploit code targeting this memory corruption path
  • Add the affected function to application security testing suites

The record

The get_icu_disp_value_src_php function in ext/intl/locale/locale_methods.c in PHP before 5.3.29, 5.4.x before 5.4.30, and 5.5.x before 5.5.14 does not properly restrict calls to the ICU uresbund.cpp component, which allows remote attackers to cause a denial of service (buffer overflow) or possibly have unspecified other impact via a locale_get_display_name call with a long first argument.

Affected packages

Ecosystem Package Introduced Fixed
SUSE:Linux Enterprise Server 11 SP4 php53 0 5.3.17-94.1
SUSE:Linux Enterprise Server for SAP Applications 11 SP4 php53 0 5.3.17-94.1
SUSE:Linux Enterprise Software Development Kit 11 SP4 php53 0 5.3.17-94.1
Ubuntu:14.04:LTS php5 0 5.5.9+dfsg-1ubuntu4.21

Related vulnerabilities