
Executive Summary
- Npm Package keyv และ cacheable ถูกฝังมัลแวร์ด้วยการโจมตีแบบ Supply Chain Attack และยังรวมถึง Package อื่น ๆ กว่า 400 Package
- มัลแวร์จะทำการขโมย Credentials เช่น NPM Token, GitHub Token, Cloud Credentials, SSH key, Slack token
- มัลแวร์ยังมีความสามารถในการแพร่กระจายตัวเอง (Wormable) ส่งผลให้เครื่อง Developer ที่ติดมัลแวร์จะทำการ Upload มัลแวร์ไปยัง Npm Package ของตัวเอง
Technical Detail
วันที่ 4 สิงหาคม 2026 พบการโจมตีในรูปแบบ Supply Chain Attack กับ NPM Package กว่า 400 Package โดยมี Package ยอดนิยมที่มีการ Download มากกว่า 100 ล้านครั้งต่อเดือน เช่น keyv, flat-cache, file-entry-cache, cacheable-request และ cacheable โดย Package ที่ได้รับผลกระทบจะมีการฝังมัลแวร์ Mini Shai-Hulud ซึ่งจะมีการขโมยข้อมูลรหัสผ่าน หรือ Token ต่าง ๆ ที่เกียวกับการพัฒนา Software ในเครื่อง จากนั้นมัลแวร์จะแพร่กระจายตัวเองด้วยการเอา Token ในเครื่อง Developer ไป Publish Package version ที่มีการฝังมัลแวร์เอาไว้
Payload Execute
เมื่อทำการติดตั้ง Package ผ่าน npm มัลแวร์จะใช้กลไกที่ชื่อว่า preinstall hook เพื่อเรียกใช้งานคำสั่ง node setup.mjs ซึ่งภายในไฟล์จะทำการ download โปรแกรม Bun (JavaScript Runtime) เพื่อ Execute ไฟล์ Math_Symbol.js โดยคาดว่า Hacker ทำไปเพื่อหลบเลี่ยงการ monitor Node processes

Credential theft
ไฟล์ Math_Symbol.js จะทำการขโมย Credentials ต่าง ๆ ในเครื่องเช่น:
- npm tokens: อ่านตัวแปร authToken ในไฟล์ .npmrc
- GitHub tokens: ในไฟล์ ~/.config/gh/hosts.yml, environment variables
- AWS credentials: ในไฟล์ ~/.aws/credentials และ ~/.aws/config , AWS environment variables, EC2/ECS Metadata
- Kubernetes secrets: ในไฟล์ /var/run/secrets/kubernetes.io/serviceaccount/ และ ~/.kube/config
- HashiCorp Vault tokens: ในไฟล์ ~/.vault-token หรือ VAULT_TOKEN environment
- Stripe and Slack tokens
- File อื่น ๆ: เช่น .env, Private key, SSH keys, Terraform state files, Docker registry credential, KeePass databases, VPN configs
จากนั้นมัลแวร์จะส่ง Credentials ที่ได้ไปยัง Server ของ Hacker เช่น npm-cache[.]com, pypi-get[.]com และ js-mirror[.]com

Persistance
ตัว Script ใช้การแก้ไข Config ไฟล์ของ Claude Code และ VScode เพื่อทำการแฝงตัวอยู่ในเครื่อง

Worm behavior
ถ้ามัลแวร์ได้ npm Token ที่มีสิทธิ์มากพอ มันจะทำการแพร่กระจายตัวเองผ่านการ Publish Package ที่ฝังมัลแวร์ไปยัง npm Account ของ Developer ที่ตกเป็นเหยื่อ วิธีการนี้ทำให้มี Package เป็นจำนวนมากที่ติดมัลแวร์ตัวนี้

Recommendations
- Review Source Code, Lockfiles ว่ามีการตั้ง Package ที่เป็นอันตรายหรือไม่
- Format เครื่องที่ติดตั้ง Package อันตราย
- ทำการเปลี่ยนรหัสผ่าน Token ที่อยู่ในเครื่องทั้งหมดเช่น Cloud Credentials, Github Token, SSH key
Indicators of Compromise (IOCs)
Network-based IOCs

Host-based IOCs

Affected Packages

สามารถดูรายชื่อ Package อื่นได้ที่:
https://github.com/wiz-sec-public/wiz-research-iocs/blob/main/reports/keyv-packages.csv
อ้างอิง

You must be logged in to post a comment.