| Title | SerenityOS SerenityOS LibGfx >= d76ad23 Integer Overflow |
|---|
| Description | SerenityOS is a graphical Unix-like operating system that includes the LibGfx image decoding library.
This code is vulnerable to CWE-190: Integer Overflow or Wraparound due to improper validation of the BMP DIB header height value. The decode_bmp_pixel_data() function processes the signed 32-bit height field from an attacker-controlled BMP file and applies abs() to the value without checking for "INT_MIN"(-2147483648). Because the absolute value of "INT_MIN" cannot be represented by a signed 32-bit integer, calling abs(INT_MIN) results in signed integer overflow and undefined behavior. An attacker can trigger the issue by supplying a specially crafted BMP file whose height field is set to 0x80000000. Under UBSan configurations with halt_on_error enabled, processing such a file causes the image decoder process to abort, resulting in a denial of service. In non-sanitized release builds, the behavior is compiler-dependent due to the underlying undefined behavior.
More details: https://github.com/SerenityOS/serenity/issues/26957 |
|---|
| Source | ⚠️ https://github.com/SerenityOS/serenity/issues/26957 |
|---|
| User | cz_seuer (UID 100791) |
|---|
| Submission | 08/25/2026 09:14 (26 days ago) |
|---|
| Moderation | 09/19/2026 19:40 (25 days later) |
|---|
| Status | Accepted |
|---|
| VulDB entry | 407958 [SerenityOS up to 3d83e4509fd20d7438e1ae8470ffe668c136229c LibGfx BMPLoader.cpp decode_bmp_pixel_data height integer overflow] |
|---|
| Points | 20 |
|---|