
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-52852 is an uncontrolled infinite loop (DoS) vulnerability in Traccar, an open source GPS tracking system, affecting all versions prior to 6.14.0 (confirmed on 6.13.3 and earlier). An authenticated user with permissions to manage groups and request reports can create a cyclic group-parent hierarchy, causing AttributeUtil.lookup to loop indefinitely when a trips or stops report is requested for a device in that hierarchy. This pins Jetty worker threads at high CPU usage and can exhaust the web/API worker pool, resulting in a server-wide denial of service. It carries a CVSS v3.1 base score of 6.5 (Medium) (GitHub Advisory).
The root cause is CWE-674 (Uncontrolled Recursion): org.traccar.helper.model.AttributeUtil.lookup walks the device's group parent chain using a while loop without a visited set, cycle detection, or depth limit. The GroupResource API also fails to validate parent updates that would introduce a cycle, allowing a user to set Group A's parent to Group B and Group B's parent to Group A via sequential API calls (both returning HTTP 200). When a trips or stops report is subsequently requested for a device in the cyclic group, the storage-backed lookup in TripsConfig and ReportUtils.slowTripsAndStops resolves groups from the database indefinitely, oscillating between A→B→A→B without ever reaching a terminal groupId of 0. The fix in commit 8f6f59a adds a MAX_GROUP_DEPTH constant (set to 3) as a depth limit in both AttributeUtil.lookup and BaseObjectResource.update, and validates parent chains before saving group updates (GitHub Advisory, Fix Commit).
Successful exploitation causes a denial of service against the Traccar web interface and API. Each malicious report request permanently pins a Jetty worker thread at high CPU usage — the thread remains stuck even after the client disconnects. Repeating the request a small number of times can exhaust the entire Jetty worker pool, making the Traccar server unavailable to all users. There is no confidentiality or integrity impact; the vulnerability is purely an availability issue (GitHub Advisory).
No public proof-of-concept exploit code or exploit kits have been identified, and there is no evidence of in-the-wild exploitation as of the disclosure date. The EPSS score is 0.0, and the vulnerability is not listed in the CISA Known Exploited Vulnerabilities catalog. Exploitation requires an authenticated account with group management and report access permissions — a non-administrator role in multi-user deployments can satisfy these preconditions. The vulnerability was discovered and reported by researcher kocaemre via GitHub's coordinated disclosure process (GitHub Advisory).
POST /api/groups with body {"name":"A"} and note the returned group ID (e.g., 1).POST /api/groups with body {"name":"B","groupId":1} and note the returned ID (e.g., 2).PUT /api/groups/1 with body {"id":1,"name":"A","groupId":2}. The server responds HTTP 200, establishing A→B→A cycle.POST /api/devices or PUT /api/devices/<id> with "groupId":1.GET /api/reports/trips?deviceId=<id>&from=<start>&to=<end>. The request hangs indefinitely; the Jetty worker thread is pinned at high CPU./api/reports/trips or /api/reports/stops with the same deviceId parameter that never return a response; client-side timeouts (HTTP 000) on report endpoints.java) sustaining abnormally high CPU usage (e.g., >100% per core) that persists after client disconnects; jstack output showing multiple worker threads stuck in org.traccar.helper.model.AttributeUtil$StorageProvider.getGroup and AttributeUtil.lookup./api/reports/trips or /api/reports/stops from the same authenticated user in a short time window.groupId points to Group B and Group B's groupId points back to Group A (detectable via GET /api/groups and inspecting parent relationships) (GitHub Advisory).Upgrade Traccar to version 6.14.0 or later, which includes commit 8f6f59a that adds cycle detection in BaseObjectResource.update (rejecting group updates that would introduce a parent cycle) and a MAX_GROUP_DEPTH limit of 3 in AttributeUtil.lookup as defense-in-depth. No official workaround is provided for users who cannot upgrade immediately; as a temporary measure, administrators should restrict group management and report permissions to trusted users only, and monitor for hung Jetty threads. Restarting the Traccar service will recover pinned threads but does not prevent re-exploitation (GitHub Advisory, Fix Commit, v6.14.0 Release).
The vulnerability was disclosed via GitHub Security Advisory by Traccar maintainer tananaev on June 9, 2026, crediting researcher kocaemre as the reporter. No notable broader media coverage, vendor statements beyond the advisory, or significant social media discussion has been identified at this time (GitHub Advisory).
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."