Reading Slack notifications
Where to find reports
Slack channel notifications show changes and unresolved state, while Bot threads provide details. See Remediation plans in Slack for the remediation plan display.
Channel reports
| Report | Content |
|---|---|
diff mode |
Changes since the previous scan and the current unresolved state |
full mode |
Unresolved findings confirmed by the current scan |
| Weekly report | A full report of current unresolved findings, added to the diff notification |
Diff notifications with changes display Changes since the last scan., and full mode displays Everything currently open.
The weekly report heading is 📋 Weekly full report — everything currently open.
Empty sections are omitted. With triage enabled, Low remains count-only even in a full report; complete details are available in the generic webhook.
When a generic webhook is configured, the message includes Details in the generic webhook payload.
See Scan notification conditions for when notifications are sent.
Thread reports
Bot threads show details as of that report under the heading 📊 Everything open now — YYYY-MM-DD HH:MM.
The thread attaches to the first channel message, even when the channel report spans multiple messages.
| Footer of the first channel message | Destination |
|---|---|
📊 Everything open now is in this message's thread ↓ |
The thread posted this cycle |
🔗 Everything open as of the last report → thread |
The previously posted report thread |
The previous report link points to the content as it was when that report was created. See the channel's current unresolved counts for the current unresolved state.
Long notifications are split into multiple messages, with (cont.) on continued headings and a part number such as (cont. 2/3) on channel continuations.
The footer is omitted when no valid link exists or the link cannot be displayed.
See Slack thread delivery conditions for when a new thread is posted.
Notification language
Slack's standard text uses the configured notification language. See Configuration for language settings and their scope.
| Content | Handling in Japanese notifications |
|---|---|
| Headings, sections, changes, warnings, runtime usage, and guidance | Displayed in Japanese |
| CVE IDs, package names, versions, paths, commands, and image names | Original notation preserved |
Severities such as CRITICAL and HIGH |
Original notation preserved |
| Trivy descriptions, scan failure errors, and discussion link labels | Displayed without translation |
Section order
Depending on the report type, changes appear first or current unresolved findings appear by section.
Diff report order
Cycles with changes and weekly reports use the following order. Sections without applicable content are omitted.
| Order | Content |
|---|---|
| Beginning | Header, image counts, and Sensor warnings |
| Before changes | Warnings about unavailable threat intelligence sources |
| Image changes | Content changes and reference updates |
| EOL changes | New EOL base operating systems and EOL package changes |
| Package changes | Ordinary new or changed findings, resolutions, and EOL clearances |
| End | Weekly current-state report, or scan failures and current unresolved state |
Unchanged notifications outside the weekly report day show No changes since last scan. followed by scan failures and the current unresolved state.
Identity-unconfirmed and holding annotations follow the unresolved state or full report.
With triage enabled, ordinary new or changed findings are ordered by priority, image name, and package name.
Current-state report order
With triage enabled, unresolved findings appear in the following order. Bot threads use the same section order.
| Order | Japanese section | English section |
|---|---|---|
| First | ベースOSのサポート終了(EOL) | EOL base |
| Next | パッケージのサポート終了(EOL) | EOL package |
| By priority | 今すぐ対応 → 要監視 → 低優先度 | Act now → Watch → Low |
In full channel reports, threat intelligence warnings appear immediately after the Priority: line, before the EOL sections.
In weekly reports, these warnings appear near the beginning of the diff portion and are not repeated in the full report.
Scan failures and stale intelligence notes appear after the sections of the channel's current-state report.
When runtime usage is enabled, packages in use and images containing them appear first within each priority. Exposure and privilege also affect the order among packages in use, but do not change priority itself.
Order with triage disabled
With triage disabled, findings appear by fix status after the EOL sections.
| Order | Displayed section |
|---|---|
| Fix available | ✅ Actionable now (fixed) |
| No fix available | ℹ️ No fix yet (affected / waiting on upstream) |
| No fix planned | 🔕 No fix planned for this OS release (will_not_fix) |
Actionable now means a fix is available and differs from the triage priority Act now.
See Fix status for status meanings.
In the channel, fixed findings that need attention appear individually, and the remaining findings are summarized by image. Runtime usage does not affect the order.
Reading counts
Images, packages, and CVEs use different counting units. Counts within the same notification may therefore differ.
Image counts
The header's N images scanned, M affected uses the following counting units.
| Japanese display | English | Counting unit |
|---|---|---|
| スキャンした件数 | images scanned | Distinct image reference-and-identity pairs, including failures |
| 影響ありの件数 | affected | Image references with a selected vulnerability or an EOL base OS |
Separate references count separately in the scanned count, even when they share the same scan result. References with only scan failures are excluded from the affected count.
Current unresolved counts
📌 Open now: shows the unresolved state remaining after the current scan.
EOL and priority counts include history retained from the previous cycle.
| Display | Counting unit |
|---|---|
⛔ N EOL base |
Image references recorded as EOL |
⛔ N EOL package |
Image reference-and-package pairs not folded into a base OS |
🚨 N act-now |
Image reference-and-package pairs with Act now priority on the ordinary or EOL side |
👀 N watch · 🔕 N low |
Pairs by ordinary package priority, excluding those counted as Act now |
EOL Watch and Low findings are not added to the priority counts. EOL package and Act now counts may overlap.
With triage disabled, CRITICAL and HIGH sum the CVE counts of each package group in the current report.
The same CVE is counted separately if it appears in different groups.
When the current report contains no findings, the following states appear instead of counts.
| State | Display |
|---|---|
| Package history retained because Kubernetes identities are unconfirmed | 📌 Open now: unconfirmed — holding previous findings until re-confirmed |
| Previous history retained for another reason | 📌 Open now: not re-scanned — holding previous findings until the next successful scan |
| No retained history either | 🎉 Open now: none — all clear |
Priority line counts
Priority: in a current-state report counts package groups in the current report.
Groups with different fix statuses or different identities under the same reference count separately.
| Count | Included items |
|---|---|
| EOL base | EOL image references |
| EOL package | EOL groups not folded into a base OS |
| Act now | Act now groups, including EOL groups |
| Watch and Low | Ordinary package groups at each priority |
This differs from current unresolved counts, which combine findings for the same reference and package. See Muted findings for exclusions due to muting.
Unresolved age
The oldest unresolved age is measured from the earliest first-seen timestamp among the included records.
The age appears after one day, with ⏰ added at 14 days or more.
| Triage | Included in the oldest unresolved age |
|---|---|
| Enabled | Ordinary Act now and Watch findings, EOL base operating systems, and individually displayed EOL packages |
| Disabled | All ordinary packages and EOL findings |
EOL packages folded into a base OS use the base OS's first-seen-as-EOL date. However, Act now EOL packages contribute their own first-seen-as-EOL date even when folded.
Retained history is also included. With triage enabled, ordinary packages determined to be muted this cycle are excluded from the oldest unresolved age.
| Example display | Meaning |
|---|---|
⏰ oldest act-now/watch unresolved 20 day(s) |
Oldest unresolved age with triage enabled, including EOL |
⏰ oldest unresolved 20 day(s) |
Oldest unresolved age with triage disabled |
⏱ open 20 day(s) · first seen 2026-06-04 |
That package's age on a thread card |
⏱ first seen today |
Thread card display when the age is zero days |
The generic webhook uses a different set of records for its age calculation. See Oldest unresolved age when comparing them.
Reading package cards
Packages appear in cards headed ◆ name.
In the channel, Act now uses detailed cards, while Watch and other findings use compact cards.
| Item | Detailed card | Compact card |
|---|---|---|
| Installed and fixed versions | Separate lines | Same line |
| Upgrade risk | Upgrade risk: line |
In parentheses after the fixed version |
| Finding counts | CRITICAL and HIGH counts |
Same |
| CVEs | Top CVE, exploitation information, and references | Top CVE when available |
| Runtime usage | Evidence of observed use | Short display when in use |
Findings: counts distinct CVE IDs within that package and fix-status group.
When no fixed version is available, Fixed in: none appears, and detailed cards may include mitigation or replacement guidance.
CVE details
Top CVE: is the CVE with the strongest assessment in the group.
Selection uses priority, whether an EPSS score is available, higher EPSS, and then CVE ID.
| Location | Other CVEs |
|---|---|
| Detailed channel card | Adds (+N more CVE(s) in this package) to the Top CVE: line |
| Thread | Lists IDs under Other CVEs: and summarizes omitted IDs as (+N more) |
| Diff card | Shows added IDs as Change: new CVEs: ... |
EPSS n/a in a detailed card means no score is available.
Very small values appear as <0.1%, and very large values as >99%.
Summary: in a thread displays Trivy's description.
See Vulnerability fields for complete CVE data without omissions.
Upgrade risk
Upgrade risk describes the type of version change to the fixed version.
| Display | Meaning |
|---|---|
🟢 distro security patch |
Fixed version of an OS package |
🟢 low-risk |
Language-package change without a major version increase |
🟠 major version bump — needs care |
Language-package change that increases the major version |
⚪ risk unknown |
Change whose versions cannot be compared |
Green indicators do not guarantee update safety or compatibility.
Ecosystem labels
Language-package names include an ecosystem tag, such as ◆ setuptools [python-pkg].
| Display | Applies to |
|---|---|
[python-pkg], [npm-pkg], [gobinary], [jar], and similar tags |
Language-package type identified by Trivy |
[lang] |
Language package whose type cannot be identified |
| No tag | OS package |
These tags appear whether or not the Sensor is enabled.
Reference links
References: shows links related to the top CVE.
| Display | Destination |
|---|---|
advisory |
Primary advisory provided by Trivy |
vendor advisory |
Vendor or CISA information from KEV notes |
💬 HN (N pts) |
Related Hacker News discussion (N is its points) |
CVE IDs on the Top CVE:, Other CVEs:, and Change: lines link to NVD.
Non-CVE identifiers such as GHSA and DLA IDs appear as plain text.
CISA KEV (exploited in the wild) and 🧨 ransomware campaign under Exploitation: describe information available for the top CVE.
See Exploitation-based priority for priority decisions.
Change labels
Diff notifications show image, package, and EOL changes separately. See Change and history decisions for the rules that establish a change.
Image changes
| Display | Meaning |
|---|---|
🔄 Image content changed (N) |
Section for image identity changes under the same reference |
image updated (old → new) |
Short digests before and after the change |
🔄 Image reference updated: repo sha-A → sha-B (history carried over) |
Reference update with detection history carried over |
Reference update lines show the repository name and the tags before and after the change.
Digest-pinned references use short digests, and references with neither a tag nor a digest use latest.
When a reference has multiple identities, current-state image headings distinguish them with short digests and platforms such as linux/amd64.
Package changes
| Display | Meaning |
|---|---|
🆕 New since last scan (N) |
New packages and changed known packages |
Change: ⬆️ escalated to ACT NOW |
A known package's priority increased |
Change: ⬆️ escalated to WATCH |
Priority increased to Watch |
Change: new CVEs: CVE-ID |
Newly added CVE |
Change: fix now available |
A fixed version became available |
✅ Resolved since last scan (N) |
Section combining package resolutions and EOL clearances |
The count in the new-findings heading is the number of displayed image reference-and-package pairs. It may differ from the number of cards when a pair has multiple fix statuses.
New packages may have no dedicated Change: line.
See Muted findings for labels when notifications resume after muting.
EOL display
When an image has an EOL base OS, its EOL packages are folded into the base-OS line. Act now EOL packages also show details in the Act now section, even when folded.
| Display | Meaning |
|---|---|
includes N end-of-life package(s) |
EOL packages folded into the base-OS line |
Details: 🚨 see Act now |
EOL package details appear in the Act now section |
includes N newly end-of-life package(s) |
Packages detected alongside a new EOL base OS and folded into its line |
N package(s) newly end-of-life |
Newly EOL packages under an already EOL base OS |
N end-of-life package(s) with new CVEs |
Added CVEs for packages under an already EOL base OS |
base OS no longer EOL |
Change where the base-OS EOL record is removed |
no longer end-of-life |
EOL package moved to ordinary findings |
New EOL packages other than Act now that are folded into a new EOL base OS are excluded from the EOL package diff heading count. Changes folded into an already EOL base OS are included in the diff heading count.
Vulnerability findings may remain after EOL clears. See Finding classification for EOL meanings and Resolution decisions for clearance rules.
Runtime usage display
When Sensor information is available, packages show runtime usage. See Runtime usage for usage decisions and observation limits.
Usage labels
| Japanese display | English | Meaning |
|---|---|---|
▶ 使用中 |
in use | Finding with confirmed use |
▷ 使用が確認されない |
not observed | Finding with no use confirmed during the observation window |
▷ 稼働時の使用状況を判定できない (理由) |
unavailable | Finding without the evidence needed to determine usage |
Channel messages show runtime usage for findings in use. Detailed thread cards also show when use was not observed or could not be determined.
Compact cards use a short display such as Runtime: ▶ in use (running).
In current-state reports and the thread, Low findings have no individual cards; the section count includes the number in use.
In the changes, new Low findings and added CVEs are shown as compact cards.
The following phrases describe why usage cannot be determined.
| Area | Reason text |
|---|---|
| Sensor or evidence collection | sensor not reporting, sensor report is stale, evidence invalid, sensor isolation failed, permission denied |
| Observation preparation and continuity | index not built yet, worker stalled, evidence truncated, evidence incomplete |
| Container | container generation unverified, container not observed |
| Package information | package database parse failed, package database absent, package database error, package database unsupported |
| File attribution | no file list for this package, multiple owners, file replaced, version mismatch |
| Language-package attribution | ecosystem not mapped, binary path unknown |
| Other | unknown |
Runtime evidence
Detailed cards show Evidence: after Runtime:.
Exposure, privilege, and the last confirmation time also appear when available.
| Display | Meaning |
|---|---|
running as · loaded by |
Program confirmed to be running or loading the package |
executed · library loaded |
Activity confirmed through events |
in running binary · binary executed |
Observation of a binary containing the language package |
runtime is running · runtime executed |
Observation of the runtime associated with the language package |
published on all interfaces |
Port published on all host interfaces |
published on loopback only |
Port published on host loopback |
listening (not published) |
Listening without publishing a port |
runs with elevated privilege |
Evidence of execution with elevated privilege |
last confirmed |
Time use was last confirmed |
Detailed in-use displays show observations from a representative container.
When multiple programs use a package, activity and the processes: list may appear separately.
Runtime: ▶ in use
Evidence: running as /usr/sbin/nginx
Exposure: published on all interfaces · runs with elevated privilege · last confirmed 06-24 09:00
Muted findings
Muted findings have no individual lines and appear as a count instead.
- Excluded from
Priority:counts and current unresolved priority counts - Excluded from current unresolved
CRITICALandHIGHcounts when triage is disabled - Included in “not observed” runtime counts, so those counts overlap with the muted count
- Included in retained unresolved counts when previous history is retained and muting cannot be evaluated this cycle
When notifications resume, a label such as Change: ↩️ Unmuted (now in use) appears.
If a change such as a newly available fix or a priority escalation applies, that change's label is used.
See Muting findings without a fix for muting conditions and reasons notifications resume.
Reading warnings
Warnings describe limitations when interpreting the current results. Scan, threat intelligence, and Sensor warnings cover different areas.
Scan warnings
| Display | Meaning |
|---|---|
⚠️ Scan failures |
Scan failure or digest or platform verification failure |
identity unconfirmed: scanned by reference |
Reference containing an identity that could not be identified by a Docker config digest at discovery |
⚠️ identity unconfirmed: scanned by reference — reference list |
Annotation listing those references |
⏳ unconfirmed this cycle, holding previous findings — reference list |
Kubernetes references containing targets whose identities could not be pinned despite successful scans |
Identity-unconfirmed annotations use discovery information independently of scan results. They may list every Kubernetes reference.
The holding annotation may also appear for references without previous history. References whose scans all failed this cycle are excluded from this holding list.
Slack's identity-unconfirmed annotation and each image's identity verification result in the webhook cover different scopes. See Image identity for the corresponding data and Failed scans for retention behavior.
Threat intelligence warnings
| Display | Limitation |
|---|---|
⚠️ Vulnerability intel (KEV/EPSS) unavailable — severity-only triage, nothing demoted to low |
Neither source is available |
⚠️ CISA KEV data unavailable — act-now detection may be incomplete |
KEV information is unavailable |
⚠️ EPSS data unavailable — triage is using KEV and severity only |
EPSS information is unavailable |
Intel data is N day(s) old (feeds unreachable). |
Previously retrieved information is used because it could not be refreshed |
See Section order for warning placement and Unavailable threat intelligence for the effect on decisions.
Sensor warnings
When Sensor information has a problem, a warning appears near the beginning of the channel report.
The following phrases describe the reason.
the Sensor has not reported yetthe evidence file failed validationthe Sensor's last report is stalethe Sensor's reads are being deniedthe Sensor's sandbox failed to startthe Sensor's sandbox is running degradedthe Sensor is degraded
Even when the Sensor status is healthy, unavailable eBPF event observation produces a warning such as the following.
⚠️ Short-lived programs are not observed (eBPF unavailable: kernel unsupported); using sampling only
Event observation reasons are kernel unsupported, BTF missing, permission denied, attach failed, cgroup v1, and unknown.
See Runtime usage for Sensor status meanings and observation limits.