Noah Talerman
Noah Talerman
Vulnerability processing in Fleet detects vulnerabilities (CVEs) for the software installed on your hosts.
To see what software is covered, check out the Coverage section.
Learn more about how it works for different platforms.
Fleet detects vulnerabilities for these software types:
Type | macOS | Windows | Linux |
---|---|---|---|
Apps | ✅ | ✅ | ❌ |
Browser plugins | Chrome extensions, Firefox extensions | Chrome extensions, Firefox extensions | ❌ |
Packages | Python, Homebrew | Python, Atom, Chocolatey | For Ubuntu, Debian, RHEL (including CentOS), and Fedora: packages defined in the OVAL definitions, except for vulnerabilities involving configuration files. For Amazon Linux, packages maintained by Amazon by checking ALAS advisories. |
IDE extensions | VS Code extensions | VS Code extensions | VS Code extensions |
Currently, only software names with all ASCII characters are supported. Vulnerabilities won't be detected for software with names featuring non-ASCII characters, such as Cyrillic, or software that has been renamed from its default name (e.g. "Chrome 2" instead of "Google Chrome"). For some software, Fleet uses custom rules to mitigate these issues on an app-by-app basis.
For Ubuntu Linux, kernel vulnerabilities with known variants (ie. -generic
) are detected using OVAL. Custom kernels (unknown variants) are detected using NVD.
If you find that Fleet is incorrectly marking software as vulnerable (false positive) or missing a vulnerability (false negative), please file a bug. When false positives are fixed, it may take two hous for the false positive to disappear after upgrading Fleet.
Fleet combines multiple sources to get accurate and up-to-date CVE information:
Fleet runs vulnerability downloading and processing via internal scheduled cron job. This internal mechanism is very useful for frictionless deployments and is well suited for most use cases. However, in larger deployments, where there can be dozens of Fleet server replicas sitting behind a load balancer, it is desirable to manage vulnerability processing externally.
The reasons for this are as follows:
It is possible to limit vulnerability processing to a single dedicated host, by setting
disable_schedule
to true
but still run one Fleet server as false
, but the drawback here is still having to dedicate resources
for this single host 24/7. The Fleet binary has a command which handles the same vulnerability processing, but will exit (successfully with 0) on completion. Using this sub-command we can delegate vulnerability processing
to external systems such as:
To opt into this functionality, be sure to configure your Fleet server deployment with
FLEET_VULNERABILITIES_DISABLE_SCHEDULE=true
which will disable the internal scheduling mechanism for vulnerability processing.
And then externally run with the same environment variables/configuration files passed to the server command.
fleet vuln_processing