Skip to content

axios@1.14.1 and axios@0.30.4 are compromised #10604

Closed

Description

@ashishkurmi

more details: https://www.stepsecurity.io/blog/axios-compromised-on-npm-malicious-versions-drop-remote-access-trojan

Most likely, a maintainer's GitHub and npm accounts are compromised as these issues are getting deleted.

I have also reported this as a vulnerability, so that a CVE can be generated.

Activity

  1. DigitalBrainJS commented on Mar 31, 2026

    @DigitalBrainJS
    Collaborator

    Hmm, I doubt @jasonsaayman is here. He doesn't reply on Slack, but he managed to unpin and probably delete the recent issue.

  2. AdnaneKhan commented on Mar 31, 2026

    @AdnaneKhan

    @DigitalBrainJS can you try and trigger a clean minor version bump workflow?

  3. AdnaneKhan commented on Mar 31, 2026

    @AdnaneKhan

    @DigitalBrainJS if you bump to 1.14.2 in new tag it should publish via the OIDC trust

  4. DigitalBrainJS commented on Mar 31, 2026

    @DigitalBrainJS
    Collaborator

    It's pointless. Since access to git and the npm repository is compromised, and his git permissions are higher than mine. I'm a collaborator, not an admin. I can't revoke his access. Whatever I fix, he will "fix" it after me.

  5. AdnaneKhan commented on Mar 31, 2026

    @AdnaneKhan

    This issue has been live for a decent while now - GitHub may have suspended the account. It’s worth a shot to get mirrors and etc. to flush the bad release.

  6. DigitalBrainJS commented on Mar 31, 2026

    @DigitalBrainJS
    Collaborator

    At least we know that these are the @jasonsaayman credentials; that's why I pinned the issue to see on whose behalf the actions are being performed, when the issue was unpinned. So obviously, this is not an old account of one of the members of the Axios organization.

  7. DigitalBrainJS commented on Mar 31, 2026

    @DigitalBrainJS
    Collaborator

    I hope the npm administration will take action, but due to the late hour, I think there will be a delay. It's no coincidence that the attack was carried out at such a late hour. I've asked them to revoke all npm tokens. We'll deal with the git repository later.

  8. Lunascaped commented on Mar 31, 2026

    @Lunascaped

    I'm tired boss

  9. Pierca7 commented on Mar 31, 2026

    @Pierca7

    The malware seems to have been taken down from npm https://www.npmjs.com/package/plain-crypto-js

    Image
  10. DEV-DIBSTER commented on Mar 31, 2026

    @DEV-DIBSTER
    Image

    It appears the affected axios version was taken down from Axios page on NpmJS.

  11. amdcq commented on Mar 31, 2026

    @amdcq

    On the positive side, something like this will hopefully be a wakeup call for more people and being taken more seriously.

  12. LKNSI commented on Mar 31, 2026

    @LKNSI

    I'm tired boss

    Image
  13. DEV-DIBSTER commented on Mar 31, 2026

    @DEV-DIBSTER

    On the positive side, something like this will hopefully be a wakeup call for more people and being taken more seriously.

    The only takeaways as of right now is you don't install package updates, especially new ones, blindly or automatically, and that supply chain risks exist.

    Other then that, any speculations on how jasonsaayman npm and git credentials got compromised/used/exploited is up for grabs.

  14. lukefr09 commented on Mar 31, 2026

    @lukefr09

    Worth noting for anyone doing triage, the payload renames a pre-staged clean package.md to package.json, overwriting the version with the postinstall hook, AND setup.js self-deletes.. so inspecting node_modules/plain-crypto-js/ post-install won't show any evidence of the compromise. If you're checking whether you were hit, lockfile diffing for plain-crypto-js is more reliable than inspecting node_modules directly. Network logs for outbound connections to sfrclak.com:8000 are your best bet also if lockfiles were regenerated. Good luck

  15. 353 remaining items

  16. DigitalBrainJS commented on Apr 1, 2026

    @DigitalBrainJS
    Collaborator

    I remember receiving several phishing emails over the last six months, purporting to be from GitHub, asking me to re-login for security reasons. But perhaps this has nothing to do with our hacker, and these emails are sent to everyone with a GitHub account. Besides, taking over a GitHub account doesn't explain how the hacker managed to change the email address in the NPM account, since the npm token from GitHub Secrets doesn't allow this. Session theft seems more likely, but then it turns out that the npm backend does not bind the session to the network and geolocation.

  17. DanielRuf commented on Apr 1, 2026

    @DanielRuf

    but then it turns out that the npm backend does not bind the session to the network and geolocation.

    If they would directly do this in the background on the compromised account, it looks like they did it themself.
    So even session binding often does not prevent some cases, especially social engineering like in this case.

  18. 9xN commented on Apr 1, 2026

    @9xN
  19. SpyC0der77 commented on Apr 2, 2026

    @SpyC0der77

    Axios got on trending because of this 😮

  20. saadgheh commented on Apr 2, 2026

    @saadgheh
  21. tbroyer commented on Apr 2, 2026

    @tbroyer

    @saadgheh Your tool is attention-grabbing bullshit. You don't even know how dependencies are managed in JS projects.
    https://github.com/saadgheh/SupplyGuard-AI/issues/1

  22. gael-soude commented on Apr 2, 2026

    @gael-soude

    @saadgheh Your tool is attention-grabbing bullshit. You don't even know how dependencies are managed in JS projects. saadgheh/SupplyGuard-AI#1

    Just trying to make money with a AI generated script 🤦

    💎 Upgrade to PRO Version

    Get SupplyGuard PRO for $29:

    • ✅ Auto-Patching: Fixes infected files automatically.
    • ✅ Live IOC Feed: Real-time threat intelligence updates.
  23. HackingRepo commented on Apr 2, 2026

    @HackingRepo

    npmjs i think need introduce oauth, npm login, will redirect you to login with your NPM account directly and after that you are logged in, OAUTH more secure and also afer inactivity, NPM require again to the user login for keep his account safe

  24. bddjr commented on Apr 2, 2026

    @bddjr

    I remember that now before manually running npm publish, you do need to manually run npm login first; otherwise, npm publish will return 404 Not Found.

    I'm not sure how long the session for npm login lasts.

  25. moara-ops commented on Apr 2, 2026

    @moara-ops

    Yes that's correct, before a manual npm publish, you need to run npm login first, otherwise npm publish can fail with 404 Not Found. Also, npm login is no longer long-lived: it now issues a session token that expires after 2 hours, so you may need to re-authenticate before publishing if the session has expired.

    GitHub Changelog - NPM Classic Tokens

  26. corneliusroemer commented on Apr 2, 2026

    @corneliusroemer

    Edit: Also, was there also no email notification to the former email account holder that the email address on their account had been changed?

    This repo got 3000 spam issues in one day (March 23). Email bomb is a classic technique to bury security notifications. (See https://github.com/axios/axios/discussions/10612 for details)

    I remember receiving several phishing emails over the last six months, purporting to be from GitHub, asking me to re-login for security reasons. [...] Besides, taking over a GitHub account doesn't explain how the hacker managed to change the email address in the NPM account, since the npm token from GitHub Secrets doesn't allow this.

    Npm encourages linking your GitHub account for recovery purposes. Don't assume those phishing emails aren't related. North Korean state hackers here care very much about axios maintainers and not much about the average developer.

    @jasonsaayman it would be great if you could review the audit logs on both GitHub and Npm to see when the first unauthorized activities happened. They should still be visible. I couldn't find in npm docs if there's an audit log but there really ought to be one.

  27. jasonsaayman commented on Apr 2, 2026

    @jasonsaayman
    Member

    npm does not have logs like that readily available to my knowledge. also the "email bomb" does not affect me i dont get emails about issues from github explicity set to reduce noise very long ago.

    as for github i have already. a postmortem is comming i am just getting it reviewed before releasing it. thanks for everyones comments etc.

  28. saadgheh commented on Apr 2, 2026

    @saadgheh

    @tbroyer I appreciate the 'passionate' feedback. Open source thrives on scrutiny.

    1. Regarding the JS ecosystem: I'm well aware of how transitive dependencies work (lock files, hoisted modules, etc.). v1.0 was a rapid 4-hour 'emergency manifest scanner' to catch the obvious. The community requested lock-file support, and that's exactly what's being pushed in v1.1 today.

    2. Regarding AI: Tools (including AI) are there to accelerate response times during active breaches. Whether the script was born from a prompt or a keyboard doesn't matter—what matters is if it detects the malicious plain-crypto-js payload faster than a manual audit.

    3. Regarding the PRO version: Security research takes time and infrastructure. Offering a paid tier for 'Auto-remediation' is a standard way to sustain independent security tools.

    If you have a PR to improve the lock-file logic, I’m happy to review it. Otherwise, let’s focus on helping people secure their repos from the Axios RAT.

  29. DanielRuf commented on Apr 2, 2026

    @DanielRuf

    When it comes to finding malicious files, there are already trusted solutions. YARA and YARA rules.
    Using the thread here to promote a (commercial) solution that was quickly created is very unprofessional.

  30. jasonsaayman commented on Apr 2, 2026

    @jasonsaayman
    Member

    as promised here is post mortem link: https://github.com/axios/axios/issues/10636

    i am locking this thread for now, comments are welcome on the postmortem

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions