Executive brief
GoAccess is a real-time web log analyzer that provides a live dashboard via a built-in WebSocket server. A vulnerability in this server allows an unauthenticated remote attacker to crash the application by sending a specially crafted data packet. This results in a denial of service, preventing all users from accessing the live dashboard and requiring a manual restart of the service.
Technical details
A numeric truncation vulnerability (CWE-681) exists in the GoAccess WebSocket server (enabled via --real-time-html). When processing a WebSocket frame, the server stores a 64-bit extended payload length into a signed 32-bit integer field (WSFrame.payloadlen). By sending a frame with bit 31 set (e.g., 0x80000000), the value is interpreted as a negative integer, bypassing the maximum frame size check. This negative value is subsequently sign-extended to a massive 64-bit value (approximately 18 exabytes) during a call to xcalloc. The resulting allocation failure triggers a fatal error handler that calls exit(), terminating the process. This can be exploited pre-authentication by any client capable of completing a WebSocket handshake. The issue is fixed in version 1.11.
Affected products
- allinurl GoAccess < 1.11
Timeline
- 2026-07-20: advisory: GitHub Security Advisory published
- 2026-07-30: disclosed: CVE published to NVD
- 2026-07-30: patched: Fix committed in version 1.11