Now it's PostgreSQL's turn to have a bogus CVE
opensourcewatch.beehiiv.com
opensourcewatch.beehiiv.com
I’m actually surprised there aren’t MORE bogus CVEs out there, based on my experience with bug bounty programs.
A state sponsored team decides to creates hundreds of bogus CVEs that get through. People stop trusting CVEs and it becomes a dirty word. Legitimate CVEs now start getting ignored and there is no good mechanism to surface those properly to teams that need to know. People's systems are now more attacker friendly. Governments and corporations too.
Or, some private company steps in and says they'll take on the burden of sifting through the bogus. But they are not incentivized in the same way... and might only pick and choose what they work on, or not work on, or ignore their own CVEs.
Decentralized multi-party peer review might be one way around this - ensuring that no single entity can function as gatekeeper. It's a lot of overhead, though, and there's way more time sensitivity than there is with academic peer review processes. And who adjudicates who is an independent subject matter expert on Postgres?
It's a tough problem, made tougher by the fact that it's a "dark forest" environment where any potential advantage to any party will inevitably be leveraged.
Some form of curation of reports seems like it would be an achievable (partial) solution. It seems like it would be less than perfect, but perhaps better than the status quo.
They are a quite good communication channel. You just have to read them, instead of counting the data packages.
They are the problem everywhere, and if we somehow "fix" CVEs so it works the way they think it works, they will keep being the problem in a hundred other contexts.
Maybe we should focus on some other place than "fixing" CVEs. But I have no idea how to fix IT charlatanism. But well, I have no idea how to "fix" CVEs either...
It's always good to supplement with things like whether exploit tooling for said CVE exists (proof that there's some actual weakness behind the CVE) - or use data feeds like EPSS which rely on actual verified exploits to create their exploit probability score.
Hire security people that understand CVEs and if they apply to your environment or not.
Unfortunately it's a complicated system and even with valid CVEs out there they don't always make sense for what your application does.
I work in code security and implementation of this software in 'secure' environments and we always have customers complain that scanners find CVEs in our software. Then we have to send links to documentation explaining what the CVE means and that very particular implementation details are involved that make the CVE dangerous that are not met by our application. Then the clients want to do the 'well the app found it, you fix it' crap.
Security theater industry somehow fares well still.
No need for a bug-bounty program. I receive regular emails to any public address on our website, warning of clickjacking and capture of passwords (there’s no passwords nor sensitive data on our website), not using the strictest of all SPF/DMARC, …, all from “honest security researchers” and “expecting a bounty no less than 150USD”.
Security theatre something something…
* https://www.cve.org/CVERecord?id=CVE-2020-21469
* https://nvd.nist.gov/vuln/detail/CVE-2020-21469
* https://www.postgresql.org/about/news/cve-2020-21469-is-not-...
Edit oh and longevity of course
It's been almost a decade now that MITRE has been mismanaging the resources entrusted to it. I wish to God they'd hire someone who cares enough to fix it.
Apparently security teams at MS are very accustomed to this kind of phenomenon.
Example: https://devblogs.microsoft.com/oldnewthing/20221004-00/?p=10...
In the IP world the idea of buffering a few minutes worth of data is not normal or optimal. There may be some small buffer but generally for best latency and performance we avoid large buffers and drop packets/inputs beyond the buffer capacity.
So while maybe not strictly a security issue (I can understand why someone might think of it as a DoS), I wonder if it made Microsoft reconsider their input queue size.
I hate security theater. :(
> Well, yeah. It’s compromised because you compromised it.
Recommendation: no change.
I just imagine somewhere there are people updating their CV or something else with "filed XX CVE's" like it is some kind of accomplishment for them.
Sonarqube fps come largely from untuned SAST configurations flagging all manner of suspected CWEs (code weaknesses).
You are an oracle. That thing is such a super pain in the a##, it has so many false positivies all over flagged that, I have to spend immense hours reviewing garbage failures on daily basis.
If you start quantifying the QA value on bugs found then worst case they don’t announce bugs on a month they’ve found their quota..
We need (at least)
- A clear policy from the CNAs that describes exactly which bugs should be assigned CVEs.
- A process by which bogus CVEs can be invalidated, and CVE spammers can be banned from further submissions.
- A way to register CVEs for vulnerabilities that span multiple programs.
- e.g. an HTTP proxy has a low-risk bug, and an HTTP server has a low-risk bug, but when the proxy and the server are deployed together, the bugs become exploitable.
- An appeals process for CVE description updates. - e.g. You would not know from the description that CVE-2023-34188 is trivially exploitable and can reliably lock up vulnerable servers because MITRE refuses to update it.Until recently, LiteSpeed parsed Content-Length values using strtoll in the base-0 mode. Thus, by sending Content-Length values prefixed with 0, you can get it to interpret the value in base-8. Most HTTP proxy servers strip leading 0s from Content-Lengths, rendering the bug in LiteSpeed not exploitable. Until recently, HAProxy didn't do this, which made HAProxy + LiteSpeed vulnerable to request smuggling.
I put together a PoC demonstrating how this can be used to bypass any HAProxy ACL with default configurations for HAProxy (except the added ACL) and LiteSpeed.
Clearly, LiteSpeed is more responsible for this problem than HAProxy, but the bug in LiteSpeed violates HAProxy's security model, not its own.
1. CVE numbers are a way to refer to a (potential) issue. With a CVE number, one can look up an issue in a distro bug tracker or ask support a question or search mailing lists.
2. A CVE number comes with an assessment of whether an issue is real and how bad it is, often in the NVD.
From the FAQ [0]:
> No, CVE is not a vulnerability database. CVE enables the correlation of vulnerability data across tools, databases, and people. This enables two or more people or tools to refer to a vulnerability and know they are referring to the same issue.
So I think that a CVE should probably be rejected if it’s a duplicate, but not just for being a non-issue. But anyone using a CVE as evidence that an issue exists and thinks that NVD is doing a bad job should complain about the NVD, not CVE spam. And people should be extremely cautious about expecting the number of CVEs to mean much.
[0] https://www.cve.org/ResourcesSupport/FAQs#pc_introcve_nvd_re...
Perhaps the simplest way to reduce noise is to have 2 numbering systems: provisional "prepress" PCVE and confirmed CVE.
"No, Common Vulnerabilities and Exposures is not a vulnerability database."
Yeah, IDK where anyone got that idea.
I don't know what improvements to the current process actually look like but it needs to be able to account for effectively fraud and apathy on both side of the equation.
And now it seems it’s possible to spam bogus CVE entries for mostly OSS projects, which devalues the use of CVE… while it’s also nearly impossible to get a valid CVE if a vendor who is a CNA stonewalls you.
Bug reports are opened and then, after they get a number, are triaged.
CVE numbers are applied for, and then separately they are granted only sometimes.
A CVE number being granted means that an organization, a relevant CNA[0] for the project in question, has confirmed that they think it is a real security issue.
MITRE says CVE IDs indicate a real vulnerability, not "reports that have not been triaged yet", so clearly it's intended that they're mostly valid.
It is true that you have to think critically about CVEs, obviously, but I don't think it's helpful to excuse MITRE for this by saying "no, actually, the numbers were never meant to mean anything", when they themselves have never held that stance.
There is no definition or even industry consensus of what is a real security issue. Scoring systems are widely accepted as flawed. So in practice, this isn't how it works, as the article demonstrates.
Give me code to reproduce an issue for people who are contributing as developers.
https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator?vector=...
(I can get it to report a severity of 8.9 by setting the availability impact to "High". However, I don't think that's appropriate, since you can just restart the postgres daemon, assuming repeated SIGHUPs do actually crash it.)
... against MITRE and NVD.
Permitting to fill CVEs without the cooperation of editors is sadly needed, so it's the easiest solution.
They are destroying a public good and deserve no less.
Maybe some proof-of-work rating? For example, CVE severity is assigned not on theoretical susceptibility, but on actual breach level that the researcher is able to achieve.
The problem, as always, is trust, and trust arbitration.
The best thing a company can do is ensure there is no path to vulnerability such as exposing the applications to manipulation or inside network attack. This will buy any company worth its mettle time to fix the problems or go through proper risk assessment.
Number one rule always have tightly controlled ingress and egress protecting your applications.
Suppose you run PostgreSQL 13 freshly patched, and a new vulnerability is introduced anonymously in the latest minor version (e.g. version 16.3). The attempt to make users update to the latest version could lead to more severe consequences than not updating.
Edit: To expand a bit on "alignment issue". CVEs are easy to create and are quite a trusted system. There's no penalty for the reporter if they are bogus (discovered or not). Also there's a huge amount of downstream work that happens after a CVE is reported, eg. at Red Hat we have teams of people who run around categorizing and deploying fixes, customers have to update, there are security reporting tools, even government regulations. None of this burden is carried by the reporter if they are wrong.
But even "anonymous" CVEs have this problem since in some teams you can get raises/bonuses based on the number of CVEs you report. See the other reply here: https://news.ycombinator.com/item?id=37406345
And while this is probably just a naive attempt to get yourself recognized, I like this take, too.