header-logo
Suggest Exploit
vendor:
ICU Library
by:
Pedro Ribeiro

Heap overflow and integer overflow in ICU library (v52 to v54)

While fuzzing LibreOffice an integer overflow and a heap overflow were found in the ICU library. This library is used by LibreOffice and hundreds of other software packages. Proof of concept files can be downloaded from [1]. These files have been tested with LibreOffice 4.3.3.2 and LibreOffice 4.4.0-beta2 and ICU 52. Under certain conditions isolateCount is incremented too many times, which results in several out of bounds writes. The overflow is on the resolveImplicitLevels function (ubidi.c:2248): pBiDi->isolates[pBiDi->isolateCount].state=levState.state; pBiDi->isolates[].state is a int16, while levState.state is a int3. This results in an integer overflow.

Mitigation:

Update to the latest version of ICU library.
Source

Exploit-DB raw data: