| ▲ | nfm 9 hours ago |
| The number of ReDoS vulnerabilities we see in Dependabot alerts for NPM packages we’re only using in client code is absurd. I’d love a fix for this that was aware of whether the package is running on our backend or not. Client side ReDoS is not relevant to us at all. |
|
| ▲ | staticassertion 8 hours ago | parent | next [-] |
| TBH I Think that DoS needs to stop being considered a vulnerability. It's an availability concern, and availability, despite being a part of CIA, is really more of a principle for security rather than the domain of security. In practice, availability is far better categorized as an operational or engineering concern than a security concern and it does far, far more harm to categorize DoS as a security conern than it does to help. It's just a silly historical artifact that we treat DoS as special, imo. |
| |
| ▲ | jpollock 8 hours ago | parent | next [-] | | The severity of the DoS depends on the system being attacked, and how it is configured to behave on failure. If the system is configured to "fail open", and it's something validating access (say anti-fraud), then the DoS becomes a fraud hole and profitable to exploit. Once discovered, this runs away _really_ quickly. Treating DoS as affecting availability converts the issue into a "do I want to spend $X from a shakedown, or $Y to avoid being shaken down in the first place?" Then, "what happens when people find out I pay out on shakedowns?" | | |
| ▲ | staticassertion 8 hours ago | parent | next [-] | | If the system "fails open" then it's not a DoS, it's a privilege escalation. What you're describing here is just a matter of threat modeling, which is up to you to perform and not a matter for CVEs. CVEs are local properties, and DoS does not deserve to be a local property that we issue CVEs for. | | | |
| ▲ | michaelt 8 hours ago | parent | prev | next [-] | | > If the system is configured to "fail open", and it's something validating access (say anti-fraud), The problem here isn't the DoS, it's the fail open design. | | |
| ▲ | jpollock 7 hours ago | parent [-] | | If the majority of your customers are good, failing closed will cost more than the fraud during the anti-fraud system's downtime. | | |
| |
| ▲ | vasco an hour ago | parent | prev [-] | | > Treating DoS as affecting availability converts the issue into a "do I want to spend $X from a shakedown, or $Y to avoid being shaken down in the first place?" > Then, "what happens when people find out I pay out on shakedowns?" What do you mean? You pay to someone else than who did the DoS. You pay your way out of a DoS by throwing more resources at the problem, both in raw capacity and in network blocking capabilities. So how is that incentivising the attacker? Or did you mean some literal blackmailing?? |
| |
| ▲ | bawolff 7 hours ago | parent | prev | next [-] | | The real problem is that we treat vulnerabilities as binary without nuance. Whether a security vulnerability is an issue depends on context. This comes up a lot for DoS (and especially ReDoS) as it is comparatively rare for it to be real, but it can happen for any vulnerability type. | | |
| ▲ | staticassertion 7 hours ago | parent [-] | | I don't really agree. Maybe I do, but I probably have mixed feelings about that at least. DoS is distinct because it's only considered a "security" issue due to arbitrary conversations that happened decades ago. There's simply not a good justification today for it. If you care about DoS, you care about almost every bug, and this is something for your team to consider for availability. That is distinct from, say, remote code execution, which not only encompasses DoS but is radically more powerful. I think it's entirely reasonable to say "RCE is wroth calling out as a particularly powerful capability". I suppose I would put it this way. An API has various guarantees. Some of those guarantees are on "won't crash", or "terminates eventually", but that's actually insanely uncommon and not standard, therefor DoS is sort of pointless. Some of those guarantees are "won't let unauthorized users log in" or "won't give arbitrary code execution", which are guarantees we kind of just want to take for granted because they're so insanely important to the vast majority of users. I kinda reject the framing that it's impossible to categorize security vulnerabilities broadly without extremely specific threat models, I just think that that's the case for DoS. There are other issues like "is it real" ie: "is this even exploitable?" and there's perhaps some nuance, and there's issues like "this isn't reachable from my code", etc. But I do think DoS doesn't fall into the nuanced position, it's just flatly an outdated concept. | | |
| ▲ | bawolff 5 hours ago | parent | next [-] | | I am kind of sympathetic to that view. In practise i do find most DoS vulns to be noise or at least fundamentally different from other security bugs because worst case you get attacked, have some downtime, and fix it. You dont have to worry about persistence or data leaks. But at the same time i don't know. Pre-cloudflare bringing cheap ddos mitigation to the masses, i suspect most website operators would have preferred to be subject to an xss attack over a DoS. At least xss has a viable fix path (of course volumetric dos is a different beast than cve type dos vulns) | |
| ▲ | bigfatkitten 2 hours ago | parent | prev [-] | | There are good reasons for that history which are still relevant today. We have decades of history of memory corruption bugs that were initially thought to only result in a DoS, that with a little bit of work on the part of exploit developers have turned into reliable RCE. |
|
| |
| ▲ | akerl_ 6 hours ago | parent | prev | next [-] | | Maybe we should start issuing CVEs for all bugs that might negatively impact the security of a system. | | | |
| ▲ | Lichtso 7 hours ago | parent | prev | next [-] | | > I Think that DoS needs to stop being considered a vulnerability Strongly disagree. While it might not matter much in some / even many domains, it absolutely can be mission critical. Examples are: Guidance and control systems in vehicles and airplanes, industrial processes which need to run uninterrupted, critical infrastructure and medicine / health care. | | |
| ▲ | technion 5 hours ago | parent | next [-] | | These redos vulnerabilities always come down to "requires a user input of unbounded length to be passed to a vulnerable regex in JavaScript ". If someone is building a hard real time air plane guidance system they are already not doing this. I can produce a web server that prints hello world and if you send it enough traffic it will crash. If can put user input into a regex and the response time might go up by 1ms and noone will say its suddenly a valid cve. Then someone will demonstrate that with a 1mb input string it takes 4ms to respond and claim they've learnt a cve for it. I disagree. If you simply use Web pack youve probably seen a dozen of these where the vulnerable input was inside the Web pack.config.json file. The whole category should go in the bin. | | |
| ▲ | bandrami 4 hours ago | parent [-] | | > If someone is building a hard real time air plane guidance system they are already not doing this. But if we no longer classed DOSes as vulnerabilities they might |
| |
| ▲ | staticassertion 6 hours ago | parent | prev | next [-] | | I think this is just sort of the wrong framing. Yes, a plane having a DoS is a critical failure. But it's critical at the level where you're considering broader scopes than just the impact of a local bug. I don't think this framing makes any sense for the CVE system. If you're building a plane, who cares about DoS being a CVE? You're way past CVEs. When you're in "DoS is a security/ major boundary" then you're already at the point where CVSS etc are totally irrelevant. CVEs are helpful for describing the local property of a vulnerability. DOS just isn't interesting in that regard because it's only a security property if you have a very specific threat model, and your threat model isn't that localized (because it's your threat model). That's totally different from RCE, which is virtually always a security property regardless of threat model (unless your system is, say, "aws lambda" where that's the whole point). It's just a total reversal. | |
| ▲ | clickety_clack 4 hours ago | parent | prev [-] | | I just hate being flagged for rubbish in Vanta that is going to cause us the most minor possible issue with our clients because there’s a slight risk they might not be able to access the site for a couple of hours. |
| |
| ▲ | kortilla 2 hours ago | parent | prev [-] | | If I can cause a server to not serve requests to anyone else in the world by sending a well crafted set of bytes, that’s absolutely a vulnerability because it can completely disable critical systems. If availability isn’t part of CIA then a literal brick fulfills the requirements of security and the entire practice of secure systems is pointless. |
|
|
| ▲ | junon 8 hours ago | parent | prev | next [-] |
| I maintain `debug` and the number of nonsense ReDoS vulnerability reports I get (including some with CVEs filed with high CVSS scores, without ever disclosing to me) has made me want to completely pull back from the JS world. |
|
| ▲ | Twirrim 6 hours ago | parent | prev | next [-] |
| I've been fighting with an AI code review tool about similar issues. That and it can't understand that a tool that runs as the user on their laptop really doesn't need to sanitise the inputs when it's generating a command. If the user wanted to execute the command they could without having to obfuscate it sufficient to get through the tool. Nope, gotta waste everyone's time running sanitisation methods. Or just ignore the stupid code review tool. |
|
| ▲ | adverbly 8 hours ago | parent | prev | next [-] |
| Seriously! We also suffer from this. Although in some cases it's due to a Dev dependency. It's crazy how much noise it adds specifically from ReDoS... |
| |
| ▲ | monkpit 4 hours ago | parent | next [-] | | ReDoS cves in your dev dependencies like playwright that could literally never be exploited, so annoying. | |
| ▲ | robszumski 8 hours ago | parent | prev [-] | | Totally hear you on the noise…but we should want to auto-merge vs ignore, no? Given the right tooling of course. | | |
|
|
| ▲ | candiddevmike 8 hours ago | parent | prev [-] |
| Using something like npm-better-audit in your linting/CI allows you exclude devDependencies which cut down a ton of noise for us. IDGAF about vite server vulnerabilities. |