FiloSottile / mkcert

A simple zero-config tool to make locally trusted development certificates with any names you'd like.
https://mkcert.dev
BSD 3-Clause "New" or "Revised" License
48.83k stars 2.53k forks source link

CVE issues in go stdlib of mkcert #546

Closed djMax closed 6 months ago

djMax commented 1 year ago

Environment

What you did

RUN sudo -E wget https://github.com/FiloSottile/mkcert/releases/download/v1.4.4/mkcert-v1.4.4-linux-amd64 \ && sudo -E mv mkcert-v1.4.4-linux-amd64 mkcert \ && sudo -E chmod +x mkcert \ && sudo -E cp mkcert /usr/local/bin/

What went wrong

Seems this binary uses Go stdlib 1.18, and that has a number of CVEs that are fixed in 1.19.8:

and a couple more

cyrusbehr commented 11 months ago

Same issue. Any updates on this?

FiloSottile commented 6 months ago

None of those affect mkcert. mkcert doesn't even use those packages.

djMax commented 6 months ago

Yes, but if you're using that version of the stdlib, the automated tools that highlight container vulnerabilities will fire because of mkcert. It would be very helpful if you updated the tool to avoid this issue.

FiloSottile commented 6 months ago

I don't think using automated tools that fail to do even package-level scoping and then pushing the churn onto every upstream project to reduce noise is sustainable.

My responsibility is making sure mkcert is not affected by security vulnerabilities. The responsibility of your tools is making sure they don't disturb you with false positives.

djMax commented 6 months ago

Because what could possibly go wrong with a tool intended to manipulate the core trust infrastructure of a system that doesn't bother to use up to date libraries?

FiloSottile commented 6 months ago

There is real risk in updating, too, and an updates policy is a more nuanced topic than "bothering to use up to date libraries". I assure you I am very aware of every vulnerability in the Go project.

Also, https://filippo.io/maintenance#conduct

djMax commented 6 months ago

I'm not arguing that you "owe it to people" or that it's trivial to do, but I think closing the issue with no discussion and saying the tools in wide use in the largest cloud providers in the world are "not sustainable" asserts a position in the ecosystem that is a bit detached from reality. Even the noise created by these detected vulnerabilities has an effect on the overall security of people using it, as it can reduce the contrast for real issues. I think it's loud and clear that it is not your concern, and for us certainly we will just move on to other options. I appreciate the effort that made the original tool.

FiloSottile commented 6 months ago

Even the noise created by these detected vulnerabilities has an effect on the overall security of people using it, as it can reduce the contrast for real issues.

I agree. I just think the issue is best fixed in 5-10 tools, rather than in 50-100k projects.

djMax commented 6 months ago

That seems like a very hard problem to try and diagnose whether, at runtime, a particular binary touches a particular part of the code. I'm not super familiar with go packaging, but I can see how that could generate a lot of false negatives.