GHSA-88P2-JJ8W-J8QG
Vulnerability from github – Published: 2026-08-12 15:18 – Updated: 2026-08-12 15:18Summary
The target search endpoint (POST /api/latest/fleet/targets) returned team enroll secrets and full team configuration, including credential-bearing agent options, to observer-class users. Other team-facing endpoints mask these fields for observers; the target search endpoint did not apply the same sanitization.
Impact
An authenticated user with Observer, Observer+, or Technician role (global or team-scoped) could retrieve unmasked team enroll secrets and team agent options by performing a target search against an observer-runnable query.
With a leaked team enroll secret, an attacker could enroll unauthorized hosts into the affected team. If the team's agent options contained credentials such as AWS secret access keys or proxy passwords, those values were also exposed.
Patches
- v4.87.0
Workarounds
If an immediate upgrade is not possible, administrators should:
- Rotate team enroll secrets for any team that may have been exposed
- Rotate any credentials stored in team agent options (AWS keys, proxy passwords, session tokens)
- Restrict Observer and Technician roles to fully trusted users until the patch is applied
Credits
Fleet thanks @fuzzztf for responsibly reporting this issue.
For more information
If there are any questions or comments about this advisory:
Send an email to security@fleetdm.com Join #fleet in osquery Slack
{
"affected": [
{
"package": {
"ecosystem": "Go",
"name": "github.com/fleetdm/fleet/v4"
},
"ranges": [
{
"events": [
{
"introduced": "0"
},
{
"fixed": "4.87.0"
}
],
"type": "ECOSYSTEM"
}
]
}
],
"aliases": [
"CVE-2026-48786"
],
"database_specific": {
"cwe_ids": [
"CWE-200"
],
"github_reviewed": true,
"github_reviewed_at": "2026-08-12T15:18:13Z",
"nvd_published_at": null,
"severity": "MODERATE"
},
"details": "### Summary\n\nThe target search endpoint (`POST /api/latest/fleet/targets`) returned team enroll secrets and full team configuration, including credential-bearing agent options, to observer-class users. Other team-facing endpoints mask these fields for observers; the target search endpoint did not apply the same sanitization.\n\n### Impact\n\nAn authenticated user with Observer, Observer+, or Technician role (global or team-scoped) could retrieve unmasked team enroll secrets and team agent options by performing a target search against an observer-runnable query.\n\nWith a leaked team enroll secret, an attacker could enroll unauthorized hosts into the affected team. If the team\u0027s agent options contained credentials such as AWS secret access keys or proxy passwords, those values were also exposed.\n\n### Patches\n\n- v4.87.0\n\n### Workarounds\n\nIf an immediate upgrade is not possible, administrators should:\n\n- Rotate team enroll secrets for any team that may have been exposed\n- Rotate any credentials stored in team agent options (AWS keys, proxy passwords, session tokens)\n- Restrict Observer and Technician roles to fully trusted users until the patch is applied\n\n### Credits\n\nFleet thanks @fuzzztf for responsibly reporting this issue.\n\n### For more information\n\nIf there are any questions or comments about this advisory:\n\nSend an email to [security@fleetdm.com](mailto:security@fleetdm.com)\nJoin #fleet in [osquery Slack](https://join.slack.com/t/osquery/shared_invite/zt-h29zm0gk-s2DBtGUTW4CFel0f0IjTEw)",
"id": "GHSA-88p2-jj8w-j8qg",
"modified": "2026-08-12T15:18:13Z",
"published": "2026-08-12T15:18:13Z",
"references": [
{
"type": "WEB",
"url": "https://github.com/fleetdm/fleet/security/advisories/GHSA-88p2-jj8w-j8qg"
},
{
"type": "PACKAGE",
"url": "https://github.com/fleetdm/fleet"
},
{
"type": "WEB",
"url": "https://github.com/fleetdm/fleet/releases/tag/fleet-v4.87.0"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N",
"type": "CVSS_V3"
}
],
"summary": "Fleet: Observer-class users can view team enroll secrets and credential-bearing configuration via target search endpoint"
}
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.