this post was submitted on 15 Feb 2024
206 points (97.7% liked)

Open Source

31218 readers
249 users here now

All about open source! Feel free to ask questions, and share news, and interesting stuff!

Useful Links

Rules

Related Communities

Community icon from opensource.org, but we are not affiliated with them.

founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] ysjet -4 points 9 months ago (2 children)

Nah, c suite was pretty clearly in the right here. Dude left because he was pissed that a vulnerability got assigned a CVE instead of just... Not informing anyone so they could quietly fix it.

[–] [email protected] 5 points 9 months ago (1 children)

It's an experimental feature. It doesn't need a bugfix release because you're not supposed to run it in production, and it's just a DoS, not privilege escalation or something

[–] ysjet 1 points 9 months ago (2 children)

Experimental features are explicitly defined as requiring CVEs. You are supposed to run them in production, that's why they're available as expiermental features and not on a development branch somewhere. You're just supposed to run them carefully, and examine what they're doing, so they can move out of experiment into mainline.

And that requires knowledge about any vulnerabilities, hence why it's required to assigned CVEs to experimental features.

And I'm not sure why you think a DoS isn't a vulnerability, that's literally one of the most classic CVEs there are. A DoS is much, much more severe than a DDoS.

[–] [email protected] 2 points 9 months ago (1 children)

If you do examine what it's doing you will catch this as soon as an attacker exploits it, and can disable it. Also, you should maybe not run the entire production with experimental features enabled. In a stable feature this would absolutely be a CVE, but this is marked experimental because it might not work right or even crash, like here

[–] ysjet 1 points 9 months ago (1 children)

Correct, I agree you run it with an eye on it (which you should probably do anyway) instead of firing and forgetting (which, to nginx's credit, is typically stable enough you can do that just fine).

That said, nginx treats experimental as something you explicitly run in production- when they announced they added it into experimental they actually specifically say to run it in prod in an A/B setup.

https://www.nginx.com/blog/our-roadmap-quic-http-3-support-nginx/

[–] [email protected] 2 points 9 months ago

If you run large‑scale Internet services,

That means if you're large enough that A can pick up the slack if B shits the bed. The only impact would be that you have to use HTTP2

[–] [email protected] 0 points 9 months ago* (last edited 9 months ago) (1 children)

You’re completely full of shit, as it’s just simply not the case that you’re “supposed” to run experimental features in production. But run it carefully??? What does that even mean? You obviously have zero experience on either side of the equation.

[–] ysjet 1 points 9 months ago

Nnnnnot really? Nginx literally asks for people to do that. Here they are announcing that experimental QUIC/HTTP3 support: https://www.nginx.com/blog/our-roadmap-quic-http-3-support-nginx/

You'll notice they literally outright ask

  • If you run large‑scale Internet services, experiment with A/B testing by deploying nginx-quic for some users or some services.

They literally ask for you to try it in production, so... yeah, you're supposed to use this experimental feature in prod. As for 'run it carefully', just that- don't just fire it off and assume all is good, keep an eye on it like the say. A/B deploy it, see how it works, and let NGINX know if you happen to run into anything.

[–] [email protected] 2 points 9 months ago* (last edited 9 months ago) (1 children)

Have you looked into the CVE? Apparently it is a non issue. You could use it to dos a service that have an experimental feature enabled, which is disabled by default, on a non stable Version. I understand the dev. CVE should be for serious issues. And they alerted their users over an email list

It can be used for dos, as it is crashing workers, but they will be restarted anyway.

[–] ysjet 3 points 9 months ago* (last edited 9 months ago) (1 children)

There is an astounding number of lies in your post, good lord.

  1. It is an issue. A DoS is a fairly serious vulnerability, and very much is a vulnerability.
  2. Experimental features are explicitly defined to require their vulnerabilities to be assigned CVEs.
  3. It is not just available on the stable version, but both commercially and via the open source version.
  4. CVEs are not just for serious issues, they are for vulnerabilities. All vulnerabilities. It is a number that allows you to reference an vulnerability, nothing more, nothing less.
  5. Mentioning a CVE on the mailing list is the absolute least they should be doing.
  6. 'workers can just be restarted anyway' shows a deep misunderstanding of what a worker does. Any pending or active transactions that worker had now hangs, meaning that the service is still being denied. Trying to recover automatically from a DoS does not mean the DoS is not happening- it just means that the DoS is slower to get rolling, or intermittently seems to work mid-DoS.
[–] [email protected] -4 points 9 months ago* (last edited 9 months ago) (1 children)

There is an astounding number of lies/misrepresentations in your post, good lord.

  1. I never said it isn't an issue. Dos is the issue. It is a vulnerability.
  2. No. CVE are not required. Like never. There is no legal requirements. The c in CVE stands for common btw... You know what is not common, Experimental features on non stable releases.
  3. The stables are not affected. To quote from https://www.nginx.com/blog/updating-nginx-for-the-vulnerabilities-in-the-http-3-module/ about cve-2024-24989, "NGINX Open source mainline version 1.25.4. (The latest NGINX Open source stable version 1.24.0 is not affected.)" And about CVE-2024-24990, "NGINX Open source mainline version 1.25.4. (The latest NGINX Open source stable version 1.24.0 is not affected.)"
  4. Yes and no. Remember the c in cve?
  5. How is it a lie to say that they informed people through a mail list, when they did that? Remember you said I was lying? Also didn't you say they wanted to keep it quiet to fix in secret, while they inform the public? Isn't that a lie? (Also, you call it a cve in this point, well the dev didn't think of it as one and he alerted the users. So they satisfied your "least" requirement for a cve while not thinking of it as a cve.)
  6. My statement is once again not a lie. But let's talk about your stuck transaction. Your transaction isn't "stuck" if you use transactions in your database, but besides that you used an experimental feature on a non stable release on a publicly facing service and the "stuck" transaction is your issue? You are fucking without a condom, my friend. And That experimental feature might just crash randomly, due to memory leaks or what not, and your transaction is stuck too.

Where were my lies? I mean I showed you yours.

[–] ysjet 5 points 9 months ago* (last edited 9 months ago) (2 children)
  1. I'm glad we agree a DoS is a vulnerability.
  2. CVE best practices state that CVEs are required to be assigned to experimental features. F5's company policy is that CVE best practices are followed. F5 is the company that owns nginx. Therefore, it was required. Nice 'legal requirement' strawman. Also, 'Common' in this situation is not defined as 'Widespread; prevalent,' it's defined as 'Of or relating to the community as a whole; public.'
  3. That was a typo regarding 'stable,' my bad. I meant to say 'It is just not available on stable, but is both via commercially and via the open source version.' However, it's still available on commercial versions and open source, and 'non-stable' versions are not inherently unstable, they're just called 'mainline'. Proof: https://nginx.org/en/download.html Stable is basically just 'long term support/LTS' versions of nginx.
  4. Again, you are intentionally misusing the definitions of the word common. Lets see what MITRE has to say about it, hmm?

Common Vulnerabilities and Exposures (CVE) is a dictionary of common names (i.e., CVE Identifiers) for publicly known information security vulnerabilities. CVE's common identifiers make it easier to share data across separate network security databases and tools, and provide a baseline for evaluating the coverage of an organization's security tools. If a report from one of your security tools incorporates CVE Identifiers, you may then quickly and accurately access fix information in one or more separate CVE-compatible databases to remediate the problem.

Source: https://cve.mitre.org/about/

  1. Yes, I would consider notifying the development mailing list as 'quietly' fixing it, as most all companies using it will not be on the development mailing list. It's meant to be an area for developers to discuss things. They didn't inform the public, they informed the devs.
  2. Where are you getting database from? You've randomly pivoted into talking about database transactions then started babbling about how you somehow think using a production mainline release with production options on a fully supported commercial binary is somehow inherently unsafe, as though it wouldn't still be in dev or test.

Since you seem to have no idea about how web servers work, or indeed, experimental features, I'll let you in on a secret- The only difference between a non-experiemntal option in nginx and an experimental option is that they're unsure if they want that feature in nginx, and are seeing how many people are actually using it/interested in, or they think that usage patterns of the feature might indicate another, better method of implementation. "Experimental" does not mean "unfinished" or "untested."

If you know nothing about programming, CVEs, or even web engines, please stop embarrassing yourself by trying to trumpet ill-thought out bad takes on subjects you don't understand.

[–] [email protected] -3 points 9 months ago (1 children)

Please don’t complain to us mod/admins about someone making things personal, when you’re the one calling someone a liar and a know-knowing about their field of work.

[–] ysjet 2 points 9 months ago* (last edited 9 months ago)

Really dude? I never once devolved to name calling, I stated that s/he lied when s/he made false statements. What else am I supposed to say there?

I also don't understand how saying they doesn't know what the subject matter s/he's taking a stance on is 'know-knowing' either? S/He's straight up said they doesn't know what a CVE is, doesn't know what experimental means, and while they claims to be in this field of work, they doesn't know what a web worker is and confused a web transaction with a database transaction.

Sure, I could have been nicer about it when they started escalating, but I never made it personal, and have no intentions of doing so either.

EDIT: realized I was assuming their gender.

[–] [email protected] -3 points 9 months ago

Dude, can you be less rude? Calling me a liar, without point out a lie. At best, you found a misunderstanding of cve on my end which wouldn't be a lie and isn't in the part that you called a lie. Also I don't think that there was a misunderstanding on my end of what cve means. Then you call me basically a clueless idiot for not having a clue about web servers. While I actually currently am working for a multi billion dollars companies as a backend dev and never worked anything but web dev. Then you complain about a straw man when you don't bother to express what your actual argument was and I had to guess.

You might realize that I am not bothering to argue your points, there is a simple reason why, you are being a dick. Make your points clearly like you did just a moment ago and don't be rude while doing it and you get an interesting conversation.

In case, you are curious, I am actually rather neutral on whether or not, it should be cves. I see the devs reasons and think they are reasonable and I understand why f5 would report it. A new fork seems to be an overreaction though. I bet you didn't expect me to hold this position because you were busy being a dick instead of having a conversation