eslint-scope npm malware stole tokens
An attacker compromised the npm account of an ESLint maintainer and published malicious versions of eslint-scope and eslint-config-eslint.
Story
The ESLint compromise started with a maintainer account. On July 12, 2018, an attacker used that access to publish malicious eslint-scope and eslint-config-eslint releases. The packages were developer tooling, so the first systems exposed were the machines and CI jobs that build other software.
The code searched for .npmrc files and npm authentication tokens. It did not need a kernel exploit or a browser bug. It needed the registry to accept a package from a trusted publisher, then it used normal installation to reach credentials that could publish the next package.
That made the package a credential-harvesting bridge. The attacker was not trying to monetize ESLint users directly; the more dangerous outcome was a chain of newly stolen npm tokens, each one able to publish more malicious packages under trusted names.
ESLint's postmortem and npm's response centered on token revocation and containment. The important impact was the chain reaction that was possible but interrupted: one stolen maintainer account could have become many stolen publisher tokens.
Affected Artifacts
- Observed
- 2018-07-12
- Compromised Versions
- Fixed
- Not listed
- Hashes
-
- sha256:ecdf72a1e1a4cfb67e220c827b2a7613cf8b0280cac0936879a2c12398897ce4
- Observed
- 2018-07-12
- Compromised Versions
- Fixed
- Not listed
- Hashes
-
- sha256:b208f83f1e4e3a3273d59acf970cb9678e8b46554bee2b2034675038b25ac15c
Incident Context
- Motive
- Credential Theft
- Attribution
- Person
- Cause
- Compromised Account Credentials
- Transitive
- No
- Actor
- Individual Hacker
- User Impact
- 4500
Indicators
External References
Source record: oss/attacks/eslint/meta.yaml