Files
Juan Fernandez 9cb3a5e206 Check trusted location before from_webstore in chromiumSideloaded
Resolves #50706

chromiumSideloaded returned true as soon as from_webstore was 0, never
reaching the trusted-location check. First-party browser components are
installed by the browser itself and so always report
from_webstore:false, which made the location exemption unreachable and
flagged components like Edge Copilot Bridge as sideloaded_unverified.

Check location for Internal/Component first. The existing collector
fixture asserted the buggy behaviour and is updated to a genuinely
sideloaded location, with a first-party component case added.
2026-08-07 15:39:47 -04:00
..

ai_tools (vendored)

This package provides the fleetd ai_tools osquery table: a unified inventory of AI software (desktop apps, IDE plugins, agent CLIs, MCP servers, live AI/MCP sockets, agent instruction files, and browser extensions) with a type discriminator and per-row risk_flags, sha256, and JSON detail columns.

Provenance

The source under this directory is vendored (copied into the tree), not imported as a Go module dependency.

The upstream tables package was renamed to ai_tools, and the import prefix github.com/karmine05/agentic-detector/ was rewritten to github.com/fleetdm/fleet/v4/orbit/pkg/table/ai_tools/. ai_tools.go adds the exported Columns()/Generate() wrappers used to register the table in orbit/pkg/table/extension.go.

Modifications beyond the mechanical import

  • Lint compliance with Fleet's linters (set types, modernize idioms, defensive nil guards); all behavior-preserving.
  • Security hardening for running in-process in the root/SYSTEM orbit daemon: regular-file-only reads that never follow symlinks or block on FIFOs/devices (internal/fsutil), path-traversal containment for attacker-controlled config/manifest/plist fields, removal of outbound DNS resolution of untrusted MCP hostnames (internal/netsock), owner-based (not name-based) uid/username attribution (internal/homes), and panic recovery at the Generate boundary.

License

⚠️ At the vendored commit (7c942d0), the upstream repository contained no LICENSE file and no license header in its source. Redistributing it therefore has no explicit grant. This must be resolved with the author before this code ships (e.g. obtain an explicit license, or a written contribution grant).