GHSA-rxhg-vcww-2mpwLow· 3.1▾ SunlitFleet: ORDER BY column injection on activity list endpoints
▾ Sunlit zone — Low / medium · no exploitation signal
impact 17.1 · likelihood 0 · exploitation 0
Need a working PoC? Pro members can cast a request and our team develops one — it lands right here.
An authenticated user with read access to Activity could influence the ORDER BY clause of the activity list endpoints by supplying an arbitrary sort column:
GET /api/v1/fleet/activities (ListActivities)GET /api/v1/fleet/hosts/{id}/activities (ListHostPastActivities)This originated from the deprecated cursor-pagination helper (appendListOptionsWithCursorToSQL), which interpolated the caller-supplied order key into SQL without an allowlist. The original report's node_key extraction scenario (/api/v1/fleet/labels/{id}/hosts) was remediated separately in #44385; these two activity endpoints were the residual call sites, neither of which joins the hosts table, so node_key was never reachable through them.
Read-only. Because the order key was interpolated, an authenticated user with Activity read could sort by columns not otherwise returned in these responses. The exposure was bounded to columns on activity_past (e.g. details on /api/v1/fleet/activities, which is not in that endpoint's SELECT; host-only activities are already excluded by WHERE host_only = false). There is no privilege escalation, write access, or reachability of node_key or other host-join columns through these endpoints.
The deprecated helper was removed from the codebase. Both endpoints now pass the caller-supplied sort column through SanitizeColumn, which strips all characters except [\w-.] and backtick-quotes each identifier segment. This closes the injection vector: separators, whitespace, parentheses, and quotes cannot survive sanitization, so an expression-based ORDER BY oracle is not constructable.
< fleet-v4.89.0. Fixed in fleet-v4.89.0.
Thanks to @axel-corsiez for the report.
github.com/fleetdm/fleet/v4 < 4.89.0Upgrade to a patched release:
github.com/fleetdm/fleet/v4 4.89.0Connected by shared product, vendor, weakness, or advisory.
GO-2026-6269NoneFleet: ORDER BY column injection on activity list endpoints in github.com/fleetdm/fleet
CVE-2026-46370Medium· 6.5Fleet is an open-source device management platform built on osquery
CVE-2026-46371Medium· 6.5Fleet is an open-source device management platform built on osquery
GO-2026-6268NoneFleet: Unauthenticated download of in-house iOS app binaries via predictable URLs in github.com/fleetdm/fleet
CVE-2026-54245HighFleet is an open-source device management platform built on osquery
GHSA-q9c5-pp7m-fm2gMedium· 5.3Fleet: Unauthenticated download of in-house iOS app binaries via predictable URLs