8 comments

  • zihotki 39 minutes ago
    If everyone starts applying cooldowns, won't it postpone the problem? So now there is a considerable amount of users who are affected and someone from the affected group discovers the infection and reports it.

    But if everyone will be delaying updates, won't be there less chances to catch it in time? I'm not fully sure if it's possible to preventively scan all NPM packages or how much compute it would require.

    • stusmall 25 minutes ago
      >If everyone starts applying cooldowns, won't it postpone the problem?

      There are still research firms who are actively and aggressively scanning new packages once they are pushed. For example socket.dev pulls new packages across ecosystems and performs automated analysis and runs it in a sandbox. We don't have to have them go boom in someone's production repos to find out there is a problem.

    • woodruffw 14 minutes ago
      > But if everyone will be delaying updates, won't be there less chances to catch it in time?

      No: the security assumption behind cooldowns rests on security scanning parties, not on innocent users being victimized. Three days is a short cooldown, but it should be a good enough lead for scanning parties.

      > I'm not fully sure if it's possible to preventively scan all NPM packages or how much compute it would require.

      It’s not that much data, particularly for parties that are directly financially incentivized to be the first to report malware.

    • MeetingsBrowser 29 minutes ago
      Only a few of the recent supply chain attacks were discovered by users noticing weird behavior.

      The majority were noticed by maintainers or third party groups noticing things like releases not tied to a source tag, many rapid releases, etc.

      Cooldowns won’t stop everything, but it makes a malicious release significantly more likely to be noticed

    • tabwidth 2 minutes ago
      Most of the malicious ones just curl something in a postinstall script, scanners already catch that. The sneaky ones don't look malicious until they run, and three days may not help.
    • roblabla 36 minutes ago
      The goal is to give time for automated scanners ran by cybersecurity companies to flag malware before it gets installed on real users.
    • oakesm9 37 minutes ago
      I think the idea is that it gives a bit of time for the companies which run automated scans of new versions to run through and detect any issues with new versions before users install them en-mass.
    • ronbenton 24 minutes ago
      Easy, then you just delay your project’s dependency updates just a little more than everyone else
  • mook 2 minutes ago
    But updates to broken packages are still allowed: if a new version is pushed within the three days, it does not reset the cool-down. You just get a pull request to update to a known-bad version instead.
  • noosphr 15 minutes ago
    Watching language package managers reinvent everything distribution package managers have been doing since the 90s has been as fun as watching crypto people reinvent financial regulation.
    • woodruffw 11 minutes ago
      The publishing topology is pretty fundamentally different: the entire power (and danger) of language package managers is that anybody can publish, not just a privileged few.

      (This cuts both ways: I’d say that distribution package managers have learned valuable lessons about what users actually want from language package managers. Learning is a good thing.)

    • kibwen 9 minutes ago
      This comparison is tiresome. Distro package managers are curated, language package managers are not. They're serving completely different use cases; the former is the App Store, the latter is the web.
      • noosphr 6 minutes ago
        Give it two years.
  • Waterluvian 31 minutes ago
    I really hate dependabot making generic security people at work so pushy about updates updates updates. They seem to just be dogmatic about whatever dependabot says, forcing churn even when the documented issues are clearly not relevant. I’m not sure how to handle it politically. I’m convinced that updating so much more often is worse, not better.
    • bluejellybean 28 minutes ago
      I'm in a similar camp, I dislike how often third-party package updates get pushed out, especially given the lack of serious inspection.

      The reality is that each update is its own potential security issue and with supply chain attacks being all too frequent, it's not a panacea.

      • cesarb 16 minutes ago
        > The reality is that each update is its own potential security issue

        Even beyond security issues: each update is a new opportunity for breakage, not only from bugs in the third-party package, but also from unexpected dependencies on the third-party package's behavior.

    • bunderbunder 10 minutes ago
      I’ve mainly handled it by pushing my team to be extremely conservative about what dependencies we take, especially if they pull in scads and scads of transitive dependencies.

      This elegantly mitigates three problems in one go: update churn, dependency hell, and supply chain attack surface.

      It also, frankly, tends to make the code easier to understand. I’m not a huge NIH person but I do have to say that a lot of packages these days tend to encourage ways of doing things that are unnecessarily complex. More than once I’ve replaced a dependency with homegrown code and reduced LOC in the same commit.

  • ashu1461 49 minutes ago
    This makes me think whether npm (and other registries) should apply security requirements based on ecosystem impact. Example a package having millions of downloads can have special security measures enforced.
    • madeofpalk 49 minutes ago
      What would be a security measure that should only be selectively enforced?
      • toomuchtodo 47 minutes ago
        Higher cost (“Mythos” vs static code analysis) vulnerability scanning prior to successful merge to main branch or deployment as an artifact. As risk increases (popular code->greater exposure potential), increase automated, programmatic scrutiny on subject code to lower residual risk.

        (application security and vulnerability management is a component of my work in financial services)

  • insanitybit 1 hour ago
    What a state of things where we have to fear installing software, and rely on vendors to scan things ahead of time, because our supply chain is such a mess and our tooling is so incapable of (and uninterested in) protecting us.
    • Insimwytim 1 hour ago
      You cannot call it a supply chain, if you have zero contractual relationships with the authors of the solutions you are using.

      [1] https://news.ycombinator.com/item?id=44434355

      • stingraycharles 47 minutes ago
        I mean, that’s just arguing over whether or not the definition of “supply” implies “compensation”, which isn’t very interesting imho.

        The grandparent’s point remains the same, the software ecosystem and its supply chain or however you want to call it is a hot mess.

        • xgulfie 39 minutes ago
          Traditionally the term "supply chain" has implied a buyer/seller relationship
          • stingraycharles 4 minutes ago
            I think that’s up to debate, and my point is that debating whether free software counts as “supply” or not is really not that interesting.
      • cryo32 59 minutes ago
        Oh that one really makes you think doesn’t it.
    • madeofpalk 49 minutes ago
      What would a solution to this look like?

      What would it take to not fear installing software? This isn't a npm problem, its a computing problem in general. Spaces like this are generally pretty against any sort of restrictions or limitations being put on computers under the name of safety (see Manifest v3)

      • dwoldrich 28 minutes ago
        For libraries, I like the Gnu Affero Public License[1]. If you run the library in software with that license, you have to publish all the source of the entire project that incorporates it.

        No corporation could tolerate this, though, so the library vendor can negotiate a commercial license of their software for appropriate fees.

        That said, corporations are not going to want to negotiate fees with 100's of vendors over constantly fluctuating dependencies in their software.

        This is why the next big language/software ecosystem needs to integrate payments to vendors in their repository system. That way, commercial license management can occur between the ecosystem owners and the corporate customers and all the vendors get paid their fair share.

        Similar to Amazon's Dynamo API, whatever the next big language/ecosystem is needs to be designed around _billing_ and automatic license management for # of deployments, seats, call volumes, etc.

        [1] https://web.archive.org/web/20260712154038/https://www.gnu.o...

      • jchw 45 minutes ago
        Manifest v3's actual motive was so shamelessly transparent that most of us just don't allow the "safety" argument for it to really be entertained. I don't have a suspension of disbelief rich enough to pretend I don't know.
    • sunaookami 1 hour ago
      No way to prevent this says only package manager where this regularly happens.
  • cadamsdotcom 39 minutes ago
    "We don't call 'em 0days any more, now we call 'em 3days"
  • bstsb 46 minutes ago
    > The default applies only to version updates. Security updates still open immediately, so critical fixes are never delayed.

    does this require a real vulnerability report, or CVE? if the package is compromised would they just be able to push a false "critical update" that bypasses this wait?