| 标题 | Open Source libgsf <=1.14.53 Integer Overflow -> Heap Overflow (gsf_base64_encode_simple) |
|---|
| 描述 | The vulnerability arises from performing unchecked arithmetic on a user-supplied length, which can trigger an integer overflow that results in underallocating the buffer, thereby risking buffer overflow during base64 encoding.
guint8 *
gsf_base64_encode_simple (guint8 const *data, size_t len)
{
guint8 *out;
int state = 0;
guint save = 0;
gboolean break_lines = TRUE; /* This differs from g_base64_encode */
size_t outlen = len * 4 / 3 + 5; // arithmetic on user input length stored in a size_t variable (unsigned it) - no length verification
if (break_lines)
outlen += outlen / 72 + 1;
out = g_new (guint8, outlen); // underallocation due to integer overflow via the arithmetic
outlen = gsf_base64_encode_close (data, len, break_lines,
out, &state, &save); // a call that writes b64 encoded data to the newly allocated buffer
out[outlen] = '\0';
return out;
} |
|---|
| 用户 | ninpwn (UID 82253) |
|---|
| 提交 | 2025-03-13 21時19分 (1 年前) |
|---|
| 管理 | 2025-03-24 13時46分 (11 days later) |
|---|
| 状态 | 已接受 |
|---|
| VulDB条目 | 300741 [GNOME libgsf 直到 1.14.53 gsf_base64_encode_simple size_t 内存损坏] |
|---|
| 积分 | 17 |
|---|