CVE-2025-5222
High · 7.0CVSS
7.0
EPSS
0.4%
Published
May 27, 2025
CISA due date
—
Cloudanix analysis
A bug in a widely used text handling library can let someone who tricks a local tool into processing bad data take control of that computer.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- High
- Impact
- Full Compromise
- Component
- Library
- Class
- Buffer Overflow
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Stack buffer overflow in SRBRoot::addTag during genrb execution allows memory corruption and potential local arbitrary code execution.
Why it matters to the business
Attackers with local access can achieve code execution on systems processing ICU data files, risking compromise of development or build environments; low exploit likelihood but affects widely used Unicode components and downstream applications like Thunderbird.
How an attack unfolds
An attacker crafts a malicious subtag input that overflows the struct when genrb is invoked locally; the overflow corrupts memory and can be leveraged for code execution under high complexity conditions requiring user interaction.
How to fix it
Upgrade unicode-org/icu to commit 457157a92aa053e632cc7fcfd0e12f8a943b2d11 or later; for Ubuntu 18.04 LTS Thunderbird, upgrade to 1:102.4.2+build2-0ubuntu0.18.04.1 or newer.
How to confirm the fix worked
Verify installed ICU or Thunderbird versions against the listed fixed commits/packages; test genrb with known-good inputs and confirm absence of crashes on boundary cases.
Typical attack path
- Obtain or create a malicious resource bundle input file triggering subtag overflow
- Invoke the genrb binary locally with the crafted file
- Trigger the overflow in SRBRoot::addTag to corrupt stack memory
- Achieve arbitrary code execution within the process context
How to detect it
Review process execution logs for genrb invocations with unusual inputs; inspect crash reports or memory dumps for signs of stack corruption around addTag calls.
What your security team should do
- Prioritize patching ICU in build pipelines and Thunderbird installations
- Restrict local execution of genrb to trusted users and inputs
- Monitor EPSS trend and re-evaluate if exploit maturity increases
The record
A stack buffer overflow was found in Internationl components for unicode (ICU ). While running the genrb binary, the 'subtag' struct overflowed at the SRBRoot::addTag function. This issue may lead to memory corruption and local arbitrary code execution.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| AlmaLinux:10 | icu | 0 | 74.2-5.el10_0 |
| AlmaLinux:10 | libicu | 0 | 74.2-5.el10_0 |
| AlmaLinux:10 | libicu-devel | 0 | 74.2-5.el10_0 |
| AlmaLinux:9 | icu | 0 | 67.1-10.el9_6 |
| AlmaLinux:9 | libicu | 0 | 67.1-10.el9_6 |
| AlmaLinux:9 | libicu-devel | 0 | 67.1-10.el9_6 |
| Alpine:v3.19 | icu | 0 | 74.1-r1 |
| Alpine:v3.20 | icu | 0 | 74.2-r1 |
| Alpine:v3.21 | icu | 0 | 74.2-r1 |
| Alpine:v3.22 | icu | 0 | 76.1-r1 |
| Debian:11 | icu | 0 | No fix |
| Debian:12 | icu | 0 | No fix |
| Debian:13 | icu | 0 | 76.1-4 |
| Mageia:9 | icu | 0 | 73.2-1.2.mga9 |
| SUSE:Enterprise Storage 7.1 | icu | 0 | 60.2-150000.3.18.1 |
| SUSE:Enterprise Storage 7.1 | icu | 0 | 65.1-150200.4.15.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS | icu | 0 | 60.2-150000.3.18.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS | icu | 0 | 65.1-150200.4.15.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS | icu | 0 | 60.2-150000.3.18.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS | icu | 0 | 65.1-150200.4.15.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS | icu | 0 | 60.2-150000.3.18.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS | icu | 0 | 65.1-150200.4.15.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP5-ESPOS | icu | 0 | 65.1-150200.4.15.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP5-LTSS | icu | 0 | 65.1-150200.4.15.1 |
| SUSE:Linux Enterprise Micro 5.1 | icu | 0 | 65.1-150200.4.15.1 |
| SUSE:Linux Enterprise Micro 5.2 | icu | 0 | 65.1-150200.4.15.1 |
| SUSE:Linux Enterprise Micro 5.3 | icu | 0 | 65.1-150200.4.15.1 |
| SUSE:Linux Enterprise Micro 5.4 | icu | 0 | 65.1-150200.4.15.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP6 | icu | 0 | 60.2-150000.3.18.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP6 | icu | 0 | 65.1-150200.4.15.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP7 | icu | 0 | 60.2-150000.3.18.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP7 | icu | 0 | 65.1-150200.4.15.1 |
| SUSE:Linux Enterprise Module for Package Hub 15 SP6 | icu | 0 | 65.1-150200.4.15.1 |
| SUSE:Linux Enterprise Module for Package Hub 15 SP7 | icu | 0 | 65.1-150200.4.15.1 |
| SUSE:Linux Enterprise Server 12 SP5-LTSS | icu | 0 | 52.1-8.16.1 |
| SUSE:Linux Enterprise Server 15 SP3-LTSS | icu | 0 | 60.2-150000.3.18.1 |
| SUSE:Linux Enterprise Server 15 SP3-LTSS | icu | 0 | 65.1-150200.4.15.1 |
| SUSE:Linux Enterprise Server 15 SP4-LTSS | icu | 0 | 60.2-150000.3.18.1 |
| SUSE:Linux Enterprise Server 15 SP4-LTSS | icu | 0 | 65.1-150200.4.15.1 |
| SUSE:Linux Enterprise Server 15 SP5-LTSS | icu | 0 | 60.2-150000.3.18.1 |
| SUSE:Linux Enterprise Server 15 SP5-LTSS | icu | 0 | 65.1-150200.4.15.1 |
| SUSE:Linux Enterprise Server LTSS Extended Security 12 SP5 | icu | 0 | 52.1-8.16.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP3 | icu | 0 | 60.2-150000.3.18.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP3 | icu | 0 | 65.1-150200.4.15.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP4 | icu | 0 | 60.2-150000.3.18.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP4 | icu | 0 | 65.1-150200.4.15.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP5 | icu | 0 | 60.2-150000.3.18.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP5 | icu | 0 | 65.1-150200.4.15.1 |
| SUSE:Manager Proxy 4.3 | icu | 0 | 65.1-150200.4.15.1 |
| SUSE:Manager Server 4.3 | icu | 0 | 65.1-150200.4.15.1 |
| openSUSE:Leap 15.6 | icu | 0 | 65.1-150200.4.15.1 |
| openSUSE:Tumbleweed | icu | 0 | 77.1-3.1 |
Related vulnerabilities
- CVE-2017-7867 International Components for Unicode (ICU) for C/C++ before 2017-02-13 has an… Also affects icu
- 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