-
Notifications
You must be signed in to change notification settings - Fork 17.4k
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: decentralized option #54982
Comments
This fallback already in place, see package docs:
|
The distributed mechanism is to publish retractions. Vulnerability reporting relies on somewhat centralized CVE IDs to allow communication between different parties, a fully decentralized option doesn't make sense here. |
cc @golang/vulndb |
As mentioned earlier, users can provide other vulnerability databases to |
I wasn't clear, I think. I don't mean in the sense of GOPROXY=myproxy, I mean in the sense of GOPROXY=direct. Basically, have a way for module authors to declare vulns in modules themselves, identified by commit hash or version, e.g.
|
Common identifiers can be derived from the module and vulnerability info, e.g. the
Vulnerability |
That was what eventually became the |
I believe this would need to go through a formal proposal process with pros, cons, motivation, etc. |
Thanks for pointing me to that.
If this is true, then we should fix the Go blog post to not point users to make vuln suggestions here by creating an |
I should have been more precise. My mention of the formal proposal process was in response to the suggested change
which would also require modifications to the specification and handling of My concern is that this would add an extra maintenance burden on the programmers so this would ultimately not be able to completely replace the existing approach. Or maybe it is not supposed to? |
I think this would actually be simpler for module owners. Instead of figuring out how to report a CVE, a GHABCDEFwhateverthisis, submit a report to the official Go vuln database, etc. etc., they can simply report the problem in go.mod, and the toolchain automatically surfaces the problem when others try to build with it. All the info is contained within the module itself, and published as one unit. I guess the go tool would have to consult the latest version for vuln retractions regardless of what the minimum version selected for builds is.
Which approach do you mean? The new vuln stuff? |
Yes, the current approach with a vulnerability database. |
I would say that a decentralized approach would be a good basis, but you'd also want users to be able to specify a database they trust (defaulting to the Go Team's) for issuing vuln retractions on behalf of module owners, like if module owners are too slow to do it. Perhaps if vuln retractions are cached in go.sum or something comparable to prevent bad actors from undoing module-based retractions, then database entries could be removed as the corresponding modules publish retractions. This keeps the "active" database size to a minimum, and keeps the vuln retraction history with the (cached) modules. |
(This is a suggestion, which the Go blog post about vuln asked for and linked to here, so I'm ignoring the issue template.)
While I like that vuln reports are tailored and cleaned up by the Go Team, I think the community would be best served with an option for a decentralized solution, at least as a fallback, similar to how the module proxy and sum database work.
Module authors should be able to publish their own vuln determinations as part of the module or package itself, and those publications should be able to be extracted as part of the module/package info. That way the community isn't reliant on the Go Team to communicate and manage vulns.
The text was updated successfully, but these errors were encountered: