CVE-2014-9911
Critical · 9.8CVSS
9.8
EPSS
5.6%
Published
Jan 4, 2017
CISA due date
—
Cloudanix analysis
A common library used for handling international text has a flaw that lets attackers remotely crash or take control of affected programs by sending specially crafted text.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Full Compromise
- Component
- Library
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Stack-based buffer overflow in ures_getByKeyWithFallback triggered by malformed input to uloc_getDisplayName, enabling memory corruption that can lead to denial of service or arbitrary code execution.
Why it matters to the business
Applications relying on ICU for text and locale processing face risk of crashes, unauthorized code execution, or full system compromise, potentially disrupting services and exposing sensitive data across internationalized software ecosystems.
How an attack unfolds
An attacker identifies a target application using a vulnerable ICU version and supplies a crafted locale string via uloc_getDisplayName, overflowing the stack buffer in ures_getByKeyWithFallback to corrupt memory and achieve code execution or denial of service.
How to fix it
Upgrade International Components for Unicode (ICU) to version 54.1 or later; rebuild and redeploy dependent applications after the update.
How to confirm the fix worked
Verify ICU library version is 54.1 or higher via package managers or build manifests; recompile applications and test locale display functions with boundary inputs to confirm absence of overflow behavior.
Typical attack path
- Scan for services or libraries exposing ICU locale functions
- Craft and deliver malicious input to uloc_getDisplayName
- Trigger stack overflow in ures_getByKeyWithFallback
- Leverage memory corruption for code execution or crash
How to detect it
Review application logs for unexpected crashes or errors during locale name processing; examine process memory dumps for signs of stack corruption around ICU locale functions; correlate with network traffic containing unusual locale strings.
What your security team should do
- Prioritize upgrade of ICU across all affected products due to high CVSS and remote exploitability
- Inventory applications and dependencies using ICU to identify exposure
- Implement input validation or sandboxing around locale handling until patches are applied
- Monitor for memory corruption indicators in application logs
The record
Stack-based buffer overflow in the ures_getByKeyWithFallback function in common/uresbund.cpp in International Components for Unicode (ICU) before 54.1 for C/C++ allows remote attackers to cause a denial of service or possibly have unspecified other impact via a crafted uloc_getDisplayName call.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:11 | icu | 0 | 55.1-3 |
| Debian:12 | icu | 0 | 55.1-3 |
| Debian:13 | icu | 0 | 55.1-3 |
| Debian:7 | icu | 0 | 4.8.1.1-12+deb7u6 |
| Debian:8 | icu | 0 | 52.1-8+deb8u4 |
| Mageia:5 | icu | 0 | 53.1-12.6.mga5 |
| SUSE:Linux Enterprise Server 11 SP4 | icu | 0 | 4.0-47.3.2 |
| SUSE:Linux Enterprise Server 11 SP4 | icu | 0 | 4.0-43.1 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | icu | 0 | 4.0-47.3.2 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | icu | 0 | 4.0-43.1 |
| SUSE:Linux Enterprise Software Development Kit 11 SP4 | icu | 0 | 4.0-47.3.2 |
| SUSE:Linux Enterprise Software Development Kit 11 SP4 | icu | 0 | 4.0-43.1 |
| Ubuntu:14.04:LTS | firefox | 0 | 50.1.0+build2-0ubuntu0.14.04.1 |
| Ubuntu:14.04:LTS | icu | 0 | 52.1-3ubuntu0.5 |
| Ubuntu:14.04:LTS | oxide-qt | 0 | 1.17.9-0ubuntu0.14.04.1 |
| Ubuntu:14.04:LTS | thunderbird | 0 | 1:45.3.0+build1-0ubuntu0.14.04.4 |
| Ubuntu:16.04:LTS | android | 0 | No fix |
| Ubuntu:16.04:LTS | firefox | 0 | 50.1.0+build2-0ubuntu0.16.04.1 |
| Ubuntu:16.04:LTS | icu | 0 | 55.1-7 |
| Ubuntu:16.04:LTS | icu | 0 | 55.1-7ubuntu0.1 |
| Ubuntu:16.04:LTS | mozjs24 | 0 | No fix |
| Ubuntu:16.04:LTS | oxide-qt | 0 | 1.17.9-0ubuntu0.16.04.1 |
| Ubuntu:16.04:LTS | thunderbird | 0 | 1:45.3.0+build1-0ubuntu0.16.04.2 |
| Ubuntu:Pro:16.04:LTS | android | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | mozjs24 | 0 | No fix |
Related vulnerabilities
- CVE-2017-14952 Double free in i18n/zonemeta.cpp in International Components for Unicode (ICU) for C/C++… Also affects icu
- CVE-2017-7867 International Components for Unicode (ICU) for C/C++ before 2017-02-13 has an… Also affects icu
- CVE-2015-1270 The ucnv_io_getConverterName function in common/ucnv_io.cpp in International Components… Also affects icu
- CVE-2014-8147 The resolveImplicitLevels function in common/ubidi.c in the Unicode Bidirectional… Also affects icu
- CVE-2014-8146 The resolveImplicitLevels function in common/ubidi.c in the Unicode Bidirectional… Also affects icu
- CVE-2014-7923 The Regular Expressions package in International Components for Unicode (ICU) 52 before… Also affects icu
- CVE-2013-1569 Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java… Also affects icu
- CVE-2013-2419 Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java… Also affects icu