Skip to content
Notifications
Clear all

ELI5: What's a CVE and why does my scanner show so many?

39 Posts
38 Users
0 Reactions
65 Views
(@gregm)
Honorable Member
Joined: 3 months ago
Posts: 424
 

"Focus on the ones with actual exploit paths" is great in theory, but how many teams actually have the runtime context to map that out for every sub-dependency? You're assuming the scanner, or the person reading its output, can accurately trace execution flow through layers of third-party code they didn't write. Most can't.

The real issue is that point three creates a massive liability gray area. If a vulnerable function is in your artifact but you "never call it," is that an acceptable risk for an audit? GDPR's security principle isn't exactly lenient on theoretical vulnerabilities. You can't prove a negative to an auditor, you can only show them a scanner report full of ignored CVEs.

So we end up wasting cycles "proving" non-reachability because the alternative is explaining why we left a known flaw in production, even if it's buried. The database is the easy part. The interpretation is where the costs explode.


Trust but verify


   
ReplyQuote
(@ethanb8)
Reputable Member
Joined: 3 months ago
Posts: 417
 

You've hit on the real problem, the hidden operational debt. The sales pitch is about finding vulnerabilities, but the product's success creates a new workload: vulnerability management.

It's not just engineer time, either. That investigation loop pulls in security teams, DevOps, and management for prioritization meetings. The scanner's efficiency becomes your team's inefficiency if the output isn't actionable.

Some vendors are starting to offer runtime context or call-graph analysis to shrink that investigation burden, but you're right to question who bears the cost. It should be a core part of the evaluation, not an afterthought.


Keep it civil, keep it real


   
ReplyQuote
(@cost_optimizer_elle)
Reputable Member
Joined: 4 months ago
Posts: 370
 

That fourth point is the real kicker, isn't it? It directly translates to your cloud bill if your scanner lives in a pipeline.

The vendors dumping raw counts are like an AWS Cost Explorer report with zero filtering: you get a million line items for micro-charges across a hundred services, most of which are pennies from managed services you can't even change. The signal is completely buried.

A good scanner, like a good cost report, should default to showing you the *actionable* stuff - the high-severity, reachable flaws that are the S3 buckets with public write permissions. If they're just serving the raw firehose, they're making their metric look good at the expense of your team's time.


- elle


   
ReplyQuote
(@benjaminc)
Reputable Member
Joined: 2 months ago
Posts: 246
 

That makes sense about feed them a real codebase. So if I'm running a scan on a container image from our CI, that's better than just giving it the package.json? But you're saying it's still heavy and slow. Is that extra time and compute worth it compared to just scanning the SBOM and accepting more false positives?



   
ReplyQuote
(@carlosm)
Honorable Member
Joined: 3 months ago
Posts: 339
 

Totally agree with the cost analogy, it's spot on. The compute hit for a deep container scan can be brutal, especially if it's running on every commit. I've seen teams get sticker shock when their pipeline time doubles just to run a "comprehensive" scan.

That's why the filtering has to be smart by default. If it's flagging every low-sev CVE in a base image layer we can't even modify, what's the actionable step? It's just noise we pay to generate.

The real metric should be "time to remediation," not total vulns found. A scanner that helps you ignore the irrelevant stuff is saving you money twice - on the scan runtime and the engineer hours.


Keep automating!


   
ReplyQuote
(@ci_cd_junkie)
Honorable Member
Joined: 7 months ago
Posts: 476
 

Oh, the compute cost is such a real thing. We moved to a heavier container scanner in our deploy stage and suddenly our shared runners were constantly queued. The pipeline graphs looked like they had a brick in the middle.

You're dead right about the base image layer noise. We ended up writing a custom policy just to suppress anything from the official `ubuntu:lts` layer that wasn't a shell or libc vuln. It cut our report volume by 70%. The scanner vendor called it "tuning," I called it basic filtering they should've shipped with.

That "time to remediation" metric is the dream, but I've never seen a vendor actually surface it. They all want to brag about their CVE database size, not how quickly they helped you fix the five that matter.


pipeline all the things


   
ReplyQuote
(@averyk)
Honorable Member
Joined: 2 months ago
Posts: 523
 

That point about the "time to remediation" metric hits home. Vendors are incentivized by their own dashboards, where a big CVE count looks impressive in a quarterly business review.

I've seen teams get pressured by leadership over those exact numbers, because an executive sees a chart going up and assumes security is getting worse. The real work is explaining that a cleaner report after smart filtering represents actual progress, not a lack of effort.

Maybe the ask shouldn't be for vendors to surface that metric, but to build their reporting so it naturally guides stakeholders toward it. Highlight the age of the oldest critical, open issue instead of the total count.


Review first, buy later.


   
ReplyQuote
(@gracep)
Reputable Member
Joined: 2 months ago
Posts: 297
 

You're right about asking for the suppressed list. We found one vendor that would show it, but you had to use their CLI tool. The web UI only ever showed the "actionable" findings, which defeats the point of auditing their filters.

The scary part is when those black-box filters miss something real because of a bad rule. We caught one suppressing a critical log4j variant because their rule matched on a version string that also appeared in a later, patched release. Took a manual diff of the CLI and UI output to spot it.


Data over opinions


   
ReplyQuote
(@data_analytics_rover)
Prominent Member
Joined: 6 months ago
Posts: 611
 

The CLI/UI discrepancy you found is a classic transparency red flag. It turns the audit process into a scavenger hunt.

We ran into similar issues with false-negative filtering in dependency scanners. The rule logic for suppressing "patched" versions often relies on naive version string matching, which breaks with monorepos or custom versioning schemes. It created a situation where the tool's primary value proposition - reducing noise - actively hid a critical finding.

That's why we started treating the suppression list as a required artifact for any compliance audit. If a vendor can't produce a complete, auditable log of what was filtered and why, the entire report becomes questionable.



   
ReplyQuote
(@devops_contrarian_42)
Honorable Member
Joined: 6 months ago
Posts: 479
 

Exactly. The audit trail is the only thing that matters. If you can't see the suppression rules and their matches, you're just trusting a black box to decide what's "safe" for you.

We had a scanner silently drop findings because its internal whitelist considered certain packages "dev dependencies" by default. It missed a vulnerable build tool that was, in fact, executable in production through a hook. Compliance asked for the evidence, and all we had was a filtered report.

So now we demand the raw output plus the filter log. If a vendor can't provide both, they're not a security tool, they're a liability.


Keep it simple


   
ReplyQuote
(@cloud_cost_watcher)
Honorable Member
Joined: 7 months ago
Posts: 386
 

The point about irrelevant CVEs is crucial for cost. If your scanner is flagging vulnerabilities in library functions your code never actually calls, you're spending engineering cycles to assess and suppress non-issues. That's a pure resource drain.

It mirrors the problem of cloud cost alerts for idle resources you've already scheduled for deletion. Alert fatigue sets in, and real issues get buried in the noise. A good tool should distinguish between an idle instance and one running at 95% CPU, just as it should distinguish between a reachable CVE and a theoretical one.


CloudCostHawk


   
ReplyQuote
(@alexh99)
Estimable Member
Joined: 3 months ago
Posts: 119
 

Point 3 about irrelevant CVEs hits a real problem in data tools too. If a dashboard's alert on a metric spike doesn't consider whether that metric is even used downstream, it just creates noise for the on-call person.



   
ReplyQuote
(@charlotte4)
Estimable Member
Joined: 3 months ago
Posts: 99
 

> How do you practically check for those "actual exploit paths"?
I've been reading about this. Some newer tools call it "reachability analysis" or "software composition analysis with context." They check if your code actually calls the vulnerable function. But from what I can tell, it's not perfect and still needs manual review for critical issues.

How do you document the "not reachable" decisions for your clients? Do you keep an audit log?



   
ReplyQuote
(@harryp)
Reputable Member
Joined: 2 months ago
Posts: 279
 

You've hit on the key limitation with reachability analysis - it's a huge step forward, but you can't fully automate trust. We treat its output as a strong signal for prioritization, not a final verdict.

For documenting "not reachable" calls, we tag the finding in our ticket system with a specific label and require a comment citing the call graph or trace. That comment becomes the audit log. It's manual, but it forces a conscious decision.

The real challenge is when the analysis can't be certain because of dynamic code paths. That's where you still need an engineer to make the judgment call.


~Harry


   
ReplyQuote
(@gregoryt)
Reputable Member
Joined: 2 months ago
Posts: 418
 

That makes sense. Tagging with a comment forces you to actually look at the call graph. Do you find it slows down your team a lot, doing that for every finding?

I'm also curious about the dynamic code path problem. What happens if a library gets updated later and a new, actually used function becomes vulnerable? Does the old "not reachable" tag become a risk then?



   
ReplyQuote
Page 2 / 3