Skip to content

[YAML design] Filtering for vulnerability exposure - #47114

Closed
kilo-code-bot[bot] wants to merge 13 commits into
docs-v4.88.0from
ntalerman/risk-registry-vuln-chart-filters
Closed

[YAML design] Filtering for vulnerability exposure#47114
kilo-code-bot[bot] wants to merge 13 commits into
docs-v4.88.0from
ntalerman/risk-registry-vuln-chart-filters

Conversation

@kilo-code-bot

@kilo-code-bot kilo-code-bot Bot commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

UPDATE: @noahtalerman: Marking this PR as draft until we know which release we're targeting.

Document the new vulnerability_settings section that allows users to
check in vulnerability chart filters via GitOps configuration. Includes
software category filters, known exploit toggle, CVSS severity range,
probability of exploit range, and CVE exclusion list.
@noahtalerman
noahtalerman marked this pull request as draft June 8, 2026 17:40
Comment thread docs/Configuration/yaml-files.md Outdated
Comment thread docs/Configuration/yaml-files.md Outdated
Comment thread docs/Configuration/yaml-files.md Outdated
Comment thread docs/Configuration/yaml-files.md Outdated
@noahtalerman noahtalerman changed the title Docs: Add vulnerability_settings (risk registry) to GitOps YAML reference [YAML design] Filtering for vulnerability exposure Jun 8, 2026
Comment thread docs/Configuration/yaml-files.md Outdated
Comment thread docs/Configuration/yaml-files.md Outdated
Comment thread docs/Configuration/yaml-files.md Outdated
Comment thread docs/Configuration/yaml-files.md Outdated
@noahtalerman
noahtalerman marked this pull request as ready for review June 10, 2026 15:11
Comment thread docs/Configuration/yaml-files.md Outdated
Comment thread docs/Configuration/yaml-files.md Outdated
@noahtalerman
noahtalerman marked this pull request as draft June 10, 2026 16:21
Comment on lines +767 to +772
epss_score:
min: 0
max: 100
cvss_score:
min: 9
max: 10

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For the purpose of keeping the YAML and API close together, can we flatten these to:

  • epss_min
  • epss_max
  • cvss_min
  • cvss_max
Suggested change
epss_score:
min: 0
max: 100
cvss_score:
min: 9
max: 10
epss_min: 0
epss_max: 100
cvss_min: 9
cvss_max: 10

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also CVSS should be left out of this revision or else a comment put in that it won't do anything yet.

@lukeheath

Copy link
Copy Markdown
Member

@noahtalerman Reminder this needs to be merged - the code just merged. Also the docs branch needs to be updated to 4.89.0 since we're issuing a mid-cadence release of 4.88.0.

@AndreyKizimenko

Copy link
Copy Markdown
Member

@noahtalerman heads up — this draft's YAML doesn't match the field names/shape that actually shipped in the merged implementation (#47634, in the 4.89.0 RC).

The source of truth is VulnExposureFilterSettings in server/fleet/app.go. The block uses flat fields, not the nested epss_score/cvss_score objects shown here, and several key names differ:

This draft Merged code (app.go)
software_categories (os, browser, microsoft_office, adobe) software_filters (os, browsers, office, adobe)
epss_score: {min, max} epss_min / epss_max
cvss_score: {min, max} cvss_min / cvss_max
exclude_cves exclude_vulnerabilities
has_known_exploit has_known_exploit (matches)

Validation in the merged code (VulnExposureFilterSettings.Validate):

  • software_filters — valid values os, browsers, office, adobe; must include at least one (explicit empty list is rejected).
  • cvss_min/cvss_max — 0–10, min <= max.
  • epss_min/epss_max — 0–100 in YAML (converted to 0–1 on the chart API), min <= max.
  • exclude_vulnerabilities — must match CVE-\d{4}-\d{4,} (case-insensitive).

So the docs example should read something like:

org_settings:
  features:
    vulnerability_exposure_historical_reporting:
      software_filters:
        - os
        - browsers
        - office
        - adobe
      has_known_exploit: true
      epss_min: 0
      epss_max: 100
      cvss_min: 9
      cvss_max: 10
      exclude_vulnerabilities:
        - CVE-2025-50897
        - CVE-2025-76306

Could you update the draft to match the shipped field names before it merges? Otherwise the published docs will describe a schema that GitOps will reject. Thanks!

@noahtalerman

Copy link
Copy Markdown
Member

@AndreyKizimenko thanks for the heads up! Looking into this 👀

@noahtalerman

Copy link
Copy Markdown
Member

Closing out this PR because the changes are already live on the website: https://fleetdm.com/docs/configuration/yaml-files#org-settings-and-settings

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants