Skip to content

Conversation

@yfolias
Copy link

@yfolias yfolias commented Oct 7, 2025

No description provided.

@netlify
Copy link

netlify bot commented Oct 7, 2025

Deploy Preview for tag-security ready!

Name Link
🔨 Latest commit 5df03cd
🔍 Latest deploy log https://app.netlify.com/projects/tag-security/deploys/68e63dbf8e1f3600088b6652
😎 Deploy Preview https://deploy-preview-1497--tag-security.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

Copy link
Contributor

@evankanderson evankanderson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi, this is one point of view, but I suspect that other TAG-SC members will have additional interesting takes that I don't want to preclude here.

Comment on lines 30 to 31
This is an _Attack Chaining_ type of attack as the attacker combined multiple
weak links in the software delivery process.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If the attack uses the attack chaining technique, we should call out the underlying weaknesses (Dev tooling, publishing infrastructure, and malicious maintainer).

Comment on lines 24 to 26
This compromise falls under _Publishing Infrastructure_ category as the
attackers were able to compromise the underlying automation layer used to build
and publish software.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If the attackers compromised GitHub user accounts to inject malicious workflows, I think this is a "malicious maintainer":

This category includes attacks from experienced maintainers going rogue, account compromise, and new personas performing an attack soon after they have acquired responsibilities.

Comment on lines 5 to 11
The Widespread npm Supply Chain Attack, which began around September 8, 2025,
was a multi-phased incident. The initial phase involved a phishing campaign that
compromised maintainer accounts, leading to the injection of a
cryptocurrency-stealing payload into dozens of popular packages (like chalk and
debug). This was quickly followed by the discovery of the "Shai-Hulud" worm
campaign, which used a self-propagating credential-stealing malware to
compromise over 500 npm packages.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this a single attack, or is this combining multiple attacks by distinct actors over the same time period with similar techniques?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good question. Many reports like this, suggest the phishing campaign and Shai-Hulud worm were linked phases of the same broader compromise, not separate incidents. Both targeted npm maintainers and abused publishing credentials within the same timeframe, so I’ve grouped them under one attack for clarity.

Comment on lines 18 to 21
and persistent access in CI/CD environments. The incident exposed the fragility
of transitive dependency trust and underscored the urgency of enforcing 2FA for
maintainers, signed package publishing, and dependency integrity verification
across the npm ecosystem.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure that the "lessons learned" here line up with the impact. The initial phishing campaign could have been thwarted by strong 2FA (i.e. passkey / FIDO), but I'm not convinced that the worm had the same constraints.

NPM did react by preparing to move to stronger credentials, but I'm not sure what "dependency integrity verification" references here. If the worm ran in a CI environment with access to publishing credentials, I can imagine it performing signing using the same credentials that an intentional publish would have. Maybe we need a "build environment hardening" compromise type?

Comment on lines 28 to 29
This is an _Attack Chaining_ type of attack as it required multiple levels of
compromise.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If this used the attack chaining technique, let's call out the underlying types of failures. According to StepSecurity's writeup, it sounds like the initial attack leveraged a vulnerable CI workflow, which would mean this was a "Dev Tooling" attack.

Comment on lines +26 to +28
This is a _Publishing Infrastructure_ type of compromise as the compromise
occurred within Red Hat’s internal GitLab environment, which is part of its
development and collaboration infrastructure.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Again, I think this is a supply chain attack, but it's not clear that it's a software supply chain attack, despite the compromised infrastructure being a source control repository in this case. (The same attack could be applied against a consulting firm's Sharepoint or Google Workspace accounts with equivalent effect.)

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed, I totally see your point. Do you think that adding a new category such as "3rd Party Vendor" type would make more sense for describing this type of incidents?

@evankanderson
Copy link
Contributor

And, thanks for doing this!

@yfolias
Copy link
Author

yfolias commented Oct 8, 2025

And, thanks for doing this!

Many thanks for your comments. I will review everything and make the changes required

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants