CVE-2017-7867
High · 7.5CVSS
7.5
EPSS
4.6%
Published
Apr 14, 2017
CISA due date
—
Cloudanix analysis
A bug in a widely used text-handling library can make programs crash when they receive certain kinds of international text data.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Library
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Heap-based buffer overflow in utf8TextAccess and utext_setNativeIndex functions triggers an out-of-bounds write during UTF-8 text access operations, resulting in process crashes.
Why it matters to the business
Applications relying on ICU for Unicode processing may experience sudden service outages or degraded performance when handling untrusted input, with elevated urgency for organizations still running pre-2017 ICU versions across Linux distributions.
How an attack unfolds
An attacker supplies specially crafted UTF-8 data to any network-facing component that invokes ICU's utext functions; the malformed input reaches the vulnerable access routine, overflows the heap buffer, and writes outside allocated bounds, causing the target process to terminate.
How to fix it
Upgrade ICU to a version released after 2017-02-13 that contains the corrected utext.cpp implementation; rebuild and redeploy all dependent applications and verify the new library is loaded at runtime.
How to confirm the fix worked
Confirm the running ICU shared library or static build reports a release date after February 2017; test affected code paths with known triggering UTF-8 sequences and monitor for absence of crashes.
Typical attack path
- Identify a service or library call that passes attacker-controlled data into ICU text functions
- Craft a UTF-8 sequence that triggers utext_setNativeIndex and subsequent utf8TextAccess
- Send the payload over the network or via file input
- Observe denial-of-service through process crash or memory corruption
How to detect it
Review application and system logs for abrupt process terminations or segmentation faults involving ICU text routines; correlate with inbound network traffic containing unusual UTF-8 byte sequences.
What your security team should do
- Prioritize patching ICU on all internet-facing systems within standard change windows
- Inventory internal packages and containers that statically link or bundle ICU
- Add ICU version checks to build pipelines and container base images
- Monitor application crash logs for segmentation faults originating from utext functions
The record
International Components for Unicode (ICU) for C/C++ before 2017-02-13 has an out-of-bounds write caused by a heap-based buffer overflow related to the utf8TextAccess function in common/utext.cpp and the utext_setNativeIndex* function.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Alpine:v3.10 | icu | 0 | 58.2-r2 |
| Alpine:v3.11 | icu | 0 | 58.2-r2 |
| Alpine:v3.12 | icu | 0 | 58.2-r2 |
| Alpine:v3.13 | icu | 0 | 58.2-r2 |
| Alpine:v3.14 | icu | 0 | 58.2-r2 |
| Alpine:v3.15 | icu | 0 | 58.2-r2 |
| Alpine:v3.16 | icu | 0 | 58.2-r2 |
| Alpine:v3.17 | icu | 0 | 58.2-r2 |
| Alpine:v3.18 | icu | 0 | 58.2-r2 |
| Alpine:v3.19 | icu | 0 | 58.2-r2 |
| Alpine:v3.2 | icu | 0 | 55.1-r3 |
| Alpine:v3.20 | icu | 0 | 58.2-r2 |
| Alpine:v3.21 | icu | 0 | 58.2-r2 |
| Alpine:v3.22 | icu | 0 | 58.2-r2 |
| Alpine:v3.3 | icu | 0 | 56.1-r2 |
| Alpine:v3.4 | icu | 0 | 57.1-r3 |
| Alpine:v3.5 | icu | 0 | 57.1-r3 |
| Alpine:v3.6 | icu | 0 | 58.2-r2 |
| Alpine:v3.7 | icu | 0 | 58.2-r2 |
| Alpine:v3.8 | icu | 0 | 58.2-r2 |
| Alpine:v3.9 | icu | 0 | 58.2-r2 |
| Debian:11 | icu | 0 | 57.1-6 |
| Debian:12 | icu | 0 | 57.1-6 |
| Debian:13 | icu | 0 | 57.1-6 |
| Debian:7 | icu | 0 | 4.8.1.1-12+deb7u7 |
| Debian:8 | icu | 0 | 52.1-8+deb8u5 |
| Mageia:5 | icu | 0 | 53.1-12.7.mga5 |
| SUSE:Enterprise Storage 4 | icu | 0 | 52.1-8.7.1 |
| SUSE:Linux Enterprise Desktop 12 SP3 | icu | 0 | 52.1-8.7.1 |
| SUSE:Linux Enterprise Server 11 SP4 | icu | 0 | 4.0-47.6.1 |
| SUSE:Linux Enterprise Server 12 SP1-LTSS | icu | 0 | 52.1-8.7.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-LTSS | icu | 0 | 52.1-8.7.1 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | icu | 0 | 4.0-47.6.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 SP3 | icu | 0 | 52.1-8.7.1 |
| SUSE:Linux Enterprise Software Development Kit 11 SP4 | icu | 0 | 4.0-47.6.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP3 | icu | 0 | 52.1-8.7.1 |
| SUSE:Linux Enterprise Workstation Extension 12 SP3 | icu | 0 | 52.1-8.7.1 |
| SUSE:OpenStack Cloud 7 | icu | 0 | 52.1-8.7.1 |
| Ubuntu:14.04:LTS | icu | 0 | 52.1-3ubuntu0.6 |
| Ubuntu:16.04:LTS | icu | 0 | 55.1-7ubuntu0.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-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-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