Read-only views over the vulnerabilities found in the images your
workloads run. Findings come from Trivy Operator reports and, when the opt-in
supplychain matcher is enabled, from kguardian’s own Grype matcher, which
matches SBOMs. kguardian never blocks or applies anything.
kubectl kguardian vulns list [flags]kubectl kguardian vulns exposure <id> [flags]
For one image’s findings, or a CI gate, use
images vulns.
Unknown is not safe. Images no source has scanned are unknown and do not
appear here, so an empty list is not “no vulnerabilities”. An IN USE of
unknown means no runtime evidence either way: treat the finding as
potentially reachable. Tiers rank it as in use.
IN USE comes from the exec and shared-library capture: which files each
container ran, matched to the packages in the image’s SBOM.
Value
Meaning
executed, loaded
A binary the package owns ran, or a library it owns was mapped (including by dlopen()).
unknown
No evidence either way: no capture for the container, an interpreted-language package (npm, pip, jar), or no SBOM file list.
not-observed
Capture covered the container for the whole window and nothing the package owns ran. Not proof it never will.
TIER ranks findings, most urgent first:
Tier
Rule
P0
In use, in CISA KEV or EPSS at or above 10%, and exposed. A workload with no observed ingress counts as exposed, so a KEV finding there is P0.
P1
In use and critical or high, or the P0 factors without exposure.
P2
In use and medium or low, or high with no fix and not exposed.
Background
Installed and not observed.
- means the tier is not computed yet (the first pass after an upgrade, or a broker without tiers); it never means low risk. The EPSS threshold and exposure
default are Helm values (broker.supplychain.tiers); see the
vulnerability API.
Calls GET /vulnerabilities: every vulnerability affecting an inventory
image, grouped by id, in tier order (P0, then not yet computed, then
P1, P2, Background), most severe first within a tier. It reads a summary the broker
rebuilds every few minutes; when it was computed is printed on stderr.
Flag
Type
Description
Default
-n, --namespace
string
Only vulnerabilities affecting this namespace, with counts for it
all namespaces
--severity
string
Only these severities, comma-separated
all
--fixable
bool
Only vulnerabilities with a fix (--fixable=false: only without)
all
--running
bool
Only vulnerabilities with at least one running workload
off
--tier
string
Only these tiers, comma-separated: p0,p1,p2,background
all
--in-use
string
Only these in-use states: executed,loaded,unknown,installed_not_observed
all
--kev
bool
Only KEV-listed (--kev=false: only those a source says are not; unknown is excluded either way)
all
--epss-min
float
Only EPSS at or above this probability (0-1)
off
--limit, --after
Page size (max 500) and cursor
100
-o, --output
string
table, json or yaml
table
TIER SEVERITY ID SCORE FIXABLE KEV IN USE IMAGES WORKLOADS RUNNING EXPOSED NAMESPACES JOIN PACKAGESP0 HIGH CVE-2099-30001 7.5 yes yes loaded 1 2 2 1 1 image_id libfoo1P1 HIGH CVE-2099-10003 7.5 no unknown unknown 2 3 3 1 2 platform_manifest libexample
A CVE’s tier is its most urgent over every affected workload container in
scope, and IN USE its strongest state. EXPOSED counts workloads with
observed exposure.Counts are distinct images and workloads, so two sources reporting the same
CVE never count twice. KEVunknown means no source said either way.
JOIN is the weakest match behind the counts: workload_tag means some are
by tag only, and the tag may have moved since the scan.
Calls GET /vulnerabilities/{id}/exposure: the inventory images a
vulnerability affects, the workloads running (or having run) them, and each
workload’s observed ingress over the window.
Flag
Type
Description
Default
--window-hours
int
How far back traffic counts (max 720)
168
-o, --output
string
table, json or yaml
table
CVE-2099-10003 HIGH, no fix availableImages: DIGEST REPOSITORY TAGS PACKAGE INSTALLED FIXED JOIN sha256:000000000000 ghcr.io/example/storefront 3.2.0 libexample 1.2.3 - platform_manifest sha256:000000000000 ghcr.io/example/ledger 1.9.4 libexample 1.2.3 - image_idWorkloads: NAMESPACE WORKLOAD CONTAINER RUNNING IN USE EXPOSED VIA INGRESS FLOWS billing Deployment/catalog-sync sync true unknown unknown - 0 billing Deployment/ledger api true unknown no - 1 shop Deployment/storefront web true unknown yes other_namespace,unattributed,public_ip 2Exposure window: 168h of observed traffic. unknown = no ingress observed (egress alone does not count; inbound UDP is not captured), never "not exposed".In use: unknown. IN USE is from observed exec and shared-library capture: unknown is potentially reachable, not-observed only means not seen in the window; never treat the package as unreachable.
EXPOSED is observed traffic, not reachability analysis:
Value
Meaning
yes
Ingress seen from another namespace, an unattributed or public IP, or a node IP. VIA names which. node also covers kubelet probes and NodePort or LoadBalancer traffic.
no
Ingress was observed in the window and none of it came from outside. Not proof that none is possible.
unknown
No ingress observed in the window, even if the workload had egress. The controller does not capture inbound UDP, so a UDP-only server looks like this. Never “not exposed”.
FIXED lists every fixed version the sources give, in source order. A
vulnerability no inventory image with data lists exits non-zero with a
message saying that is not proof the cluster is unaffected.-o json and -o yaml print the broker’s response unchanged. Global flags
(--kubeconfig, --context, --broker-namespace, --broker-service,
--broker-token-file, --debug) are listed in the
CLI overview. A 401 or 403 prints a hint: these commands
need a token with the read scope.
# Critical and high, running somewhere in productionkubectl kguardian vulns list -n production --severity critical,high --running# What to fix first across the clusterkubectl kguardian vulns list --tier p0# Where a CVE runs, over the last day of traffickubectl kguardian vulns exposure CVE-2024-3094 --window-hours 24# Every exposed workload, for scriptingkubectl kguardian vulns exposure CVE-2024-3094 -o json | jq '.workloads[] | select(.network.exposed == true)'
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"kguardian","colors":{"primary":"#4E3AD9","light":"#7C6FF0","dark":"#3B2BA8"},"logo":{"light":"https://mintcdn.com/kguardian/6YRCkQe-kVxl3JCR/logo/light.svg?fit=max\u0026auto=format\u0026n=6YRCkQe-kVxl3JCR\u0026q=85\u0026s=6bae97e05cd0abadbb178dc1c2d81318","dark":"https://mintcdn.com/kguardian/6YRCkQe-kVxl3JCR/logo/dark.svg?fit=max\u0026auto=format\u0026n=6YRCkQe-kVxl3JCR\u0026q=85\u0026s=07f679dc8708835c45739dba7e2c15e5"},"favicon":"https://mintcdn.com/kguardian/6YRCkQe-kVxl3JCR/favicon.svg?fit=max\u0026auto=format\u0026n=6YRCkQe-kVxl3JCR\u0026q=85\u0026s=7e4cbcaecfed1a213655600e690646f2","navbar":{"links":[{"href":"https://kguardian.dev/quickstart","label":"Try kguardian"}],"primary":{"type":"button","label":"Star on GitHub ⭐","href":"https://github.com/kguardian-dev/kguardian"}},"footer":{"socials":{"github":"https://github.com/kguardian-dev/kguardian"}},"seo":{},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"GitHub","icon":"github","href":"https://github.com/kguardian-dev/kguardian"},{"anchor":"Community","icon":"comments","href":"https://github.com/kguardian-dev/kguardian/discussions"},{"anchor":"Releases","icon":"tag","href":"https://github.com/kguardian-dev/kguardian/releases"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"kguardian","hasAudioNarration":false,"actualSubdomain":"kguardian","customDomains":["docs.kguardian.dev"],"gitSource":{"type":"github","owner":"kguardian-dev","repo":"kguardian","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"entitlements":{},"buildId":"6abd63453568023cc1391435","clientVersion":"0.0.4094","searchFilterCounts":[{"language":"default","tag":"Documentation","count":40},{"language":"default","tag":"API Reference","count":13},{"language":"default","tag":"Endpoints","count":12},{"language":"default","tag":"Core Concepts","count":10},{"language":"default","tag":"CLI Reference","count":7},{"language":"default","tag":"Policy Gallery","count":7},{"language":"default","tag":"Getting Started","count":5},{"language":"default","tag":"User Guides","count":4},{"language":"default","tag":"Advanced","count":2},{"language":"default","tag":"Configuration Reference","count":2}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"cli/vulns","slug":"/cli/vulns","pageMetadata":{"title":"vulns","description":"List the vulnerabilities affecting your running images, and where one CVE runs and how exposed it is","icon":"bug","href":"/cli/vulns"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"List the vulnerabilities affecting your running images, and where one CVE runs and how exposed it is\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{CodeBlock,Heading,Table,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`synopsis`,children:`Synopsis`}),`\n`,_jsx(_components.p,{children:`Read-only views over the vulnerabilities found in the images your\nworkloads run. Findings come from Trivy Operator reports and, when the opt-in\nsupplychain matcher is enabled, from kguardian’s own Grype matcher, which\nmatches SBOMs. kguardian never blocks or applies anything.`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`kubectl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` kguardian`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` vulns`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` list`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [flags]`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`kubectl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` kguardian`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` vulns`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` exposure`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`i`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`d`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [flags]`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`For one image’s findings, or a CI gate, use\n`,_jsx(_components.a,{href:`/cli/images#images-vulns`,children:_jsx(_components.code,{children:`images vulns`})}),`.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Unknown is not safe.`}),` Images no source has scanned are unknown and do not\nappear here, so an empty list is not “no vulnerabilities”. An `,_jsx(_components.code,{children:`IN USE`}),` of\n`,_jsx(_components.code,{children:`unknown`}),` means no runtime evidence either way: treat the finding as\npotentially reachable. Tiers rank it as in use.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`in-use-and-tiers`,children:`In use and tiers`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`IN USE`}),` comes from the exec and shared-library capture: which files each\ncontainer ran, matched to the packages in the image’s SBOM.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Value`}),_jsx(_components.th,{children:`Meaning`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`executed`}),`, `,_jsx(_components.code,{children:`loaded`})]}),_jsxs(_components.td,{children:[`A binary the package owns ran, or a library it owns was mapped (including by `,_jsx(_components.code,{children:`dlopen()`}),`).`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`unknown`})}),_jsx(_components.td,{children:`No evidence either way: no capture for the container, an interpreted-language package (npm, pip, jar), or no SBOM file list.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`not-observed`})}),_jsx(_components.td,{children:`Capture covered the container for the whole window and nothing the package owns ran. Not proof it never will.`})]})]})]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`TIER`}),` ranks findings, most urgent first:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Tier`}),_jsx(_components.th,{children:`Rule`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`P0`})}),_jsx(_components.td,{children:`In use, in CISA KEV or EPSS at or above 10%, and exposed. A workload with no observed ingress counts as exposed, so a KEV finding there is P0.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`P1`})}),_jsx(_components.td,{children:`In use and critical or high, or the P0 factors without exposure.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`P2`})}),_jsx(_components.td,{children:`In use and medium or low, or high with no fix and not exposed.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Background`})}),_jsx(_components.td,{children:`Installed and not observed.`})]})]})]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`-`}),` means the tier is not computed yet (the first pass after an upgrade, or a broker without tiers); it never means low risk. The EPSS threshold and exposure\ndefault are Helm values (`,_jsx(_components.code,{children:`broker.supplychain.tiers`}),`); see the\n`,_jsx(_components.a,{href:`/api-reference/endpoints/vulnerabilities#risk-tiers`,children:`vulnerability API`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`vulns-list`,children:`vulns list`}),`\n`,_jsxs(_components.p,{children:[`Calls `,_jsx(_components.code,{children:`GET /vulnerabilities`}),`: every vulnerability affecting an inventory\nimage, grouped by id, in tier order (`,_jsx(_components.code,{children:`P0`}),`, then not yet computed, then\n`,_jsx(_components.code,{children:`P1`}),`, `,_jsx(_components.code,{children:`P2`}),`, `,_jsx(_components.code,{children:`Background`}),`), most severe first within a tier. It reads a summary the broker\nrebuilds every few minutes; when it was computed is printed on stderr.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Flag`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`}),_jsx(_components.th,{children:`Default`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`-n, --namespace`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Only vulnerabilities affecting this namespace, with counts for it`}),_jsx(_components.td,{children:`all namespaces`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`--severity`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Only these severities, comma-separated`}),_jsx(_components.td,{children:`all`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`--fixable`})}),_jsx(_components.td,{children:`bool`}),_jsxs(_components.td,{children:[`Only vulnerabilities with a fix (`,_jsx(_components.code,{children:`--fixable=false`}),`: only without)`]}),_jsx(_components.td,{children:`all`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`--running`})}),_jsx(_components.td,{children:`bool`}),_jsx(_components.td,{children:`Only vulnerabilities with at least one running workload`}),_jsx(_components.td,{children:`off`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`--tier`})}),_jsx(_components.td,{children:`string`}),_jsxs(_components.td,{children:[`Only these tiers, comma-separated: `,_jsx(_components.code,{children:`p0,p1,p2,background`})]}),_jsx(_components.td,{children:`all`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`--in-use`})}),_jsx(_components.td,{children:`string`}),_jsxs(_components.td,{children:[`Only these in-use states: `,_jsx(_components.code,{children:`executed,loaded,unknown,installed_not_observed`})]}),_jsx(_components.td,{children:`all`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`--kev`})}),_jsx(_components.td,{children:`bool`}),_jsxs(_components.td,{children:[`Only KEV-listed (`,_jsx(_components.code,{children:`--kev=false`}),`: only those a source says are not; unknown is excluded either way)`]}),_jsx(_components.td,{children:`all`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`--epss-min`})}),_jsx(_components.td,{children:`float`}),_jsx(_components.td,{children:`Only EPSS at or above this probability (0-1)`}),_jsx(_components.td,{children:`off`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`--limit`}),`, `,_jsx(_components.code,{children:`--after`})]}),_jsx(_components.td,{}),_jsx(_components.td,{children:`Page size (max 500) and cursor`}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`100`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`-o, --output`})}),_jsx(_components.td,{children:`string`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`table`}),`, `,_jsx(_components.code,{children:`json`}),` or `,_jsx(_components.code,{children:`yaml`})]}),_jsx(_components.td,{children:_jsx(_components.code,{children:`table`})})]})]})]}),`\n`,_jsx(CodeBlock,{numberOfLines:`4`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`4`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`TIER SEVERITY ID SCORE FIXABLE KEV IN USE IMAGES WORKLOADS RUNNING EXPOSED NAMESPACES JOIN PACKAGES`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`P0 HIGH CVE-2099-30001 7.5 yes yes loaded 1 2 2 1 1 image_id libfoo1`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`P1 HIGH CVE-2099-10003 7.5 no unknown unknown 2 3 3 1 2 platform_manifest libexample`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(_components.p,{children:[`A CVE’s tier is its most urgent over every affected workload container in\nscope, and `,_jsx(_components.code,{children:`IN USE`}),` its strongest state. `,_jsx(_components.code,{children:`EXPOSED`}),` counts workloads with\nobserved exposure.`]}),`\n`,_jsxs(_components.p,{children:[`Counts are distinct images and workloads, so two sources reporting the same\nCVE never count twice. `,_jsx(_components.code,{children:`KEV`}),` `,_jsx(_components.code,{children:`unknown`}),` means no source said either way.\n`,_jsx(_components.code,{children:`JOIN`}),` is the weakest match behind the counts: `,_jsx(_components.code,{children:`workload_tag`}),` means some are\nby tag only, and the tag may have moved since the scan.`]}),`\n`,_jsx(Heading,{level:`2`,id:`vulns-exposure`,children:`vulns exposure`}),`\n`,_jsxs(_components.p,{children:[`Calls `,_jsx(_components.code,{children:`GET /vulnerabilities/{id}/exposure`}),`: the inventory images a\nvulnerability affects, the workloads running (or having run) them, and each\nworkload’s observed ingress over the window.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Flag`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`}),_jsx(_components.th,{children:`Default`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`--window-hours`})}),_jsx(_components.td,{children:`int`}),_jsx(_components.td,{children:`How far back traffic counts (max 720)`}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`168`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`-o, --output`})}),_jsx(_components.td,{children:`string`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`table`}),`, `,_jsx(_components.code,{children:`json`}),` or `,_jsx(_components.code,{children:`yaml`})]}),_jsx(_components.td,{children:_jsx(_components.code,{children:`table`})})]})]})]}),`\n`,_jsx(CodeBlock,{numberOfLines:`16`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`16`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`CVE-2099-10003 HIGH, no fix available`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Images:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` DIGEST REPOSITORY TAGS PACKAGE INSTALLED FIXED JOIN`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` sha256:000000000000 ghcr.io/example/storefront 3.2.0 libexample 1.2.3 - platform_manifest`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` sha256:000000000000 ghcr.io/example/ledger 1.9.4 libexample 1.2.3 - image_id`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Workloads:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` NAMESPACE WORKLOAD CONTAINER RUNNING IN USE EXPOSED VIA INGRESS FLOWS`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` billing Deployment/catalog-sync sync true unknown unknown - 0`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` billing Deployment/ledger api true unknown no - 1`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` shop Deployment/storefront web true unknown yes other_namespace,unattributed,public_ip 2`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Exposure window: 168h of observed traffic. unknown = no ingress observed (egress alone does not count; inbound UDP is not captured), never \"not exposed\".`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`In use: unknown. IN USE is from observed exec and shared-library capture: unknown is potentially reachable, not-observed only means not seen in the window; never treat the package as unreachable.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`EXPOSED`}),` is observed traffic, not reachability analysis:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Value`}),_jsx(_components.th,{children:`Meaning`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`yes`})}),_jsxs(_components.td,{children:[`Ingress seen from another namespace, an unattributed or public IP, or a node IP. `,_jsx(_components.code,{children:`VIA`}),` names which. `,_jsx(_components.code,{children:`node`}),` also covers kubelet probes and NodePort or LoadBalancer traffic.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`no`})}),_jsx(_components.td,{children:`Ingress was observed in the window and none of it came from outside. Not proof that none is possible.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`unknown`})}),_jsx(_components.td,{children:`No ingress observed in the window, even if the workload had egress. The controller does not capture inbound UDP, so a UDP-only server looks like this. Never “not exposed”.`})]})]})]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`FIXED`}),` lists every fixed version the sources give, in source order. A\nvulnerability no inventory image with data lists exits non-zero with a\nmessage saying that is not proof the cluster is unaffected.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`-o json`}),` and `,_jsx(_components.code,{children:`-o yaml`}),` print the broker’s response unchanged. Global flags\n(`,_jsx(_components.code,{children:`--kubeconfig`}),`, `,_jsx(_components.code,{children:`--context`}),`, `,_jsx(_components.code,{children:`--broker-namespace`}),`, `,_jsx(_components.code,{children:`--broker-service`}),`,\n`,_jsx(_components.code,{children:`--broker-token-file`}),`, `,_jsx(_components.code,{children:`--debug`}),`) are listed in the\n`,_jsx(_components.a,{href:`/cli/overview`,children:`CLI overview`}),`. A `,_jsx(_components.code,{children:`401`}),` or `,_jsx(_components.code,{children:`403`}),` prints a hint: these commands\nneed a token with the `,_jsx(_components.code,{children:`read`}),` scope.`]}),`\n`,_jsx(Heading,{level:`2`,id:`examples`,children:`Examples`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`11`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`11`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Critical and high, running somewhere in production`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`kubectl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` kguardian`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` vulns`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` list`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -n`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` production`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --severity`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` critical,high`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --running`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# What to fix first across the cluster`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`kubectl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` kguardian`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` vulns`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` list`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --tier`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` p0`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Where a CVE runs, over the last day of traffic`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`kubectl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` kguardian`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` vulns`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` exposure`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` CVE-2024-3094`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --window-hours`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 24`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Every exposed workload, for scripting`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`kubectl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` kguardian`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` vulns`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` exposure`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` CVE-2024-3094`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -o`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` json`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` |`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:` jq`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '.workloads[] | select(.network.exposed == true)'`})]}),`\n`]})})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"vulns","description":"List the vulnerabilities affecting your running images, and where one CVE runs and how exposed it is","icon":"bug","href":"/cli/vulns"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Synopsis","slug":"synopsis","depth":2,"children":[]},{"title":"In use and tiers","slug":"in-use-and-tiers","depth":2,"children":[]},{"title":"vulns list","slug":"vulns-list","depth":2,"children":[]},{"title":"vulns exposure","slug":"vulns-exposure","depth":2,"children":[]},{"title":"Examples","slug":"examples","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"kguardian","siteName":"kguardian","title":"vulns - kguardian","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-29T06:07:43.412Z","originalFileLocation":"cli/vulns.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"List the vulnerabilities affecting your running images, and where one CVE runs and how exposed it is\">\u003cmeta data-mint-head name=\"application-name\" content=\"kguardian\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/kguardian/IMRPjMjU5UGmtWlA/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/kguardian/IMRPjMjU5UGmtWlA/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/kguardian/IMRPjMjU5UGmtWlA/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/kguardian/IMRPjMjU5UGmtWlA/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/kguardian/IMRPjMjU5UGmtWlA/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/kguardian/IMRPjMjU5UGmtWlA/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/kguardian/IMRPjMjU5UGmtWlA/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/kguardian/IMRPjMjU5UGmtWlA/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/kguardian/IMRPjMjU5UGmtWlA/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"vulns - kguardian\">\u003cmeta data-mint-head property=\"og:description\" content=\"List the vulnerabilities affecting your running images, and where one CVE runs and how exposed it is\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"kguardian\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.kguardian.dev/cli/vulns\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://kguardian.mintlify.site/_mintlify/api/og/v2?division=CLI+Reference\u0026amp;title=vulns\u0026amp;description=List+the+vulnerabilities+affecting+your+running+images%2C+and+where+one+CVE+runs+and+how+exposed+it+is\u0026amp;theme=ebc0cc9bc3f58f5ae17284ea\u0026amp;signature=694e9d04b569b77aca6dae9c4ce6c75cb47f9ffbbff2248afb5249ff0195aae7\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"vulns - kguardian\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"List the vulnerabilities affecting your running images, and where one CVE runs and how exposed it is\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://kguardian.mintlify.site/_mintlify/api/og/v2?division=CLI+Reference\u0026amp;title=vulns\u0026amp;description=List+the+vulnerabilities+affecting+your+running+images%2C+and+where+one+CVE+runs+and+how+exposed+it+is\u0026amp;theme=ebc0cc9bc3f58f5ae17284ea\u0026amp;signature=694e9d04b569b77aca6dae9c4ce6c75cb47f9ffbbff2248afb5249ff0195aae7\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/kguardian/IMRPjMjU5UGmtWlA/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"kguardian\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#4E3AD9\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.kguardian.dev/cli/vulns\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/cli/vulns.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.kguardian.dev/#organization\",\"name\":\"kguardian\",\"url\":\"https://docs.kguardian.dev\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/kguardian/6YRCkQe-kVxl3JCR/logo/light.svg?fit=max\u0026auto=format\u0026n=6YRCkQe-kVxl3JCR\u0026q=85\u0026s=6bae97e05cd0abadbb178dc1c2d81318\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.kguardian.dev#website\",\"name\":\"kguardian\",\"url\":\"https://docs.kguardian.dev\",\"publisher\":{\"@id\":\"https://docs.kguardian.dev/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.kguardian.dev/cli/vulns#webpage\",\"url\":\"https://docs.kguardian.dev/cli/vulns\",\"name\":\"vulns\",\"description\":\"List the vulnerabilities affecting your running images, and where one CVE runs and how exposed it is\",\"dateModified\":\"2026-09-29T06:07:43.412Z\",\"isPartOf\":{\"@id\":\"https://docs.kguardian.dev#website\"},\"breadcrumb\":{\"@id\":\"https://docs.kguardian.dev/cli/vulns#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.kguardian.dev/cli/vulns#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"CLI Reference\",\"item\":\"https://docs.kguardian.dev/cli/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"vulns\",\"item\":\"https://docs.kguardian.dev/cli/vulns\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.kguardian.dev/cli/vulns#article\",\"headline\":\"vulns\",\"name\":\"vulns\",\"description\":\"List the vulnerabilities affecting your running images, and where one CVE runs and how exposed it is\",\"url\":\"https://docs.kguardian.dev/cli/vulns\",\"mainEntityOfPage\":{\"@id\":\"https://docs.kguardian.dev/cli/vulns#webpage\"},\"dateModified\":\"2026-09-29T06:07:43.412Z\",\"publisher\":{\"@id\":\"https://docs.kguardian.dev/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.kguardian.dev#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"kguardian\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"kguardian","nav":{"global":{"anchors":[{"anchor":"GitHub","icon":"github","href":"https://github.com/kguardian-dev/kguardian"},{"anchor":"Community","icon":"comments","href":"https://github.com/kguardian-dev/kguardian/discussions"},{"anchor":"Releases","icon":"tag","href":"https://github.com/kguardian-dev/kguardian/releases"}]},"tabs":[{"tab":"Documentation","groups":[{"group":"Getting Started","pages":[{"title":"kguardian","icon":"house","href":""},{"title":"Quickstart Guide","icon":"rocket","href":"/quickstart"},{"title":"Installation Guide","icon":"download","href":"/installation"},{"title":"Verifying Releases","icon":"signature","href":"/verifying-releases"},{"title":"Architecture Overview","icon":"sitemap","href":"/architecture"}]},{"group":"Core Concepts","pages":[{"title":"Core Concepts","icon":"book-open","href":"/concepts/overview"},{"title":"eBPF Monitoring","icon":"radar","href":"/concepts/ebpf-monitoring"},{"title":"Network Policies","icon":"network-wired","href":"/concepts/network-policies"},{"title":"How Peers Are Attributed","icon":"fingerprint","href":"/concepts/peer-attribution"},{"title":"AuditNetworkPolicy","icon":"clipboard-check","href":"/concepts/audit-network-policy"},{"title":"ApplicationSecurityProfile","icon":"id-card","href":"/concepts/application-security-profile"},{"title":"ImageTrustPolicy","icon":"signature","href":"/concepts/image-trust-policy"},{"title":"Seccomp Profiles","icon":"shield-check","href":"/concepts/seccomp-profiles"},{"title":"Compute Contention","icon":"gauge-high","href":"/concepts/compute-contention"},{"title":"Policy as Code","icon":"code-branch","href":"/concepts/policy-as-code"}]},{"group":"User Guides","pages":[{"title":"Generating Network Policies","icon":"network-wired","href":"/guides/generating-network-policies"},{"title":"Connect an MCP Client","icon":"plug","href":"/guides/mcp-endpoint"},{"title":"Distributing Seccomp Profiles","icon":"shield-halved","href":"/guides/distributing-seccomp-profiles"},{"title":"Compute Gauges \u0026 Noisy Neighbours","icon":"gauge-high","href":"/guides/compute-gauges"}]},{"group":"Policy Gallery","pages":[{"title":"Generated Policy Gallery","icon":"images","href":"/policy-gallery/index"},{"title":"nginx (HTTP frontend)","icon":"server","href":"/policy-gallery/nginx"},{"title":"Postgres (stateful database)","icon":"database","href":"/policy-gallery/postgres"},{"title":"CoreDNS (cluster DNS)","icon":"signs-post","href":"/policy-gallery/kube-dns"},{"title":"Prometheus (scraping monitor)","icon":"chart-line","href":"/policy-gallery/prometheus"},{"title":"Istio sidecar (envoy)","icon":"diagram-project","href":"/policy-gallery/istio-sidecar"},{"title":"Go microservice (typical HTTP API)","icon":"gears","href":"/policy-gallery/go-microservice"}]},{"group":"CLI Reference","pages":[{"title":"CLI Overview","icon":"terminal","href":"/cli/overview"},{"title":"gen networkpolicy","icon":"network-wired","href":"/cli/gen-networkpolicy"},{"title":"gen seccomp","icon":"shield-check","href":"/cli/gen-seccomp"},{"title":"compute findings","icon":"gauge-high","href":"/cli/compute-findings"},{"title":"profile","icon":"shield-halved","href":"/cli/profile"},{"title":"images","description":"List the image digests your workloads run, their vulnerabilities, SBOMs and signers","icon":"box","href":"/cli/images"},{"title":"vulns","icon":"bug","href":"/cli/vulns"}]},{"group":"CRD Reference","pages":[{"title":"SeccompProfile","description":"The kguardian.dev/v1alpha1 SeccompProfile CRD: spec, status, printer columns, and what happens on delete","icon":"file-shield","href":"/reference/crds/seccompprofile"}]},{"group":"Configuration Reference","pages":[{"title":"Compute","icon":"gauge-high","href":"/reference/compute"},{"title":"Node catalog","icon":"box-archive","href":"/reference/node-catalog"}]},{"group":"Advanced","pages":[{"title":"Troubleshooting Guide","icon":"wrench","href":"/advanced/troubleshooting"},{"title":"Telemetry","icon":"satellite-dish","href":"/telemetry"}]},{"group":"Roadmap","pages":[{"title":"Future Supported Resources","icon":"map","href":"/roadmap/future-resources"},{"title":"Planned Features \u0026 Roadmap","icon":"flag-checkered","href":"/roadmap/planned-features"}]}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/introduction"}]}]},"basePath":"","title":"vulns - kguardian","buildId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","deploymentId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","dynamics":[],"chunks":[]}