News for hackers. Stuff that matters.
Re:What NPM should do to stop a new colors attack by no_wizard on Monday January 10, 2022 @04:37PM (#29882988)
Attack is hyperbole. This wasn't an attack. Nothing was attacked. This verbiage has got to stop being used around this. A maintainer of popular packages got fed up with being a maintainer - rightly or wrongly - and decided that they were going to alter their code - publicy no less (a far more dubious move would have been to make these changes in private and release that to npm, without pushing it to github also, in my mind) - and that means this code was working as intended by the project / package maintainer.

It was not injecting harmful code onto the machine, it was not an "attack" on anything, in any real sense. I feel all the media is doing so far is raking the maintainer over a fire, instead of asking the question of how did we get here in the first place? Why would a maintainer feel they need to take actions like this? What are they trying to achieve?

Instead of talking about the role of maintainers, consumers, and what to do about the state of open source software and its longevity, we are instead using this moment to go after the maintainer as if they were doing the equivalent of using their npm packages to inject actual malicious, harmful code on the consumer machines, like a cryptominer.

I know it inconveniences everyone, sure, and would I have done this if they were my packages? No, I'd go through a normal deprecation process of announcing its deprecation, archiving the repository, and plainly stating that the package is no longer maintained. With that said, consumers can always choose a different library.

This wasn't malicious, or an attack. It was an update to the package working as the maintainer of the project intended. If lodash issued a breaking change, would that be considered an "attack"? They even followed semver, by bumping the packages to their next major version.

I think this event also served to expose how little organizations have around testing for breaking changes in their dependencies, which may be adding fuel to the issue.

EDIT: this is a plea for more nuance in the conversation. I think there has been an unreasonable amount of haste in passing judgement in this situation, that, after doing even just a little bit of background research, seems to suggest there is more moving parts than meets the surface.

Re:What NPM should do to stop a new colors attack by encoderer on Monday January 10, 2022 @04:44PM (#29883084)
I think you’re being far too kind in your interpretation. If one wishes to stop maintaining, all you must do is nothing. Instead, by pushing an intentionally broken patch, It is foreseeable that there will be hundreds or thousands of maintainers of other code that will have to respond to your actions. I think it’s reasonable to call that an attack.
Re:What NPM should do to stop a new colors attack by toomuchtodo on Monday January 10, 2022 @04:53PM (#29883229)
If you consume open source code without reviewing it, it’s no different than executing arbitrary user code. Your environment’s security is based on hope and trust.

Maintainers shouldn’t be malicious, absolutely, but users should do a bit more than pulling code and running it. Otherwise, it’s curl | bash dressed up with a ci pipeline. How many times does dependabot bump your dependency revisions and no one looks except to ensure tests pass?

Re:What NPM should do to stop a new colors attack by encoderer on Monday January 10, 2022 @05:42PM (#29883952)
A lot of it is based on trust, that’s evidently true, and as such, I think it’s perfectly fine to publicly shame a maintainer who looks to have breached that trust.
Re:What NPM should do to stop a new colors attack by bergheim on Monday January 10, 2022 @05:03PM (#29883372)
Doing this for something like GNU/Linux is simply not practical, _at all_. In what world can a user be expected to do little else that simply install linux? Since you pipe, can I assume you know everything about the kernel tree?

And bad actors work in companies as well. At some point you just have to trust what you are using.

Re:What NPM should do to stop a new colors attack by caymanjim on Monday January 10, 2022 @05:35PM (#29883845)
People install Linux by picking a distribution to install. The maintainers of the distributions look at the packages they're including. For example, this broken colors package will never end up in any of them, because there are gatekeepers.

It's certainly impractical for every developer to vet every package they use, so much so that almost no developers vet any of the packages they use. What's needed are more gatekeepers. Repos like NPM would be well-served by coming up with mechanisms to support this. Off the top of my head, some sort of "this is safe" consensus, whereby the community can vouch for specific immutable versions of packages, that don't become the default version until they cross a threshhold. Organizations with a history of good stewardship and trusted validation processes could be allowed to skip the vetting step (e.g. things published by groups like the Apache Foundation or even corporations like Microsoft). I'm not arguing that one-man shops shouldn't be able to publish to NPM, just that there should be something like a "--untrusted" flag that's required before unverified updates are installed. And I'm not calling out NPM; every package repo has this problem.

Re:What NPM should do to stop a new colors attack by toomuchtodo on Monday January 10, 2022 @05:20PM (#29883626)
I agree we’ve built a metropolis on sand, and a large component of solving for this problem is going to be some form of trust and managing that trust (more code reviews with an audit trail of some sort, human gating of code changes using automated risk modeling, etc).
Re:What NPM should do to stop a new colors attack by fivea on Monday January 10, 2022 @05:30PM (#29883763)
>>I think you’re being far too kind in your interpretation. If one wishes to stop maintaining, all you must do is nothing.

This sounds like a gross misrepresentation of what happened.

It has been reported that the author of the colors and faker packages announced last year that he was no longer willing to do free work for Fortune500 companies.

He also proceeded to state quite publicly that either companies paid him for his work, or they should fork the project and maintain it themselves instead of taking advantage of everyone else's work.

After a year has passed, the author proceeded to release a couple of major versions that had a more artistic feel.

https://web.archive.org/web/20210704022108/https://github.co...

Source:

https://www.theverge.com/2022/1/9/22874949/developer-corrupt...

These packages are his circus, and his clowns run the act he chooses.

If anything, this update showcases the completely abhorrent security culture in place in these mega-companies, which literally ingest into their product line anything that they can find on GitHub without a shred of due diligence.

Re:What NPM should do to stop a new colors attack by acdha on Monday January 10, 2022 @05:41PM (#29883938)
> After a year has passed, the author proceeded to release a couple of major versions that had a more artistic feel.

Artistic would be a new color scheme or maybe a “support open source maintainers” message. The accurate description you didn't give is sabotage because he introduced an infinite loop:

https://github.com/Marak/colors.js/commit/074a0f8ed0c31c35d1...

Re:What NPM should do to stop a new colors attack by fivea on Tuesday January 11, 2022 @02:26AM (#29888608)
> Artistic would be a new color scheme or maybe a “support open source maintainers” message.

The author already did that, and complained about fortune500 companies mooching their work without giving anything in return.

The author stated that people should fork the repo if they intended to keep using it.

The author made said statements a year ago. Is a year enough time to take action?

Now the author decided to do a major version release with a protest version of his own work, and that makes him a villain?

Re:What NPM should do to stop a new colors attack by acdha on Tuesday January 11, 2022 @07:00AM (#29890465)
> Now the author decided to do a major version release with a protest version of his own work, and that makes him a villain?

He did more than that, as noted in the comment you replied to.

Re:What NPM should do to stop a new colors attack by fivea on Tuesday January 11, 2022 @10:05AM (#29892241)
> He did more than that, as noted in the comment you replied to.

He really didn't. It matters nothing if you feel a commit breaks your code because you not only ignored the author but also failed to perform any sort of due diligence regarding what dependencies you ingest.

I mean, it was a major version bump. People blindly upgrade stuff without any regard about what goes in, and somehow that makes the guy who volunteered his work on a side project a villain?

There are a lot of red flags in this story, but the author of the colors flag ain't one of it.

Re:What NPM should do to stop a new colors attack by acdha on Tuesday January 11, 2022 @10:41AM (#29892776)
I see you've switched from “he didn't break anything” to “it's the users' fault for not catching what he broke faster”.

Hint: going from 1.4.0 to 1.4.1 is not a major version bump — https://snyk.io/vuln/npm:colors

Re:What NPM should do to stop a new colors attack by jamesfinlayson on Tuesday January 11, 2022 @02:07AM (#29888485)
Not to mention plenty of people (me at a big company included) used both of these packages as indirectly (as dependencies of dependencies) and had no idea about this until this week.
Re:What NPM should do to stop a new colors attack by jamincan on Monday January 10, 2022 @04:44PM (#29883087)
In what world is it not malicious? He owned the packages and I guess that gives him the right to do what he likes with it, but I have a hard time believing he didn't do it deliberately fully aware that a whole bunch of people would update and it would cause disruption. It's not an exploit, but it's certainly malicious, and I don't think it's unreasonable to call it an attack.
Re:What NPM should do to stop a new colors attack by foobiekr on Monday January 10, 2022 @05:59PM (#29884197)
People who were pulling this unvetted and live are lucky he did not sell it to a malware group.
Re:What NPM should do to stop a new colors attack by UnFleshedOne on Monday January 10, 2022 @09:11PM (#29886347)
Malice or selling out is not even required. Malware groups are perfectly capable of getting access to maintainer credentials themselves if needed.
Re:What NPM should do to stop a new colors attack by foobiekr on Tuesday January 11, 2022 @12:36AM (#29887984)
Yes, I agree.
Re:What NPM should do to stop a new colors attack by no_wizard on Monday January 10, 2022 @04:59PM (#29883329)
Sure did, however, does that mean its malicious?

The definition of malicious, according to Merriam Webster[0], is the following

>having or showing a desire to cause harm to someone : given to, marked by, or arising from malice

Was the intention here to cause someone harm? What the intention here malice? Which conversely has this definition[1]

>desire to cause pain, injury, or distress to another

Was this their primary motivation? What evidence do we have that is in fact an action driven by malice? In fact, I don't see any, especially after doing roughly 20 minutes of research, I have arrived at the following:

Reading the public history surrounding the maintainer of these projects, the issue trackers of the repositories, and the maintainers own blog, you may come from a different conclusion entirely. If I was to speculate - and mind you, I am speculating, as I don't know the maintainer personally nor do I claim to understand them completely - there is a clear sense of mental strain they are feeling from the burdens here. Being burnt out, feeling taken advantage of, can lead to very real and deep feels of depression and/or other mental challenges (this I speak first hand to), for starters. I think the maintainer - again, speculating here, however evidence does seem to suggest this - is acting from a place of disillusionment, and possibly is resentful of their status in the word, relative to those benefiting from their contributions to open source software. Are they right to feel this way? Maybe, maybe not. However, is this malice? That's the question. Is this actually malicious? All evidence points to no, its not an act of malice. Its an act of someone who is disillusioned, strained, and struggling. I think the most reasonable interpretation given all the evidence is that they are trying to raise some kind of awareness - albeit in ways that I don't think is well communicated, due to the issues I previously highlighted - most likely.

I could be wrong, I'm just following the publicly available evidence and, its a lot more murky than this is an malicious act by a malicious maintainer acting in malice.

And again, this brings up the broader issue around open source maintainability, longevity, the role of consumer and maintainer, and how to build better symbiotic relationships around that, yet we aren't talking about what lead to this event, which I would argue is more important than what happened.

My ask is for nuance in this conversation, where there is seemingly little.

[0]: https://www.merriam-webster.com/dictionary/malicious

[1]: https://www.merriam-webster.com/dictionary/malice

Re:What NPM should do to stop a new colors attack by Shaanie on Monday January 10, 2022 @05:12PM (#29883507)
You write a lot of words to explain how the maintainer could justify his malice. At the end of the day it's still done out of malice, though.

Unless he's gone absolutely bonkers, he's doing this to intentionally cause damage. The reason for it does not matter, as the definition you posted helpfully points out.

Re:What NPM should do to stop a new colors attack by no_wizard on Monday January 10, 2022 @05:20PM (#29883637)
Is it though?

Was it malice when maintainers started adding those posinstall scripts asking for funding? which lead directly to the creation of `npm fund`, for instance. Was that also malice?

Given all the evidence we have - I think its murky. That's my point, at the end of the day.

Arguably, I could say that making millions of dollars off an open source library and not contributing back is malice - yet that argument is rarely given the same open and shut approval.

Mind you, this is bigger, IMO, than `faker.js`, this raises questions around open source software as a whole, that are relevant in this case and beyond

There's nuance in this conversation that is missing so far.

Re:What NPM should do to stop a new colors attack by FunHearing3443 on Monday January 10, 2022 @05:31PM (#29883781)
I keep seeing this comment that companies are making their millions 'off of open source libraries' and it's a catchy phrase but let's be real the big companies that are using faker JS are making an insignificant amount extra by using that library, there are alternatives to mock data, etc. A key feature of MIT style licenses is that you can do whatever the hell you want with it for free, use a more restrictive license if you don't want people making a bunch of money off your code. I feel bad for this maintainer but a good takeaway is probably to not do a bunch of work for free unless you see a path to income down the road from it.
Re:What NPM should do to stop a new colors attack by watwut on Monday January 10, 2022 @05:43PM (#29883953)
It is actively anti open source argument. It makes limited sense in subculture where contributing to open source is expected, but that subculture is absurdly small and answer to it is "this absolutely should not be mandatory".

In any other context, it is argument against open source existing.

Re:What NPM should do to stop a new colors attack by acdha on Monday January 10, 2022 @05:56PM (#29884153)
> Was it malice when maintainers started adding those posinstall scripts asking for funding? which lead directly to the creation of `npm fund`, for instance. Was that also malice?

No, because that did not impair use of those libraries whereas this change deliberately broke every program written by someone who trusted him and used his code under the social contract he offered.

Open source maintainer funding and burnout are real problems but betrayal won't make things better. Imagine if you lived in a house with a bunch of roommates who weren't doing their share of the housework — you're entirely within your rights to stop volunteering to clean the toilet but it's crossing a line if you instead modify it to flush up.

Re:What NPM should do to stop a new colors attack by runarberg on Monday January 10, 2022 @06:13PM (#29884411)
What is being described here is a prototypical case of industrial sabotage. Books have been written about it, the jury is very much not out on whether we should consider it malicious, although I very much consider it not... In fact industrial sabotage is quite often made out of love for the fellow worker.

This is very much a philosophical question and I doubt we will resolve it here on HN. However if you want to deem this act malicious I beg you to ask your self: To whom is the malice directed towards, who was harmed the most? What does this act tell us about the industry?

I, on the other hand, see this sabotage as a clear act of love from a fellow worker.

Re:What NPM should do to stop a new colors attack by acdha on Monday January 10, 2022 @06:27PM (#29884582)
Sabotage is still malicious even if you sympathize with the motivations.

I would also strongly question any “fellow worker” explanation since I'm sure the pain will almost universally be felt by the “fellow workers” who have to update things, reassure their security team, or increasingly start justifying their use of open source software.

Re:What NPM should do to stop a new colors attack by runarberg on Monday January 10, 2022 @06:38PM (#29884717)
As is usually the case in most direct action. Your average strike will cause much further harm then this act for other workers. However the goal is not to halt production, halting production is simply a means to an end, the goal is usually better working conditions for the rest of the workers. This is why you often see workers stand in solidarity with strikers even when the strike directly harms them.
Re:What NPM should do to stop a new colors attack by acdha on Monday January 10, 2022 @07:04PM (#29885045)
In that case, this is extremely weak since it was so quickly and easily reversed. A strike which has no purpose or chance of success tends not to get much support.
Re:What NPM should do to stop a new colors attack by dahdum on Monday January 10, 2022 @10:17PM (#29886996)
> To whom is the malice directed towards, who was harmed the most? What does this act tell us about the industry?

It certainly wasn't directed at the large corporations, they have many systems in place to mitigate this type of attack. It was directed at everyone else, like fellow open source devs, contractors, hobby developers, students, and small to medium businesses.

The goal simply appears to be chaos and attention.

Re:What NPM should do to stop a new colors attack by MattPalmer1086 on Monday January 10, 2022 @06:45PM (#29884821)
If you publish your code under a license that says anyone can use it for free and don't have to contribute, don't act all hurt when people and companies do just what you said they could.

If you want to get paid, or you require contribution, use an appropriate license. It's not hard.

Re:What NPM should do to stop a new colors attack by acdha on Monday January 10, 2022 @05:13PM (#29883517)
It broke a ton of other people’s projects, on purpose. You can argue that he could have done much worse — say exfiltrating all of the AWS credentials from CDK users – but there’s no definition where it’s not an abuse of trust to sabotage your users.

https://github.com/aws/aws-cdk/issues/18322

Re:What NPM should do to stop a new colors attack by zdragnar on Monday January 10, 2022 @05:24PM (#29883684)
Nobody had to upgrade. Anyone who accidentally upgraded because their dependencies had sloppy programming practices should be mad at their direct dependencies.

aws-cli should not be an attack vector, and if it is, AWS engineers are at fault.

Re:What NPM should do to stop a new colors attack by chaostheory on Monday January 10, 2022 @05:43PM (#29883959)
This is a terrible argument. Marak didn't have to purposely break anyone's projects either. If he wanted to end it, he should have just sent a goodbye message stating the end of his involvement and walked away. This is the normal thing to do. If he wanted to be paid, he should have either picked the appropriate license at the beginning, or just changed it for future versions. The latter has also been done before with SugarCRM being one example. They are still around with paying customers. Something as free for all as the MIT license sends the wrong message.

This has been posted before, but Marak seems to be mentally unwell right now, which helps explain but doesn't condone his behavior.

https://abc7ny.com/suspicious-package-queens-astoria-fire/64...

Re:What NPM should do to stop a new colors attack by acdha on Monday January 10, 2022 @05:33PM (#29883814)
I don't know what makes you want to try to gaslight people on marak's behalf but this is a pretty poor attempt at doing so. He published a deliberately broken update with a non-breaking version number change to a package management ecosystem where the community expects to follow a semver-ish model where point updates do not break things. This is an abuse of trust, just like it would be if you said “I'm tired of cooking for everyone so I'm going to spit in the soup before serving it”.
Re:What NPM should do to stop a new colors attack by kwinten on Monday January 10, 2022 @05:52PM (#29884093)
But you didn't have to go to that restaurant! Don't you do a full health and safety inspection of every restaurant you visit (and of their entire supply chain)?
Re:What NPM should do to stop a new colors attack by edoceo on Monday January 10, 2022 @06:05PM (#29884285)
Up-thread there is a comment that the Major on the semver was updated. Which is correct? Was it Major or Patch number?

Edit to Add: According to this page https://www.npmjs.com/package/faker

The previous version was 5.x.y and the endgame version was 6.6.6

So, which tools defaulted to magically bumping the dependency from 5.x.y to the 6.x.y? Seems like jumping a major shouldn't automatically happen.

Re:What NPM should do to stop a new colors attack by acdha on Monday January 10, 2022 @06:09PM (#29884345)
I'm not sure what they said specifically but https://security.snyk.io/vuln/SNYK-JS-COLORS-2331906 and https://snyk.io/advisor/npm-package/colors show that the version went from 1.4.0 to 1.4.1.

Edit: your comment makes more sense now that I see it was talking about faker.js.

Re:What NPM should do to stop a new colors attack by zdragnar on Monday January 10, 2022 @10:36PM (#29887154)
aws-cli, a tool which provides access to an absurd amount of resources (compute, storage, text messaging to name a few) relies on "community expectation of semver-ish adherence" for security and continual operation, and I'M the one gaslighting people?
Re:What NPM should do to stop a new colors attack by acdha on Monday January 10, 2022 @10:50PM (#29887296)
You meant CDK (aws-cli is written in Python) but it’s not that simple: they shipped a lock file which pinned 1.4.0 but while NPM honors that the popular yarn package manager does not:

https://github.com/aws/aws-cdk/issues/18322#issuecomment-100...

This floating behavior allowed for it to be overridden locally:

https://github.com/aws/aws-cdk/issues/18322#issuecomment-100...

Re:What NPM should do to stop a new colors attack by zdragnar on Tuesday January 11, 2022 @12:34PM (#29894661)
Ah yes, the classic "you're holding it wrong" defense.
Re:What NPM should do to stop a new colors attack by slibhb on Monday January 10, 2022 @05:06PM (#29883420)
Pushing broken code on purpose is malicious.
Re:What NPM should do to stop a new colors attack by 9935c101ab17a66 on Tuesday January 11, 2022 @11:12PM (#29902199)
> Was this their primary motivation?

> Was the intention here to cause someone harm? What the intention here malice?

Yes. Removing / archiving the project – not malice. This, however is absolutely malicious:

  let am = require('../lib/custom/american');
  am();
  for (let i = 666; i < Infinity; i++;) {
    if (i % 333) {
      // console.log('testing'.zalgo.rainbow)
    }
    console.log('testing testing testing testing testing testing testing'.zalgo)
  }
> Are they right to feel this way? Maybe, maybe not. However, is this malice?

Reasoning about Marak's motivation or intentions does have anything to do with whether his actions were ultimately malicious.

> Its an act of someone who is disillusioned, strained, and struggling.

You might be right, but there were a lot of things he could have done before doing what he did, and when he did act, he did it with the intention of causing people distress, frustration and confusion.

> ...its a lot more murky than this is an malicious act by a malicious maintainer acting in malice.

We're really far down a semantic rabbit hole at this point. Ultimately, adding an infinite loop to a widely used package deliberately and without warning is clearly an attempt to 'cause ... distress to another.' There's no two ways about it. Sure, Marak likely felt under-appreciated, mistreated and taking advantage of by large corporations etc but those possible explanations do not absolve him of blame, or mean his actions were not unequivocally malicious. In the legal system, mitigating factors can lead to a lesser charge or a shorter sentence, but even if they do reduce the severity of the outcome, you're still guilty.

Re:What NPM should do to stop a new colors attack by rezonant on Monday January 10, 2022 @05:16PM (#29883557)
> Whats the intention here to cause someone harm?

The change has an infinite loop, so it literally breaks any software that uses it.

Re:What NPM should do to stop a new colors attack by sintaxi on Tuesday January 11, 2022 @12:03AM (#29887788)
Also the description, readme, and roadmap that was included in the package still passed it off as a functioning library which makes this a trojan.
Re:What NPM should do to stop a new colors attack by gitgrump on Monday January 10, 2022 @06:19PM (#29884483)
Dear Christ, I'm sick of this dichotomy. Deliberately releasing code like this is malicious, and was clearly done with intent. I'm not sure if you could sue, but there is such a thing as torts. You can't booby trap your yard and then be like "BUT I SAID NO WARRANTY!" when someone expects it to be a normal yard and then blows their leg off.

> If Lodash issued a breaking change...

It's called intent. Did Lodash _intend_ to break users' programs? Probably not. That's for a court to decide. Did this dude intend to break users' programs? The legal system is set up to resolve questions like this, not get fooled by clever gotchas from software developers. Intent matters in the eyes of the law and I'm utterly flummoxed and quite frankly concerned that so many developers don't understand that.

Simultaneously, pulling thousands of double digit layers deep of random-ass dynamic code dependencies is _also_ a bad idea at best, and professional negligence at worst.

The package author can be liable. The people who rely on him can, at the same time, make bad professional choices. Both things can be true.

Re:What NPM should do to stop a new colors attack by runarberg on Monday January 10, 2022 @06:34PM (#29884667)
You are raising point which noone is disputing. Yes stuff broke, people’s time was wasted, this was the intention. However that does not necessitate malice. IWW for example calls these kinds of sabotage a direct action. The malice is towards the oppressors. The goal is to slow down production and such that our oppressors suffer.

This act is really no different then a strike. A striking worker is only malicious towards those who unfavorably profits from their labor. Other workers might suffer, but a true worker will stand in solidarity, for direct action is an act of love for the entire working class.

Re:What NPM should do to stop a new colors attack by sintaxi on Tuesday January 11, 2022 @12:13AM (#29887855)
Keep in mind Marak was active in the issue tracker afterwards pretending to be fixing the "bug". Marak didn't change the description, readme, or roadmap of the package. He passed the release off as a functioning library that deliberately crashes any process that used the library. That is a Trojan.
Re:What NPM should do to stop a new colors attack by runarberg on Tuesday January 11, 2022 @06:55PM (#29900238)
This still describes a very standard industrial sabotage. Quite often workers will continue deliberating confusion as part of the sabotage, either to cover their tracks or to maximize the time of diminished production. The goal is still the same.
Re:What NPM should do to stop a new colors attack by blitz_skull on Monday January 10, 2022 @04:50PM (#29883172)
What he did was actively malicious. There was ill-will behind the actions. He did it for the purpose of interrupting a lot of stuff that was working, simply to make some sort of statement. It was an attack, by ALMOST any definition. The fact that it was a very benign attack with very few real consequences, doesn't make it less of what it was—an attack.
Re:What NPM should do to stop a new colors attack by keneda7 on Monday January 10, 2022 @05:10PM (#29883479)
He did not force anyone to update the package. They did that without looking at it. He no longer wanted his work to be disturbed. You may not agree with how he did it but calling it an attack is completely ridiculous.

These comments on HN are sending a pretty clear message out... don't open source anything. It is really really unfortunate.

Re:What NPM should do to stop a new colors attack by chaostheory on Monday January 10, 2022 @05:33PM (#29883809)
No one expects a maintainer to purposely break their project. If he wanted to end it, he should have just sent a goodbye message signaling the end of his involvement with maintenance. This has been done many times before without incident. If he wanted to be paid, he should have either picked the appropriate license for his software from the start, or just changed it for future versions. The latter has also been done before with SugarCRM being one example

To be fair, Marak seems to be mentally unwell right now, which helps explain but doesn't condone his behavior

https://abc7ny.com/suspicious-package-queens-astoria-fire/64...

Re:What NPM should do to stop a new colors attack by heavyset_go on Monday January 10, 2022 @09:08PM (#29886329)
> No one expects a maintainer to purposely break their project.

If you're using a 3rd party dependency, especially one you aren't paying for, you should expect it to break or disappear at any time.

Re:What NPM should do to stop a new colors attack by chaostheory on Monday January 10, 2022 @09:13PM (#29886369)
Falling into disrepair, or not being maintained due to various valid reasons: yes. This happens all the time.

Some asshole maliciously breaking your stuff: no.

I do not use either colorsjs or fakerjs. I was close since I used the Ruby version of faker that Marak ported into nodejs as fakerjs.

Re:What NPM should do to stop a new colors attack by kwinten on Monday January 10, 2022 @05:56PM (#29884152)
This is so ass-backwards and you're practically twisting yourself over backwards a dozen times to somehow try to argue that this wasn't malicious. He basically poisoned the library, and you're blaming all the people who got poisoned because "they didn't fully inspect the contents of the code".
Re:What NPM should do to stop a new colors attack by keneda7 on Monday January 10, 2022 @07:05PM (#29885051)
So do you disagree with the idea that it is his library?

If you agree that this is his library, do you believe what he did is different than a company changing their public API or deprecating them without any notice?

Re:What NPM should do to stop a new colors attack by acdha on Monday January 10, 2022 @07:11PM (#29885118)
It’s deliberate sabotage and shipped as a routine update. If he’d walked away or made a breaking change in a major release, nobody would expect more.

Similarly, if it was a service everyone understands that those require money to operate but there’s no analogous reason to tell people to upgrade to deliberately broken code.

Re:What NPM should do to stop a new colors attack by wruza on Monday January 10, 2022 @06:39PM (#29884738)
With that said, consumers can always choose a different library.

Yeah, you can always just choose a different css-loader > cssnano > svgo > colors depchain, because there's plenty. Dependencies like that empower people great, and we all know what comes with it.

When you're in a hot summer bus, it's immoral to turn off the AC only because it was you who decorated the knob.

Re:What NPM should do to stop a new colors attack by heavyset_go on Monday January 10, 2022 @07:15PM (#29885172)
> It was not injecting harmful code onto the machine, it was not an "attack" on anything, in any real sense. I feel all the media is doing so far is raking the maintainer over a fire, instead of asking the question of how did we get here in the first place? Why would a maintainer feel they need to take actions like this? What are they trying to achieve?

> Instead of talking about the role of maintainers, consumers, and what to do about the state of open source software and its longevity, we are instead using this moment to go after the maintainer as if they were doing the equivalent of using their npm packages to inject actual malicious, harmful code on the consumer machines, like a cryptominer.

I agree with all of your points. I would be more sympathetic to the backlash if those affected were paying license holders, but that's not what happened.

It is a privilege to use someone's hobby project that you didn't write for free and with no strings attached.

Re:What NPM should do to stop a new colors attack by krapp on Monday January 10, 2022 @07:24PM (#29885260)
>It is a privilege to use someone's hobby project that you didn't write for free and with no strings attached.

It isn't a privilege, as far as FOSS is concerned, it's a fundamental right. Whether one pays or not is irrelevant, that code was given to the community and it belongs to the community. No one, not even the author or project maintainer, has the right to vandalize community property regardless of their motives.

Re:What NPM should do to stop a new colors attack by heavyset_go on Monday January 10, 2022 @09:00PM (#29886239)
FOSS doesn't mean code is in the public domain, nor does it mean that the code is held in a public trust. It is very much the property of copyright holder. If the community feels this way, then they could have done the work to develop, maintain and distribute the product themselves. They didn't do that, though. They chose to depend on the labor of someone who was not compensated for their time or work, which is a privilege. No one is entitled to the developer's time or labor.
Re:What NPM should do to stop a new colors attack by krapp on Tuesday January 11, 2022 @06:18AM (#29890052)
>It is very much the property of copyright holder.

And FOSS licenses purposely give away many, if not all, rights typically granted by copyright. If I buy a book and I have the same rights as the author to rewrite and republish that book, and even put my name on it, even to make money on it, then it can be correctly described as being owned by the community rather than owned by the author.

> They chose to depend on the labor of someone who was not compensated for their time or work, which is a privilege.

The developer chose to give away their labor for free, they chose to forego compensation. The FOSS model is clear in considering the ability of the end user to read, modify and redistribute code without limitation to be rights, not privileges. Whether a developer can find a way to make money is orthogonal and incidental. That's a privilege defined by contractual obligation, not a right.

You can have FOSS or you can require developers be compensated for their efforts, but you can't have both. These two concepts are mutually opposed.

>No one is entitled to the developer's time or labor.

No one is entitled to make demands of the developer, but likewise, the developer isn't entitled to make demands of anyone else. As far as the fruits of their labors go, everyone is entitled to whatever they choose to give. That's the whole point of FOSS.

Re:What NPM should do to stop a new colors attack by fault1 on Tuesday January 11, 2022 @12:19AM (#29887890)
But let's not pretend the original maintainer did all of the work or owned all of the copyright. There were a ton of contributors to color, and some dude actually had more lines of code edited than the original maintainer: https://github.com/Marak/colors.js/commits/master

and faker.js seems to be more or less a port of a ruby library which was a port of a perl library.

Re:What NPM should do to stop a new colors attack by sintaxi on Tuesday January 11, 2022 @12:06AM (#29887810)
If the terms of the license are met it is a right to use the software.
Re:What NPM should do to stop a new colors attack by 9935c101ab17a66 on Tuesday January 11, 2022 @10:53PM (#29902079)
It's interesting that you strongly defend Marak here, and were also the one who shared his blog post ~seven months ago about how retool had stolen his code and his idea (which decidedly wasn't the case).