Description
libre is a generic library for real-time communications with asynchronous input and output support. Prior to 4.8.1, the websock_decode() function in src/websock/websock.c contains an integer overflow when validating a masked WebSocket frame that uses the 64-bit extended length encoding. The expression 4 + hdr->len can wrap when hdr->len is close to UINT64_MAX, causing the mbuf_get_left() bounds check to pass. The subsequent XOR unmasking loop then writes beyond the heap buffer. Applications using websock_accept() or websock_accept_proto() to implement a WebSocket server are affected, and exploitation can cause attacker-controlled heap corruption or denial of service after the HTTP WebSocket upgrade handshake. This issue is fixed in version 4.8.1.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| baresip | re | < 4.8.1 | — |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | libre | 2.0.1-4 | — |
| Debian 13 | libre | No fix yet | — |
| Debian 12 | libre | No fix yet | — |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 26.10 | libre | No fix yet | — |
| Ubuntu 26.04 LTS | libre | No fix yet | — |
| Ubuntu 24.04 LTS | libre | No fix yet | — |
| Ubuntu 22.04 LTS | libre | No fix yet | — |
| Ubuntu 20.04 LTS | libre | No fix yet | — |
Show 2 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 18.04 LTS | libre | No fix yet | — |
| Ubuntu 16.04 LTS | libre | No fix yet | — |