Register for the AI for Security Summit: Join Figma, Perplexity & Wiz

CVE-2026-52852
Chainguard vulnerability analysis and mitigation

Overview

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).

Technical details

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).

Impact

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).

Exploitability

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).

Exploitation steps

  1. Authenticate: Log in to a Traccar instance (version ≤ 6.13.3) with an account that has permissions to manage groups and request reports.
  2. Create Group A: Send POST /api/groups with body {"name":"A"} and note the returned group ID (e.g., 1).
  3. Create Group B with parent A: Send POST /api/groups with body {"name":"B","groupId":1} and note the returned ID (e.g., 2).
  4. Create the cycle: Send PUT /api/groups/1 with body {"id":1,"name":"A","groupId":2}. The server responds HTTP 200, establishing A→B→A cycle.
  5. Place a device in the cyclic group: Create or update a device to belong to Group A via POST /api/devices or PUT /api/devices/<id> with "groupId":1.
  6. Trigger the infinite loop: Send GET /api/reports/trips?deviceId=<id>&from=<start>&to=<end>. The request hangs indefinitely; the Jetty worker thread is pinned at high CPU.
  7. Exhaust the thread pool: Repeat step 6 multiple times (from the same or different sessions) to consume all available Jetty worker threads, causing a server-wide denial of service (GitHub Advisory).

Indicators of compromise

  • Network: Repeated HTTP GET requests to /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.
  • Process: Traccar Java process (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.
  • Logs: Traccar access logs showing report requests with no corresponding response completion; repeated requests to /api/reports/trips or /api/reports/stops from the same authenticated user in a short time window.
  • Application State: Group hierarchy in the database where Group A's 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).

Mitigation and workarounds

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).

Community reactions

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).

Additional resources


SourceThis report was generated using AI

Related Chainguard vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-52851HIGH7.1
  • Chainguard logoChainguard
  • traccar
NoYesSep 17, 2026
CVE-2026-44236HIGH7.1
  • Wolfi logoWolfi
  • librabbitmq
NoYesSep 17, 2026
CVE-2026-52852MEDIUM6.5
  • Chainguard logoChainguard
  • traccar
NoYesSep 17, 2026
CVE-2026-44235MEDIUM6.5
  • Wolfi logoWolfi
  • librabbitmq
NoYesSep 17, 2026
CVE-2026-8674MEDIUM5.3
  • Wolfi logoWolfi
  • glibc-headers
NoYesSep 17, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management