Replies: 75 comments 115 replies
-
| 
 | 
Beta Was this translation helpful? Give feedback.
-
| Copying some feedback here from our Slack discussion: 
 
 
 Additionally, see #174508 for some impact from the expiry and automation token removal. | 
Beta Was this translation helpful? Give feedback.
-
| There’s also some still valid and unaddressed feedback in the discussion around the OIDC / Trusted Publishing launch, such as eg my comment there: https://github.com/orgs/community/discussions/161015#discussioncomment-14419367 | 
Beta Was this translation helpful? Give feedback.
-
| From https://docs.npmjs.com/trusted-publishers 
 Is this support planned to be released before deprecating legacy classic tokens? We use GHES with self-hosted runners in our publishing workflow, and would like to switch OIDC / Trusted Publishing. It would be a breaking change for us to no longer be able to use legacy classic tokens with no ability to use OIDC instead. | 
Beta Was this translation helpful? Give feedback.
-
| There's a lot of good feedback elsewhere in these discussions but I want to make my take public outside of the slack as well. I'm going to go through the bullet points in the github blog post and then provide my own additional requests at the bottom. Current Planned GitHub / NPM Action Items
 ✅ This is good, get rid of them. Scoped and granular tokens are intrinsically more secure and the developer pain of "ah darn I gotta run  
 ✅ Again, this is great. I had this as an item in an unpublished blog post that NPM should do. It effectively moves NPM from "2fa" to "phishing resistant" 2fa, which if in place 2 months ago would have prevented several of the initial compromises we saw hit the npm registry due to phishing attacks against maintainers (some of whom had 2FA and got their TOTP mitm'ed). To be clear, this is going to be quite annoying for so many people. Not in the least me, Electron publishes ~50+ packages all using TOTP codes (securely sent via http://github.com/continuousauth to github actions) that all need to be migrated to trusted publishing. But this is work we were going to do anyway because we'd already made our own conclusions about trusted publishing being the more secure future. 
 ❓ This one is rough, there is currently an unsolved "Enterprise" usecase here that I will outline in "Missing Pieces" below. 
 ✅ Finally, yes, thank you. Guiding developers towards the more secure option by default is a quick and easy win here that doesn't impact any existing package. 
 ✅ Yessss. Thank you. Forcing 2FA for everyone is the single biggest win out of all of these, if you run  Make everyone have secure phishing resistant 2FA, and then force everyone to use it 💯 
 ❓ This one is also rough, but not because I'm against the idea, I'm wary of the implementation. See the "other OIDC providers" bit in "Missing Pieces" below Missing PiecesLet's pretend that everything in the above list shipped, what are we still missing to have a secure and simple package publishing strategy that works for everyone who currently uses npm Trusted Publishing should be One WayOnce you opt in to Trusted Publishing and publish your first release with it, that should be a one way choice only changeable in extreme cases with intervention from npm support. Currently just having access to a maintainers npm account effectively let's you perform a "downgrade" attack on them by removing trusted publishing and/or changing publishing settings. Once a package is published the Super Safe way, it should only ever be publishable that way. Trusted Publishing should use repository ID not nameThis is a common issue I see with github apps and other github integrations, I'm disappointed to see it from npm. By validating the owner name and repository name you are intrinsically creating the following issues: 
 The current UI in npmjs.org needs to be an actual dropdown of repositories using github oauth to provide a list and then internally it should validate the  Trusted Publishing should set up and enforce github environment usageCurrent GitHub environment usage for trusted publishing is a manual and optional step, in addition to the above once you have an oauth token for the users github account, set up the environment for them. Enforce the environment can only be used on the  This should be a series of clicks in the UI, not a custom yaml file, a hand crafted environment and manually typing in repo org and name. Trusted Publishing should disable all other legacy forms of publishing when activeCurrently even with trusted publishing enabled, a compromised maintainer account with a TOTP mitm can still publish these packages. Having Trusted Publishing active should just make all other forms of publishing disabled, regardless of how much auth you provide. See  The Enterprise Usecase and Other OIDC ProvidersThese two I don't have an answer for, but calling them out anyway. Enterprises use self hosted runners, even to publish open source packages, they also use CI systems that aren't github actions or gitlab. What's the story going to be for them, enterprises with self hosted CI (Jenkins, BuildKite, CircleCI, etc.) should still be capable of publishing packages safely without having to manually update a token every 7 days 🤔 I would like to see a plan for that. | 
Beta Was this translation helpful? Give feedback.
        
          
            
              This comment has been minimized.
            
          
            
        
      
    
            
              This comment has been minimized.
            
          
            
        -
| Here is a new post with changes we are applying first as part of this program. Please take a look and thanks for the continued feedback, as it is helping us doing some fine adjustments to the new measures we are implementing. | 
Beta Was this translation helpful? Give feedback.
-
| I think npm accounts should be as important as... I don't know, Apple developer accounts. Great to see that security updates are being made! | 
Beta Was this translation helpful? Give feedback.
-
| If you're going to force people to generate new tokens by forcing (short) expiry windows, at least make it easy for them to regenerate tokens using the previous configuration. As someone who has been using short-ish expiry windows already, this has been by far my biggest frustration with it - this feature has been long overdue... If a token of mine expires, I probably need one with the same granularity to replace it, so give me that option. If not, I think many developers will just generate overly permissive tokens because it's easier than specifying one package per token (again, I have considered this but luckily I don't publish that often). I believe this would contribute significantly to preventing attacks as a leaked token for one project wouldn't allow publishing all the package maintainer's other tokens. See also my earlier piece of feedback: npm/feedback#1088 | 
Beta Was this translation helpful? Give feedback.
-
| Please clarify the scope for this. It's linked from the main GitHub page; is it only for NPM or is it for everyone? I believe there are some things that you can do with classic access tokens that you cannot do with fine-grained tokens | 
Beta Was this translation helpful? Give feedback.
-
| One thing we seem to be skipping over: GitHub environments should have an option to require 2fa All of these npm changes are fine if there's 2FA in the trusted workflow. Currently, you can already bind a trusted workflow to an environment in that it must be run through that to be considered trusted. In reality the only reason anyone is complaining about the changes so far is because such a flow doesn't exist. The flow should basically go like this: 
 Admittedly this isn't an npm change but given how we're all being pushed to use GitHub for publishing, it's a very important feature to make the whole picture work. | 
Beta Was this translation helpful? Give feedback.
-
| Hi, thanks for this post. Some questions about  To be able to run  Right now, the  
 How will this be impacted by these changes? The github blog post does not address this issue. Thanks! | 
Beta Was this translation helpful? Give feedback.
-
| Thanks for the post. Related specifically to the Shai Hulud attacks I saw mentioned in the article that there are controls in place to prevent packages with Shai Hulud IoC's from being published. Can you detail that for me? We are trying to assess if NPM/Github has this under control or if we need to build out additional checks for Shai Hulud effected packages (Search for IoC's ourselves). | 
Beta Was this translation helpful? Give feedback.
-
| Our company has its own CI system and we do some npm package publishing using long-live tokens. We would like to migrate to Trusted Publishing, yet documentation says that it does not have wide support, nor is there any clear directions on how to implement Trusted Publishing for custom CI systems. With long-live tokens going to be revoked in mid-November, does that mean our only option is to  | 
Beta Was this translation helpful? Give feedback.
-
| Will long-lived classic tokens with read-only scope (not able to use for publishing) will also be revoked? They're useful for granting read-only access to packages in a private scope and don't pose security risk like publish tokens. | 
Beta Was this translation helpful? Give feedback.
-
| Now we're talking… On Mon, 20 Oct 2025, 19:52 My building, ***@***.***> wrote:
 I get what you saying and I totally understand about the packages cuz even
 charm is affected right now through a third party representative that's
 causing degradation and I guarantee you it'll probably be through one of
 them packages or something
 On Mon, Oct 20, 2025, 8:37 AM Tom Boutell ***@***.***> wrote:
 > If post-install goes away, malicious versions of modules can do roughly
 as
 > much harm at runtime instead, no?
 >
 > This is very long term, but blue-skying here for a second, what would
 > really help is the ability for the installer of the module (not the
 > developer of the module) to declare what actions they want that module
 to
 > be able to take.
 >
 > A restriction on a direct dependency of the project would take
 precedence
 > on a restriction of a sub-dependency, etc. So if a direct dependency of
 the
 > project is locked down by the project developer to, for instance, no
 > filesystem or network access, then no sub-dependency gets that privilege
 > when invoked by that module either.
 >
 > Obviously that's a pretty massive ask involving major changes to
 > JavaScript runtimes. Just thinking through what it would really take to
 > prevent certain classes of attacks entirely at the package
 infrastructure
 > level.
 >
 > I think it is more likely that we will get an ecosystem with fewer
 > sub-sub-sub-dependencies. We'll see more "standard libraries" and
 > "batteries included frameworks."
 >
 > —
 > Reply to this email directly, view it on GitHub
 > <
 #174507 (comment)>,
 > or unsubscribe
 > <
 https://github.com/notifications/unsubscribe-auth/BING55WUPPA7KIKFYS2XX5D3YTJRBAVCNFSM6AAAAACHJT4IZ2VHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTINZSHEZDCNI>
 > .
 > You are receiving this because you commented.Message ID:
 > ***@***.***>
 >
 —
 Reply to this email directly, view it on GitHub
 <#174507 (comment)>,
 or unsubscribe
 <https://github.com/notifications/unsubscribe-auth/BQ54RCLALS4HZ672JPBH6SL3YUOO7AVCNFSM6AAAAACHJT4IZ2VHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTINZTGI2DKOA>
 .
 You are receiving this because you commented.Message ID:
 ***@***.***>
 | 
Beta Was this translation helpful? Give feedback.
-
| I need some help finding a workflow that actually will work with these changes. I have 150 packages. My deployment process is: 
 Then I repeat the cycle for the next level of dependencies topologically. I'm not using monorepos. I have no idea how to do cascading, topological deployment using github actions. Does anyone have any suggestions? | 
Beta Was this translation helpful? Give feedback.
-
| Do you have a date for CircleCI to become a trusted publisher ? November deadline is coming soon and having no news so far about support for it is not sending the right signal for this migration. | 
Beta Was this translation helpful? Give feedback.
-
| If all the major existing source forges and CI providers were being supported out of the gate, this would be a lot more defensible. Why aren't they? Is it even legal, under most jurisdictions' competition laws, to deploy this change without support for publishing through the majority of existing CI providers? GitHub Inc has a monopoly in one market (the JavaScript package registry market; npm is basically the JavaScript package manager right now). It is using that monopoly to damage its competitors in other markets (the source forge and CI system markets) by having npm give GitHub's own products (GitHub and GitHub Actions) preferential treatment. That is a classic "abuse of dominance" case, no? Using your dominance in one market to force your users in that market to also go with your offering over your competitors' in an adjacent market is precisely the sort of conduct that competition law exists to stop. Higher up in this discussion we see various commenters bemoan that this change makes it non-viable for them to keep using their current CI provider - CircleCI, for instance - for package publishing, and that they will have to cease using that provider as a result. I do wonder if that was in fact the entire point. And I also wonder if those competitors' lawyers - and perhaps some competition regulators - are going to quite justly take action against GitHub in response. | 
Beta Was this translation helpful? Give feedback.
-
| Please upgrade https://github.com/actions/runner-images to use npm 11.5.1 before invalidating existing tokens. This way, existing  | 
Beta Was this translation helpful? Give feedback.
-
| In this first post you state you will 
 and it also said that you will only support "Granular tokens which will have a limited lifetime of seven days." Is 2FA is not yet required for local publishing? If this means that we are requiring 2FA for every publish for each package, then this is really going to ruin our intern's day. | 
Beta Was this translation helpful? Give feedback.
-
| I don't understand what the point was to ask for feedback if that feedback isn't used to ensure that we're not stuck. Seems like everything has been going ahead as mentioned given the announcement 2 weeks ago here: https://github.com/orgs/community/discussions/176828 Yeah great, our current tokens are not yet borked, but that doesn't help me when I need a new one for a new deploy machine. So I guess the stance is for us to figure it out, take the huge cost, or be vendor locked in GitHub/GitLab. Please let us know where we can all send our invoices. | 
Beta Was this translation helpful? Give feedback.
-
| GitHub and npm don’t seem interested in user feedback at all, so I’m not sure why they opened this thread. Changes that favor a specific vendor will only invite legal repercussions. These policies are being rolled out far too hastily, with no phased transition. Frankly, it comes across as pretty amateur. It feels like the response to past issues is simply to wipe everything away. My suggestions: 
 | 
Beta Was this translation helpful? Give feedback.
-
| npm/cli#8699 is blocking me from using trusted publishing | 
Beta Was this translation helpful? Give feedback.
-
| Just delete  I don't use anything that has such script. I look skeptically on such tools and try to replace them, even if it requires migration of the whole project to some other tools. This is "quality of life" we never asked for. I'm sure everyone who uses it - is able to to same things without  How token lifetime limit could prevent recent attacks? Compromising the tokens and contaminating the supply chain took only a few hours to spread. The token lifetime should be less than 5 minutes? I don't see any working solution to the actual problem proposed. The main reason of that:  | 
Beta Was this translation helpful? Give feedback.
-
| For everyone following this thread, I've posted some updates for the plans thanks to all the feedback I received here. Please continue providing feedback as we can continue improving our plans and making npm better and more secure! | 
Beta Was this translation helpful? Give feedback.
-
| Hi.  I'm Mitch, a dev over at CircleCI. I just want to assure people we are in conversation about getting approved as an npm trusted publishing option. | 
Beta Was this translation helpful? Give feedback.
-
| Hi We are currently on Bitbucket Cloud. We have been using Classic Token. Based on the article Classic Tokens will be disabled soon and we need to use Granular Access Token. It looks like write enable granular access token needs to updated every 90 days manually. Is there any ETA when OIDC be available for Bitbucket? | 
Beta Was this translation helpful? Give feedback.
-
| Is there a way to use Github actions to generate a new token? We could then use that as a jumping board to update a token in a CircleCI context. | 
Beta Was this translation helpful? Give feedback.
-
| No you cannot use GitHub as a jump point for new tokens that would be
redundant in in in they can just capture the traffic and still inject
maliciously… On Thu, Oct 30, 2025, 10:53 AM Mike Wyatt ***@***.***> wrote:
 Is there a way to use Github actions to generate a new token? We could
 then use that as a jumping board to update a token in a CircleCI context.
 —
 Reply to this email directly, view it on GitHub
 <#174507 (comment)>,
 or unsubscribe
 <https://github.com/notifications/unsubscribe-auth/BING55RFQFKPO6ZUCRIPU5T32IQ6LAVCNFSM6AAAAACHJT4IZ2VHI2DSMVQWIX3LMV43URDJONRXK43TNFXW4Q3PNVWWK3TUHMYTIOBSHAYDQMQ>
 .
 You are receiving this because you commented.Message ID:
 ***@***.***>
 | 
Beta Was this translation helpful? Give feedback.


Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
We recently published a post about our plan to improve security on npm as a supply chain supplier and I'd love to gather everyone's feedback.
Please use this thread for general feedback. Other threads might be pinned as well as they get popularity as I want to keep free formatting for all.
Thanks!
Beta Was this translation helpful? Give feedback.
All reactions