Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

x/vuln: add support for suppressing vulnerabilities by ID #59507

Open
bentcoder opened this issue Apr 8, 2023 · 9 comments
Open

x/vuln: add support for suppressing vulnerabilities by ID #59507

bentcoder opened this issue Apr 8, 2023 · 9 comments
Labels
FeatureRequest NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. vulncheck or vulndb Issues for the x/vuln or x/vulndb repo

Comments

@bentcoder
Copy link

What version of Go are you using (go version)?

$ go version
go version go1.20.2 darwin/amd64

What operating system and processor architecture are you using (go env)?

go env Output
$ go env
MacOS amd64 darwin

Hi,

Requesting to introduce a config file (ideally) or a flag that allows users to explicitly exclude some vulnerabilities? Maybe until they resolve them, they can be suppressed in CI so on.

Thanks

Config file

$ govulncheck -config vuln.yaml ./...
# vuln.yaml
vulnerability:
    exclude:
        - GO-2023-1704
        - GO-2023-1705

Flag

$ govulncheck \
    -exclude GO-2023-1704 \
    -exclude GO-2023-1705 \
    ./...
@bentcoder bentcoder added the vulncheck or vulndb Issues for the x/vuln or x/vulndb repo label Apr 8, 2023
@gopherbot gopherbot modified the milestones: Unreleased, vuln/unplanned Apr 8, 2023
@seankhliao seankhliao changed the title x/vuln: [feature request] config or flag to exclude set of vulnerabilities x/vuln: config or flag to exclude set of vulnerabilities Apr 8, 2023
@julieqiu julieqiu changed the title x/vuln: config or flag to exclude set of vulnerabilities x/vuln: add support for suppressing vulnerabilities by ID Apr 10, 2023
@dr2chase dr2chase added the NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. label Apr 14, 2023
@tianon
Copy link
Contributor

tianon commented Jun 26, 2023

In my case, I'm wanting this because govulncheck is now reporting GO-2023-1840 (https://pkg.go.dev/vuln/GO-2023-1840) on my binaries, but I've already got my own mitigation code for setuid bits being set, so the vulnerability doesn't really apply (which is the whole reason I love govulncheck - it normally is very good at filtering out things that don't apply, but in this case it really can't know ❤️). 😞 😅

@paveljanda
Copy link

We would love to support this solution. 👍

In our case, our pipelines are set to fail if govulncheck fails. That being said, not all govulncheck errors are necessarily related to our production code use-cases.

Is kind of an industry standard to make false-positives ignored in vulnarability checks, static code analysis tools etc.

Thx. 👍

rootulp added a commit to rootulp/celestia-app that referenced this issue Jun 4, 2024
govulncheck does not support ignoring a particular vulnerability. Since
we're on ibc-go v6.2.x which has a vulnerability, CI will report a red X
on all future PRs because govulncheck fails.

This PR removes govulncheck. We can re-enable it when govulncheck adds
support for ignoring a particular vulnerability. See:
1. golang/go#59507
1. golang/go#61211
@silverwind
Copy link

This would be useful for cases like https://pkg.go.dev/vuln/GO-2024-2698 which has "no known fix".

@ldemailly
Copy link

What's an example of vulnerability flagged by govulncheck yet not actually in a reachable code path? that seems would be a bug in govulncheck, not something to exclude but something to fix (if there is such a thing?)

@dornimaug
Copy link

What's an example of vulnerability flagged by govulncheck yet not actually in a reachable code path? that seems would be a bug in govulncheck, not something to exclude but something to fix (if there is such a thing?)

https://pkg.go.dev/vuln/GO-2024-2994 is such an example.
Just importing k8s.io/kubernetes/pkg/apis/core from a vulnerable version flags this on every OS apparently because of the init function in core being this code path identified by govulncheck. I don't know if this is actually theoretically reachable code, but there are many scenarios where it is practically impossible to reach it, for example any kind pure k8s client use.

https://pkg.go.dev/vuln/GO-2024-2746 is basically the same kind of example.

@MalteMagnussen
Copy link

We'd love to be able to suppress all windows vulnerabilities.

We never deploy to windows, so seeing those vulns are simply noise for us.

@jameinel
Copy link

We have a common pattern of a "stable release" that is supported with security fixes only, that ends up in that state for a number of years. Having a tool like govulncheck is ideal, because it lets us be aware that there might be a security issue, but we also need a way to acknowledge that this particular issue does not warrant a Major.Minor compiler update. However, we don't want to skip doing the check entirely, because a new issue on the compiler might very much warrant the effort.

Having a clear way to record issues that you've acknowledged, but still see ones that you haven't seen before is very useful.

@AlexanderYastrebov
Copy link
Contributor

AlexanderYastrebov commented Oct 22, 2024

There is PR golang/vuln#7 that implements this feature.
@zpavlinovic suggests that this feature needs a proposal.

@zpavlinovic
Copy link
Contributor

We are actively working on this feature. We don't have an exact timeline, but there won't be a need for a proposal. We plan to use OpenVex format for specifying vulnerability info for filtering.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
FeatureRequest NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. vulncheck or vulndb Issues for the x/vuln or x/vulndb repo
Projects
None yet
Development

No branches or pull requests