Executive brief
GoAccess, a real-time web log analyzer, is vulnerable to a memory-handling error when processing specific mobile device information. An attacker can trigger this by sending a specially crafted web request to a server that is being monitored by GoAccess. If the malicious log entry is processed, it can cause the GoAccess application to crash, leading to a denial of service for administrators relying on the tool for real-time monitoring.
Technical details
A heap-based out-of-bounds read exists in GoAccess prior to version 1.11 within the `parse_ios()` function in `src/opesys.c`. The vulnerability is caused by the incorrect use of an attacker-controlled offset as both the source offset and the copy length in a `memmove()` call. By providing a User-Agent string with excessive padding between an iOS keyword (e.g., iPhone) and the " OS " token, an attacker can cause the function to read up to 4 KB beyond the allocated heap buffer. While primarily resulting in a denial of service (SIGSEGV) when hitting unmapped memory or guard pages, it represents a significant spatial memory safety violation. The issue is reachable remotely if GoAccess is configured to analyze logs containing attacker-supplied User-Agent headers. This was fixed in version 1.11 by tightening the iOS version suffix parsing logic.
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: Fixed in version 1.11