curl: a CVE dispute

59 points by eugeny


mort

libcurl is installed in somewhere around thirty billion instances on the globe. If we imagine that at least a sizeable portion of those installs are managed by people who want to make sure they use a secure version, it means that every CVE we publish trigger activities in many security teams all over the world, leading to a significant number of patches and subsequent software updates.

Every CVE thus has this huge cost tied to it. A cost that does not land on us and we don’t really see or feel it, but a cost on the ecosystem I believe we should not ignore. We should act responsibly. Never ignore real problems of course, but also to make sure we don’t ring the alarm for theoretical problems that will not trigger any vulnerability.

This is refreshing and seems like the polar opposite of the Linux kernel's approach to CVEs.

FreeFull

Reminds me of https://devblogs.microsoft.com/oldnewthing/20240102-00/?p=109217

Basically bugs you can only exploit by already having root privileges don't really weaken your security at all

jrwren

The LLM written replies on hackerone would have made me immediately disengage. Daniel is a far more patient man than me.

elobdog

I find Daniel to be one of the most sensible open source maintainers out there. He has been vocal about the competition to assign silly CVEs', just so the finder can pad his/her CV.

olliej

LLVM keeps getting nonsense report, but just recently we had two that got CVEs.

This reported issues are not considered attack vectors under the llvm security policy -- if you're compiling untrusted code you're already doing everything an attacker needs.

But in addition to that, the reporter directly filed the CVEs, and reported that we had ignored the security bug report.

Neither had been filed (or even tagged) as security bugs, neither showed any attempt to contact anyone else. They were just two completely normal bug reports that a person wanted to get CVE#s assigned to in order to resume pad.

But the fact that MITRE just took it at face value that

  1. The "security" bug was an actual security bug
  2. The "security" bug was filed/reported correctly
  3. That the "security" bug report was ignored

And then published all of the above as true has made it clear that their listings should be considered fiction without confirmation from the affected project.

It also has the effect of notification fatigue: if there are constant pings and notifications about "security vulnerabilities" that are not actually security vulnerabilities it causes people to start ignore the notifications, and so miss real bugs.

Also all of these reporters of bugs want credit as if they did actual work: all they do is through an LLM and blindly report anything it finds with a note saying who to credit them as. There's no other interaction besides that. Well not quite true: some of them also have the LLM provide a "fix", which they also want credit for, and claim they have reviewed. I do not know what the idiots think "review" means, but it is not just 'does this compile and "fix" the bug report' -- the overwhelming majority of these automatic/vibe-coded PRs basically just de-fang assertions, or maybe add a null check. They don't work out why the assertion is firing, or what has gone wrong to lead to the broken state, they just make the crash go away.

I've seen their "I promise I have reviewed this PR and it is correct" where the test cases don't even trip the reported bugs, so then we have to waste time (1) looking at the PR to verify this is what they have done. Then (2) - if there is pushback - functionally diagnose the actual bug for them. There have been maybe two of these people who actually demonstrated an interest in learning how to actually develop software, and they've made huge progress. But again, the overwhelming majority aren't interested in anything that involves actual skill or work.

For people who appear and make multiple PRs, I've learned there's no reason to do anything more at this point than to just look for the defang, ask why the assertion is wrong, and then ignore the PR if there's never a reply. Again: overwhelming major never respond as that requires work. The few that do respond, actually seem interested in learning, and I'd say 50% of them actually start investing time in learning - the other 50% seem to take it on board and may try to hang around but the reality is learning this kind of thing is time consuming, and that time may simply not be available, or they're still learning basics of programming and llvm is complicated. But I give them infinite credit compared to the bug spamming muppets.

All of this ignores of course the people who try to hide that they're just using LLMs for the entire thing, which is generally trivial to identify.

retr0id

It is not possible to trick an application to use a dot prefixed arbitrary name as it will fail to resolve.

Hmm. It seems not to be the case today, but I could've sworn that in the past "http://.example.com/" would load up in a web browser (and even be treated as a distinct origin for cookies etc). The fact that it doesn't work any more could imply the old behaviour was considered wrong and/or dangerous, but I'm pretty sure it used to work like that regardless.