CVE-2026-50161 PUBLISHED

libre: Integer overflow in websock_decode() masked frame length check leads to heap buffer overflow

Assigner: GitHub_M
Reserved: 03.06.2026 Published: 18.08.2026 Updated: 18.08.2026

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.

Metrics

CVSS Vector: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
CVSS Score: 9.3

Product Status

Vendor baresip
Product re
Versions
  • Version < 4.8.1 is affected

References

Problem Types

  • CWE-190: Integer Overflow or Wraparound CWE
  • CWE-787: Out-of-bounds Write CWE