CVE-2014-8146
NoneCVSS
—
EPSS
24.7%
Published
May 25, 2015
CISA due date
—
Cloudanix analysis
A flaw in text handling software lets attackers send specially made text that can crash programs or take control of affected devices and services.
- 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
Heap-based buffer overflow in resolveImplicitLevels due to improper tracking of directionally isolated text in the Unicode Bidirectional Algorithm, enabling memory corruption that can lead to denial of service or arbitrary code execution.
Why it matters to the business
Applications processing untrusted text can crash or be fully compromised, leading to service outages, data breaches, or unauthorized access across systems relying on affected Unicode libraries; widespread use in operating systems and apps increases operational risk.
How an attack unfolds
An attacker crafts malicious Unicode text that triggers the flawed bidirectional resolution logic, sends it to a vulnerable application or service, and causes the heap overflow to corrupt memory, either crashing the process or hijacking control flow for code execution.
How to fix it
Upgrade ICU4C to version 55.1 or later; rebuild and redeploy dependent applications and operating system components; apply vendor patches for affected products such as Apple platforms where available.
How to confirm the fix worked
Verify ICU version is 55.1 or newer in affected libraries; perform regression testing with bidirectional text samples; monitor for absence of crashes or memory errors under crafted input.
Typical attack path
- Locate a target application or service that processes untrusted text using a vulnerable ICU library
- Generate crafted Unicode input exploiting directionally isolated text handling
- Deliver the malicious text via network, file, or user input vector
- Trigger the resolveImplicitLevels function to induce heap overflow
- Achieve denial of service or execute arbitrary code in the process context
How to detect it
Search application and system logs for crashes or segmentation faults in processes using ICU during text processing; inspect for unexpected memory corruption indicators in crash dumps; correlate with inbound crafted Unicode content.
What your security team should do
- Immediately inventory and update all instances of ICU to 55.1+ across environments
- Prioritize patching for internet-facing services and high-value assets due to public exploit availability
- Implement input validation and sandboxing for text processing where upgrades are delayed
- Review and test dependent products including Apple ecosystem components
The record
The resolveImplicitLevels function in common/ubidi.c in the Unicode Bidirectional Algorithm implementation in ICU4C in International Components for Unicode (ICU) before 55.1 does not properly track directionally isolated pieces of text, which allows remote attackers to cause a denial of service (heap-based buffer overflow) or possibly execute arbitrary code via crafted text.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:11 | icu | 0 | 52.1-9 |
| Debian:12 | icu | 0 | 52.1-9 |
| Debian:13 | icu | 0 | 52.1-9 |
| Debian:7 | icu | 0 | 4.8.1.1-12+deb7u3 |
| Debian:8 | icu | 0 | 52.1-8+deb8u2 |
| Mageia:4 | icu | 0 | 52.1-2.4.mga4 |
| SUSE:Enterprise Storage 4 | icu | 0 | 52.1-8.7.1 |
| SUSE:Linux Enterprise Desktop 11 SP4 | google-carlito-fonts | 0 | 1.1.03.beta1-2.1 |
| SUSE:Linux Enterprise Desktop 11 SP4 | hyphen | 0 | 2.8.8-2.1 |
| SUSE:Linux Enterprise Desktop 11 SP4 | libreoffice | 0 | 5.0.4.2-23.1 |
| SUSE:Linux Enterprise Desktop 11 SP4 | libreoffice-share-linker | 0 | 1-2.1 |
| SUSE:Linux Enterprise Desktop 11 SP4 | libreoffice-voikko | 0 | 4.1-2.26 |
| SUSE:Linux Enterprise Desktop 11 SP4 | libvoikko | 0 | 3.7.1-5.2 |
| SUSE:Linux Enterprise Desktop 11 SP4 | myspell-dictionaries | 0 | 20150827-23.1 |
| SUSE:Linux Enterprise Desktop 11 SP4 | mythes | 0 | 1.2.4-2.1 |
| SUSE:Linux Enterprise Desktop 11 SP4 | python-importlib | 0 | 1.0.2-0.8.1 |
| SUSE:Linux Enterprise Desktop 12 | apache-commons-logging | 0 | 1.1.3-7.1 |
| SUSE:Linux Enterprise Desktop 12 | cmis-client | 0 | 0.5.0-5.1 |
| SUSE:Linux Enterprise Desktop 12 | flute | 0 | 1.3.0-4.2 |
| SUSE:Linux Enterprise Desktop 12 | graphite2 | 0 | 1.3.1-3.1 |
| SUSE:Linux Enterprise Desktop 12 | hyphen | 0 | 2.8.8-9.1 |
| SUSE:Linux Enterprise Desktop 12 | libabw | 0 | 0.1.1-5.3 |
| SUSE:Linux Enterprise Desktop 12 | libbase | 0 | 1.1.3-4.3 |
| SUSE:Linux Enterprise Desktop 12 | libcdr | 0 | 0.1.1-5.3 |
| SUSE:Linux Enterprise Desktop 12 | libe-book | 0 | 0.1.2-4.2 |
| SUSE:Linux Enterprise Desktop 12 | libetonyek | 0 | 0.1.3-3.5 |
| SUSE:Linux Enterprise Desktop 12 | libfonts | 0 | 1.1.3-4.9 |
| SUSE:Linux Enterprise Desktop 12 | libformula | 0 | 1.1.3-4.3 |
| SUSE:Linux Enterprise Desktop 12 | libfreehand | 0 | 0.1.1-4.9 |
| SUSE:Linux Enterprise Desktop 12 | libgltf | 0 | 0.0.1-2.1 |
| SUSE:Linux Enterprise Desktop 12 | libixion | 0 | 0.9.1-3.1 |
| SUSE:Linux Enterprise Desktop 12 | liblangtag | 0 | 0.5.7-3.1 |
| SUSE:Linux Enterprise Desktop 12 | liblayout | 0 | 0.2.10-4.8 |
| SUSE:Linux Enterprise Desktop 12 | libloader | 0 | 1.1.3-3.2 |
| SUSE:Linux Enterprise Desktop 12 | libmspub | 0 | 0.1.2-5.1 |
| SUSE:Linux Enterprise Desktop 12 | libmwaw | 0 | 0.3.6-3.3 |
| SUSE:Linux Enterprise Desktop 12 | libodfgen | 0 | 0.1.4-3.9 |
| SUSE:Linux Enterprise Desktop 12 | liborcus | 0 | 0.7.1-3.1 |
| SUSE:Linux Enterprise Desktop 12 | libpagemaker | 0 | 0.0.2-2.3 |
| SUSE:Linux Enterprise Desktop 12 | libreoffice | 0 | 5.0.2.2-13.14 |
| SUSE:Linux Enterprise Desktop 12 | libreoffice-share-linker | 0 | 1-2.1 |
| SUSE:Linux Enterprise Desktop 12 | libreoffice-voikko | 0 | 4.1-6.3 |
| SUSE:Linux Enterprise Desktop 12 | librepository | 0 | 1.1.3-4.3 |
| SUSE:Linux Enterprise Desktop 12 | librevenge | 0 | 0.0.2-4.1 |
| SUSE:Linux Enterprise Desktop 12 | libserializer | 0 | 1.1.2-4.3 |
| SUSE:Linux Enterprise Desktop 12 | libvisio | 0 | 0.1.3-4.3 |
| SUSE:Linux Enterprise Desktop 12 | libvoikko | 0 | 3.7.1-3.1 |
| SUSE:Linux Enterprise Desktop 12 | libwps | 0 | 0.4.1-3.1 |
| SUSE:Linux Enterprise Desktop 12 | malaga-suomi | 0 | 1.18-3.2 |
| SUSE:Linux Enterprise Desktop 12 | myspell-dictionaries | 0 | 20150827-5.1 |
| SUSE:Linux Enterprise Desktop 12 | pentaho-libxml | 0 | 1.1.3-4.3 |
| SUSE:Linux Enterprise Desktop 12 | pentaho-reporting-flow-engine | 0 | 0.9.4-4.5 |
| SUSE:Linux Enterprise Desktop 12 | sac | 0 | 1.3-4.1 |
| SUSE:Linux Enterprise Desktop 12 SP2 | icu | 0 | 52.1-8.3.1 |
| SUSE:Linux Enterprise Desktop 12 SP3 | icu | 0 | 52.1-8.7.1 |
| SUSE:Linux Enterprise Desktop 12 SP3 | icu | 0 | 52.1-8.3.1 |
| SUSE:Linux Enterprise Server 12 | apache-commons-logging | 0 | 1.1.3-7.1 |
| SUSE:Linux Enterprise Server 12 | graphite2 | 0 | 1.3.1-3.1 |
| SUSE:Linux Enterprise Server 12 SP1-LTSS | icu | 0 | 52.1-8.7.1 |
| SUSE:Linux Enterprise Server 12 SP2 | icu | 0 | 52.1-8.3.1 |
| SUSE:Linux Enterprise Server 12 SP2-BCL | icu | 0 | 52.1-8.7.1 |
| SUSE:Linux Enterprise Server 12 SP2-LTSS | icu | 0 | 52.1-8.7.1 |
| SUSE:Linux Enterprise Server 12 SP3 | icu | 0 | 52.1-8.7.1 |
| SUSE:Linux Enterprise Server 12 SP3 | icu | 0 | 52.1-8.3.1 |
| SUSE:Linux Enterprise Server 12-LTSS | icu | 0 | 52.1-8.7.1 |
| SUSE:Linux Enterprise Server for Raspberry Pi 12 SP2 | icu | 0 | 52.1-8.3.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 | apache-commons-logging | 0 | 1.1.3-7.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 | graphite2 | 0 | 1.3.1-3.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | icu | 0 | 52.1-8.7.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP2 | icu | 0 | 52.1-8.7.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP2 | icu | 0 | 52.1-8.3.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP3 | icu | 0 | 52.1-8.7.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP3 | icu | 0 | 52.1-8.3.1 |
| SUSE:Linux Enterprise Software Development Kit 11 SP4 | google-carlito-fonts | 0 | 1.1.03.beta1-2.1 |
| SUSE:Linux Enterprise Software Development Kit 11 SP4 | hyphen | 0 | 2.8.8-2.1 |
| SUSE:Linux Enterprise Software Development Kit 11 SP4 | libreoffice | 0 | 5.0.4.2-23.1 |
| SUSE:Linux Enterprise Software Development Kit 11 SP4 | libreoffice-share-linker | 0 | 1-2.1 |
| SUSE:Linux Enterprise Software Development Kit 11 SP4 | libreoffice-voikko | 0 | 4.1-2.26 |
| SUSE:Linux Enterprise Software Development Kit 11 SP4 | libvoikko | 0 | 3.7.1-5.2 |
| SUSE:Linux Enterprise Software Development Kit 11 SP4 | myspell-dictionaries | 0 | 20150827-23.1 |
| SUSE:Linux Enterprise Software Development Kit 11 SP4 | mythes | 0 | 1.2.4-2.1 |
| SUSE:Linux Enterprise Software Development Kit 11 SP4 | python-importlib | 0 | 1.0.2-0.8.1 |
| SUSE:Linux Enterprise Software Development Kit 12 | cmis-client | 0 | 0.5.0-5.1 |
| SUSE:Linux Enterprise Software Development Kit 12 | graphite2 | 0 | 1.3.1-3.1 |
| SUSE:Linux Enterprise Software Development Kit 12 | hyphen | 0 | 2.8.8-9.1 |
| SUSE:Linux Enterprise Software Development Kit 12 | libabw | 0 | 0.1.1-5.3 |
| SUSE:Linux Enterprise Software Development Kit 12 | libcdr | 0 | 0.1.1-5.3 |
| SUSE:Linux Enterprise Software Development Kit 12 | libe-book | 0 | 0.1.2-4.2 |
| SUSE:Linux Enterprise Software Development Kit 12 | libetonyek | 0 | 0.1.3-3.5 |
| SUSE:Linux Enterprise Software Development Kit 12 | libfreehand | 0 | 0.1.1-4.9 |
| SUSE:Linux Enterprise Software Development Kit 12 | libixion | 0 | 0.9.1-3.1 |
| SUSE:Linux Enterprise Software Development Kit 12 | liblangtag | 0 | 0.5.7-3.1 |
| SUSE:Linux Enterprise Software Development Kit 12 | libmspub | 0 | 0.1.2-5.1 |
| SUSE:Linux Enterprise Software Development Kit 12 | libmwaw | 0 | 0.3.6-3.3 |
| SUSE:Linux Enterprise Software Development Kit 12 | libodfgen | 0 | 0.1.4-3.9 |
| SUSE:Linux Enterprise Software Development Kit 12 | liborcus | 0 | 0.7.1-3.1 |
| SUSE:Linux Enterprise Software Development Kit 12 | librevenge | 0 | 0.0.2-4.1 |
| SUSE:Linux Enterprise Software Development Kit 12 | libvisio | 0 | 0.1.3-4.3 |
| SUSE:Linux Enterprise Software Development Kit 12 | libvoikko | 0 | 3.7.1-3.1 |
| SUSE:Linux Enterprise Software Development Kit 12 | libwps | 0 | 0.4.1-3.1 |
| SUSE:Linux Enterprise Software Development Kit 12 | malaga-suomi | 0 | 1.18-3.2 |
| SUSE:Linux Enterprise Software Development Kit 12 SP2 | icu | 0 | 52.1-8.3.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP3 | icu | 0 | 52.1-8.7.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP3 | icu | 0 | 52.1-8.3.1 |
| SUSE:Linux Enterprise Workstation Extension 12 | apache-commons-logging | 0 | 1.1.3-7.1 |
| SUSE:Linux Enterprise Workstation Extension 12 | cmis-client | 0 | 0.5.0-5.1 |
| SUSE:Linux Enterprise Workstation Extension 12 | flute | 0 | 1.3.0-4.2 |
| SUSE:Linux Enterprise Workstation Extension 12 | hyphen | 0 | 2.8.8-9.1 |
| SUSE:Linux Enterprise Workstation Extension 12 | libabw | 0 | 0.1.1-5.3 |
| SUSE:Linux Enterprise Workstation Extension 12 | libbase | 0 | 1.1.3-4.3 |
| SUSE:Linux Enterprise Workstation Extension 12 | libcdr | 0 | 0.1.1-5.3 |
| SUSE:Linux Enterprise Workstation Extension 12 | libe-book | 0 | 0.1.2-4.2 |
| SUSE:Linux Enterprise Workstation Extension 12 | libetonyek | 0 | 0.1.3-3.5 |
| SUSE:Linux Enterprise Workstation Extension 12 | libfonts | 0 | 1.1.3-4.9 |
| SUSE:Linux Enterprise Workstation Extension 12 | libformula | 0 | 1.1.3-4.3 |
| SUSE:Linux Enterprise Workstation Extension 12 | libfreehand | 0 | 0.1.1-4.9 |
| SUSE:Linux Enterprise Workstation Extension 12 | libgltf | 0 | 0.0.1-2.1 |
| SUSE:Linux Enterprise Workstation Extension 12 | libixion | 0 | 0.9.1-3.1 |
| SUSE:Linux Enterprise Workstation Extension 12 | liblangtag | 0 | 0.5.7-3.1 |
| SUSE:Linux Enterprise Workstation Extension 12 | liblayout | 0 | 0.2.10-4.8 |
| SUSE:Linux Enterprise Workstation Extension 12 | libloader | 0 | 1.1.3-3.2 |
| SUSE:Linux Enterprise Workstation Extension 12 | libmspub | 0 | 0.1.2-5.1 |
| SUSE:Linux Enterprise Workstation Extension 12 | libmwaw | 0 | 0.3.6-3.3 |
| SUSE:Linux Enterprise Workstation Extension 12 | libodfgen | 0 | 0.1.4-3.9 |
| SUSE:Linux Enterprise Workstation Extension 12 | liborcus | 0 | 0.7.1-3.1 |
| SUSE:Linux Enterprise Workstation Extension 12 | libpagemaker | 0 | 0.0.2-2.3 |
| SUSE:Linux Enterprise Workstation Extension 12 | libreoffice | 0 | 5.0.2.2-13.14 |
| SUSE:Linux Enterprise Workstation Extension 12 | libreoffice-share-linker | 0 | 1-2.1 |
| SUSE:Linux Enterprise Workstation Extension 12 | libreoffice-voikko | 0 | 4.1-6.3 |
| SUSE:Linux Enterprise Workstation Extension 12 | librepository | 0 | 1.1.3-4.3 |
| SUSE:Linux Enterprise Workstation Extension 12 | librevenge | 0 | 0.0.2-4.1 |
| SUSE:Linux Enterprise Workstation Extension 12 | libserializer | 0 | 1.1.2-4.3 |
| SUSE:Linux Enterprise Workstation Extension 12 | libvisio | 0 | 0.1.3-4.3 |
| SUSE:Linux Enterprise Workstation Extension 12 | libvoikko | 0 | 3.7.1-3.1 |
| SUSE:Linux Enterprise Workstation Extension 12 | libwps | 0 | 0.4.1-3.1 |
| SUSE:Linux Enterprise Workstation Extension 12 | malaga-suomi | 0 | 1.18-3.2 |
| SUSE:Linux Enterprise Workstation Extension 12 | myspell-dictionaries | 0 | 20150827-5.1 |
| SUSE:Linux Enterprise Workstation Extension 12 | pentaho-libxml | 0 | 1.1.3-4.3 |
| SUSE:Linux Enterprise Workstation Extension 12 | pentaho-reporting-flow-engine | 0 | 0.9.4-4.5 |
| SUSE:Linux Enterprise Workstation Extension 12 | sac | 0 | 1.3-4.1 |
| SUSE:Linux Enterprise Workstation Extension 12 SP2 | icu | 0 | 52.1-8.3.1 |
| SUSE:Linux Enterprise Workstation Extension 12 SP3 | icu | 0 | 52.1-8.7.1 |
| SUSE:Linux Enterprise Workstation Extension 12 SP3 | icu | 0 | 52.1-8.3.1 |
| SUSE:OpenStack Cloud 7 | icu | 0 | 52.1-8.7.1 |
| Ubuntu:14.04:LTS | icu | 0 | 52.1-3ubuntu0.3 |
| openSUSE:Tumbleweed | libreoffice | 0 | 5.2.3.3-2.2 |
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-2014-9911 Stack-based buffer overflow in the ures_getByKeyWithFallback function in… 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-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