github.com/fleetdm/fleet/v4

CVE-2026-41262

CVE-2026-41262 is a medium-severity incorrect authorization vulnerability in github.com/fleetdm/fleet/v4 (go), affecting versions < 4.85.0. It is fixed in 4.85.0.

Key facts
CVSS score
4.3
Medium
Attack vector
Network
Issuing authority
GitHub Advisory Database
Affected package
github.com/fleetdm/fleet/v4
Fixed in
4.85.0
Disclosed
2026

Summary

Summary The global policy read endpoint (GET /api/latest/fleet/policies/{policyid}) performs authorization against an empty fleet.Policy{} struct with nil TeamID, then fetches any policy by ID from the database without verifying the fetched policy actually belongs to the global scope. This allows a user with observer-level access on any single team to read the full details of policies belonging to any other team, bypassing Fleet's team isolation model. Details The vulnerability is in GetPolicyByIDQueries at server/service/globalpolicies.go:163-180: The authorization passes because the OPA rule at server/authz/policy.rego:724-728 allows reading policies with null teamid for any user who holds a role on any team: Since the auth object has nil TeamID, this rule fires for any team member. After authorization, ds.Policy() calls policyDB() at server/datastore/mysql/policies.go:283-288 with a nil teamID: This returns any policy regardless of team ownership, and the full policy object is returned to the caller without any post-fetch team verification. By contrast, the properly-secured endpoints verify team scope: GetTeamPolicyByIDQueries (teampolicies.go:421-428) sets TeamID: ptr.Uint(teamID) on the auth object and calls ds.TeamPolicy() which filters by team DeleteGlobalPolicies (global_policies.go:255-263) explicitly checks policy.PolicyData.TeamID != nil after fetching PoC Prerequisites: A Fleet instance with at least two teams. User A has observer role on Team 1 only. Team 2 has policies that User A should not be able to view. Impact An authenticated user with observer-level access on any single team can: Read SQL queries from all team policies across the Fleet instance, potentially revealing security monitoring strategies, compliance checks, and internal infrastructure details View host pass/fail counts for other teams' policies, leaking compliance posture data across team boundaries Access software installer and script metadata associated with other teams' policies via the populatePolicyInstallSoftware and populatePolicyRunScript calls Enumerate all policies by iterating sequential integer IDs This breaks Fleet's team isolation model, which is designed to restrict visibility between teams. Organizations using teams to separate departments, clients, or security zones would have their policy data exposed across boundaries. Recommended Fix Add a post-fetch check in GetPolicyByIDQueries to verify the returned policy is actually a global policy (nil TeamID), consistent with how DeleteGlobalPolicies operates: Alternatively, re-authorize against the actual fetched policy object so OPA rules properly evaluate team membership, similar to how other Fleet endpoints handle object-level authorization.

Impact

What is incorrect authorization?

The application does not correctly enforce access controls, allowing a principal to access resources or operations beyond their granted permissions. Typical impact: unauthorized data access or execution of privileged operations.

Severity and exposure

CVE-2026-41262 has a CVSS score of 4.3 (Medium). The vector is network-reachable, low privileges required, and no user interaction. A CVSS score reflects the worst-case severity of the vulnerability, not your specific exposure. Whether this affects your application depends on whether the vulnerable code is present and reachable in your environment.

A fixed version is available (4.85.0). Upgrading removes the vulnerable code path.

Affected versions

go

  • github.com/fleetdm/fleet/v4 (< 4.85.0)

Security releases

  • github.com/fleetdm/fleet/v4 → 4.85.0 (go)
Kodem intelligence

Severity tells you how bad this could be in the worst case. It does not tell you whether you are exposed. Exploitability and impact are functions of runtime truth: whether the vulnerable code is present, reachable, and actually executes in your application. A vulnerable package can sit in your dependency tree and never run.

Kodem, an Intelligent Application Security platform, uses runtime intelligence to reveal which vulnerabilities actually execute in production, so teams prioritize the ones that genuinely matter instead of chasing every advisory.

Kodem's runtime-powered SCA identifies whether CVE-2026-41262 is reachable in your applications. Explore open-source security for your team.

See if CVE-2026-41262 is reachable in your applications. Get a demo

Already deployed Kodem? See CVE-2026-41262 in your environment

Remediation advice

Upgrade github.com/fleetdm/fleet/v4 to 4.85.0 or later to resolve this vulnerability.

Kodem Kai can prioritize this vulnerability in your dependency tree and generate a fix recommendation.

Frequently asked questions about CVE-2026-41262

What is CVE-2026-41262?

CVE-2026-41262 is a medium-severity incorrect authorization vulnerability in github.com/fleetdm/fleet/v4 (go), affecting versions < 4.85.0. It is fixed in 4.85.0. The application does not correctly enforce access controls, allowing a principal to access resources or operations beyond their granted permissions.

How severe is CVE-2026-41262?

CVE-2026-41262 has a CVSS score of 4.3 (Medium). This score reflects the worst-case severity of the vulnerability, not your specific exposure. Whether it represents real risk in your environment depends on whether the vulnerable code is present and reachable.

Which versions of github.com/fleetdm/fleet/v4 are affected by CVE-2026-41262?

github.com/fleetdm/fleet/v4 (go) versions < 4.85.0 is affected.

Is there a fix for CVE-2026-41262?

Yes. CVE-2026-41262 is fixed in 4.85.0. Upgrade to this version or later.

Is CVE-2026-41262 exploitable, and should I be worried?

Whether CVE-2026-41262 is exploitable in your environment depends on whether the vulnerable code is present and reachable. A CVSS score is a worst-case rating; it does not account for your specific deployment, configuration, or usage patterns. Kodem, an Intelligent Application Security platform, uses runtime intelligence to show which vulnerabilities actually execute in production, so you can focus on the ones that represent real risk. Get a demo

What actually determines whether CVE-2026-41262 is exploitable, and how bad it is?

Exploitability and impact are not fixed properties of a CVE. They depend on runtime truth: whether the vulnerable code is present, reachable, and actually executes in your application. A high CVSS score on a dependency that never runs is not the same as real risk. Kodem, an Intelligent Application Security platform, uses runtime intelligence to reveal which vulnerabilities actually execute in production, so teams prioritize the ones that genuinely matter.

How do I fix CVE-2026-41262?

Upgrade github.com/fleetdm/fleet/v4 to 4.85.0 or later.

Stop the waste.
Protect your environment with Kodem.