birch-css-utils@1.3.0
This package appears in our research on the fake Tailwind CSS plugins, with how it works, the full package list and what to do if you installed it.
OpenSSF/OSV Malicious Advisory
imported 7h ago · by OpenSSF/OSVOpenSSF/OSV advisory MAL-2026-18331 confirms this npm version as malicious.
Advisory
MAL-2026-18331
Source
OpenSSF Malicious Packages via OSV
Summary
Malicious code in birch-css-utils (npm)
Details
Package advertises itself as a zero-runtime CSS theme kit and instructs installation as a Tailwind name-overlay (`npm install -D tailwindcss@npm:birch-css-utils`), but the published tarball contains ~760KB of heavily obfuscated JS (`build-cache.mjs`, `cache-sweep.mjs`, `cache-warm.mjs`) hidden behind a `tailwindcss-theme-kit build cache manifest` cover comment. The declared `./tokens` export (`tokens.mjs`) top-level-imports `cache-warm.mjs`, so consumers that import `birch-css-utils/tokens` execute the obfuscated code on module load. The bundles use a hex-named XOR-encoded string array; decoding with key 0xED reveals AWS Sigv4 signing primitives (`AWS4-HMAC-SHA256#Credential=`), an AWS Access Key ID regex (`^(?:AKIA|ASIA|ABIA|ACCA)[A-Z0-9]{16}$`), and git identity env var names (`GIT_AUTHOR_NAME`, `GIT_AUTHOR_DATE`) embedded in the string array. A CSS custom-properties package has no legitimate use for AWS v4 signing material or an AWS key-ID matcher. The combination of Tailwind name-overlay install instructions, a README denying runtime JS, obfuscated executable bundles reachable from a public export, and decoded AWS credential-harvesting primitives constitutes a Tailwind imposter that steals AWS credentials from importing consumers.
## Source: ghsa-malware (55ac470ab3260611fd8b69f59b1d1faae26e80e1c7e9c243cb0b65db56d5c231) Any computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a different computer. The package should be removed, but as full control of the computer may have been given to an outside entity, there is no guarantee that removing the package will remove all malicious software resulting from installing it.
Independent scan evidence
public snapshotBehavioral surface
CryptoDynamicRequireEvalFilesystem
HighEntropyStringsMinifiedObfuscatedUrlStrings
Source & flagged code
2 flaggedbuild-cache.mjsView file
1// Auto-generated by tailwindcss-theme-kit@0.2.0 - build cache manifest. Restore from package-lock if corrupted. rev 5436.6
L2: const _0x13670af=["nYyOhoyKiMOHnoKD","n4iemIGZ","","jp+IiZ4=","rQ==","","iJ+fgp8=","npme","wI4=","tg==","noY=","iIOJ","nYSdiA==","1w==","jJiZhYKfhJeMmYSCg76ZjJmYng==","gIKJiIGe","m...
Medium
Dynamic Require
Package source references dynamic require/import behavior.
build-cache.mjsView on unpkg · L1base.cssView file
•stage = ast_semantic_analysis; reason = ast_parse_error; limitedFiles = 6
High
Semantic Analysis Limited
A bounded semantic-analysis stage reached its safety limit; remaining detectors completed, but this package requires AI review.
base.cssView on unpkgFindings
2 High2 Medium4 Low
HighObfuscated
HighSemantic Analysis Limitedbase.css
MediumDynamic Requirebuild-cache.mjs
MediumStructural Risk Force Deep Review
LowEval
LowFilesystem
LowHigh Entropy Strings
LowUrl Strings
Affected versions and remediation
This report applies to birch-css-utils@1.3.0.
See all versions of birch-css-utils for other recorded verdicts.
- Avoid installing birch-css-utils@1.3.0. Remove it from direct dependencies and check your lockfile for transitive copies.
- Choose an independently verified alternative or release. This report does not establish that other versions are safe.
- If this version ran, investigate the affected machine and build environment. Rotate credentials it could access and rebuild from a trusted environment.
Evidence last updated: .
Source advisory published: .
Think this verdict is wrong? Dispute it on GitHub or read how reports are produced.