# ການເພີ່ມຂຶ້ນຂອງ Dependabot ໄດ້ເຜີຍແຜ່ worm. 22 packages.

Published: 2026-09-17

ບັອດເປີດ pull request. ມະນຸດລວມມັນພາຍຫຼັງ 24 ນາທີ. 95 ນາທີຫຼັງຈາກນັ້ນ, worm ໄດ້ເຜີຍແຜ່ 110 ລຸ້ນທີ່ເປັນອັນຕະລາຍຂອງ 22 npm packages ຂອງລາວ, ພາຍໃຕ້ຊື່ຂອງລາວ, ດ້ວຍ token ທີ່ມັນພົບໃນ CI ຂອງລາວ.

Canonical: https://thedailydiff.dev/lo/video/2026-09-17-dependabot-tanstack/

## ສິ່ງທີ່ວິດີໂອນີ້ກວມເອົາ

- ບັອດ, ມະນຸດ, worm
- ມັນເກີດຂຶ້ນໄດ້ແນວໃດ, ເປັນຫຍັງ npm ຈຶ່ງອະນຸຍາດ, ໃຜໄດ້ຮັບການຕໍານິ
- ລຳດັບເວລາ: ແຄສທີ່ຖືກວາງຢາພິດ
- 21:48 — ການເພີ່ມຂຶ້ນຂອງ Dependabot
- ເປັນຫຍັງມັນຈຶ່ງເຮັດວຽກ

## ບົດ

- 0:00 ບັອດ, ມະນຸດ, worm
- 0:20 ມັນເກີດຂຶ້ນໄດ້ແນວໃດ, ເປັນຫຍັງ npm ຈຶ່ງອະນຸຍາດ, ໃຜໄດ້ຮັບການຕໍານິ
- 0:30 ລຳດັບເວລາ: ແຄສທີ່ຖືກວາງຢາພິດ
- 1:15 21:48 — ການເພີ່ມຂຶ້ນຂອງ Dependabot
- 1:50 ເປັນຫຍັງມັນຈຶ່ງເຮັດວຽກ
- 2:20 git blame
- 2:45 ຂອບເຂດການລະເບີດ
- 3:00 ຄຳຕັດສິນ

## ບົດບັນທຶກທີ່ແປແລ້ວ

ແປຈາກຄຳບັນຍາຍຕົ້ນສະບັບພາສາອັງກິດ. ສຽງ ແລະ ຄຳບັນຍາຍທີ່ມີໃຫ້ແມ່ນຄວບຄຸມໂດຍ YouTube.

### ບັອດ, ມະນຸດ, worm

0:00 ບັອດເປີດ pull request; ມະນຸດລວມມັນພາຍຫຼັງຊາວສີ່ນາທີ. ເກົ້າສິບຫ້ານາທີຕໍ່ມາ, worm ໄດ້ເຜີຍແຜ່ ໜຶ່ງຮ້ອຍສິບລຸ້ນຂອງລາວ packages, ໃນນາມຂອງລາວ. postmortem ຂອງ TanStack ມີ timestamp ຕົ້ນທາງ, ຂອງຜູ້ຮັກສາປາຍທາງ ມີສ່ວນທີ່ເຫຼືອ, ແລະ Hacker News ໃຫ້ມັນໜຶ່ງພັນໜຶ່ງຮ້ອຍຄະແນນ ແລະ ຊື່: Mini Shai-Hulud. ມັນເກີດຂຶ້ນໄດ້ແນວໃດ, ເປັນຫຍັງ npm ຈຶ່ງອະນຸຍາດ, ໃຜໄດ້ຮັບການຕໍານິ.

### ມັນເກີດຂຶ້ນໄດ້ແນວໃດ, ເປັນຫຍັງ npm ຈຶ່ງອະນຸຍາດ, ໃຜໄດ້ຮັບການຕໍານິ

0:21 ນີ້ແມ່ນ The Daily Diff, postmortem. ວັນທີ 11 ພຶດສະພາ, ຕອນເຊົ້າ. fork ທີ່ປ່ຽນຊື່ເປີດ pull request ຕໍ່ກັບ TanStack Router. ມັນປິດພາຍໃນໜຶ່ງຊົ່ວໂມງ, ແຕ່ benchmark workflow ໄດ້ແລ່ນລະຫັດຂອງມັນແລ້ວ ແລະ

### ລຳດັບເວລາ: ແຄສທີ່ຖືກວາງຢາພິດ

0:33 ບັນທຶກແຄສທີ່ຖືກວາງຢາພິດພາຍໃຕ້ຄີທີ່ release workflow ຈະໃຊ້. ສິບເກົ້າ-ຊາວ. ການລວມທີ່ຖືກຕ້ອງແລ່ນ release. ແຄສກັບຄືນມາ, binary ອ່ານໜ່ວຍຄວາມຈຳຂອງ runner, ຍົກ publish token ຂຶ້ນ, ແລະສົ່ງແປດສິບສີ່ລຸ້ນໃນສີ່ສິບສອງ packages, ດ້ວຍ provenance ທີ່ຖືກຕ້ອງ. ການທົດສອບລົ້ມເຫຼວ. ມັນເຜີຍແຜ່ຢູ່ດີ. ສິບເກົ້າສີ່ສິບຫົກ, ນັກຄົ້ນຄວ້າ StepSecurity ຍື່ນບັນຫາ; ຮອດເກົ້າ UTC ທຸກສິ່ງທຸກຢ່າງຖືກ deprecate ແລະ advisory ອອກມາແລ້ວ.

0:55 Deprecated ບໍ່ໄດ້ຫາຍໄປ: npm ປະຕິເສດທີ່ຈະ unpublish ສິ່ງໃດກໍຕາມທີ່ມີ dependents, ດັ່ງນັ້ນມັນຈຶ່ງຍັງສາມາດຕິດຕັ້ງໄດ້ເປັນເວລາຫຼາຍຊົ່ວໂມງ. ຊາວເອັດສີ່ສິບແປດ. ໃນໂຄງການຂໍ້ມູນການບິນເກົ້າດາວ, Dependabot ເປີດ pull request ປົກກະຕິຂອງມັນ: ເພີ່ມກຸ່ມ dev-dependencies, ສິບສາມການອັບເດດ. ສອງອັນແມ່ນ TanStack ລຸ້ນທີ່ຖືກວາງຢາພິດ. ຊາວສອງ-ສິບສອງ: ລວມ. publish workflow ແລ່ນ npm C-I ດ້ວຍ token ຢູ່ໃນ

### 21:48 — ການເພີ່ມຂຶ້ນຂອງ Dependabot

1:15 ຂອບເຂດ; prepare script ອ່ານມັນ, ແລະໃນຊາວສອງ-ສິບເຈັດ worm ເຜີຍແຜ່ ໃນນາມຂອງລາວ. ຫ້າລຸ້ນຂອງທຸກ package ທີ່ token ໄປເຖິງ, ແມ້ກະທັ້ງໂຄງການຂ້າງຄຽງເກົ່າ: token ຄລາດສິກໜຶ່ງອັນສຳລັບທຸກສິ່ງ. ໜຶ່ງຮ້ອຍສິບລຸ້ນໃນເກົ້າສິບຫ້ານາທີ. ລາວຮູ້ໂດຍອີເມວ, ຫຼັງທ່ຽງຄືນ. ເປັນຫຍັງມັນຈຶ່ງເຮັດວຽກ. ໜຶ່ງ: npm install ແລ່ນ lifecycle scripts ຂອງຄົນແປກໜ້າໂດຍຄ່າເລີ່ມຕົ້ນ, ແລະ prepare script ຂອງ git dependency ກໍນັບ.

1:39 ສອງ: worm ຕ້ອງການສິ່ງໜຶ່ງ: token ທີ່ເຜີຍແຜ່ໂດຍບໍ່ມີປັດໄຈທີສອງ. ຈາກນັ້ນມັນຖາມ registry ວ່າຜູ້ຮັກສານັ້ນເປັນເຈົ້າຂອງຫຍັງອີກ, ແລະເຜີຍແຜ່ຄືນທັງໝົດດ້ວຍຕົວມັນເອງຢູ່ພາຍໃນ. ສາມ: ບໍ່ມີສິ່ງໃດໃນຕ່ອງໂສ້ແມ່ນຄົນ.

### ເປັນຫຍັງມັນຈຶ່ງເຮັດວຽກ

1:51 ບັອດສະເໜີ, pipeline ຕິດຕັ້ງ, ແລະ worm ຕອບແທນ: ສາຂາ dead-drop ຂອງມັນ ຖືກຕັ້ງຊື່ວ່າ dependabot slash github-actions slash fremen. git blame. ໂມເດວການຕິດຕັ້ງຂອງ npm, ຫ້າສິບຫ້າເປີເຊັນ: scripts ແລ່ນໃນການຕິດຕັ້ງ, deprecated ຍັງສາມາດຕິດຕັ້ງໄດ້, token ທີ່ຂ້າມສອງປັດໄຈໄດ້ມີຢູ່. CI ຂອງ TanStack, ຊາວຫ້າ: unaudited pull request target workflow ແລ່ນ ລະຫັດ fork ດ້ວຍສິດທິຂຽນເຂົ້າເຖິງແຄສ. ນິໄສການເພີ່ມຂຶ້ນ, ສິບຫ້າ: ສິບສາມການອັບເດດລວມເຂົ້າກັນໃນຊາວສີ່ນາທີ, token ຢູ່ໃນຫ້ອງ.

2:17 Dependabot, ຫ້າ: ຖືກໄວ້ວາງໃຈຫຼາຍຈົນ worm ໃສ່ເຄື່ອງແບບຂອງມັນ.

### git blame

2:20 ຂອບເຂດການລະເບີດ: ສີ່ສິບສອງ TanStack packages. ຊາວສອງ downstream, ຈາກໂຄງການທີ່ມີເກົ້າດາວ. ຫຼາຍກວ່າໜຶ່ງຮ້ອຍຫົກສິບລະບົບນິເວດທົ່ວໄປເມື່ອ worm ໄປເຖິງ Mistral. ທຸກລຸ້ນຕົ້ນທາງມີລາຍເຊັນທີ່ຖືກຕ້ອງ: ສ້າງໂດຍ official pipeline. ຖືກຕ້ອງ. ຄຳຕັດສິນ, postmortem: SHIP IT. ຜູ້ຮັກສາທັງສອງເຜີຍແຜ່ timestamped postmortems ພາຍໃນໜຶ່ງມື້; ພາຍໃນສາມ, downstream pipeline ຕິດຕັ້ງດ້ວຍ ignore-scripts, ແຍກ build ຈາກ publish, ແລະຖິ້ມ token ທີ່ຢູ່ໄດ້ດົນ.

### ຂອບເຂດການລະເບີດ

2:47 ຄ່າເລີ່ມຕົ້ນຂອງ npm ຍັງບໍ່ທັນປ່ຽນແປງ. ວັນຈັນ: ignore-scripts ໃນການຕິດຕັ້ງ, ແລະ publish token ອອກຈາກວຽກທີ່ ແລ່ນມັນ. ສົ່ງເຫດການທີ່ທ່ານຍັງບໍ່ໄດ້ຮັບອະນຸຍາດໃຫ້ເວົ້າເຖິງມາໃຫ້ຂ້ອຍ, ໃນຄໍາເຫັນ, ຫຼືທີ່ thedailydiff.dev. ແລະນັ້ນຄື diff ສໍາລັບມື້ນີ້.

### ຄຳຕັດສິນ

3:00 ຂ້ອຍຄື Niko ຈາກ Axrisi. ລວມຢ່າງມີຄວາມຮັບຜິດຊອບ.

## ແຫຼ່ງຂໍ້ມູນ

- [TanStack postmortem (Tanner Linsley, May 11, refined May 15)](https://tanstack.com/blog/npm-supply-chain-compromise-postmortem) — tanstack.com
- [TanStack "Hardening TanStack After the npm Compromise" (May 12)](https://tanstack.com/blog/incident-followup) — tanstack.com
- [TanStack/router#7383 — the StepSecurity detection issue](https://github.com/TanStack/router/issues/7383) — github.com
- [Downstream incident post, @squawk/\* (May 12)](https://github.com/neilcochran/squawk/discussions/251) — github.com
- [Downstream hardening post (May 14)](https://github.com/neilcochran/squawk/discussions/264) — github.com
- [The Dependabot PR #246 (opened 21:48 UTC, merged 22:12)](https://github.com/neilcochran/squawk/pull/246) — github.com
- [@tan\_stack advisory post, 21:19 UTC](https://x.com/tan_stack/status/2053948103766716630) — x.com
- [StepSecurity — worm internals, bypass\_2fa search, Dependabot-style branch names](https://www.stepsecurity.io/blog/mini-shai-hulud-is-back-a-self-spreading-supply-chain-attack-hits-the-npm-ecosystem) — www.stepsecurity.io
- [Socket](https://socket.dev/blog/tanstack-npm-packages-compromised-mini-shai-hulud-supply-chain-attack) — socket.dev
- [Aikido — "over 160 packages, including Mistral"](https://www.aikido.dev/blog/mini-shai-hulud-is-back-tanstack-compromised) — www.aikido.dev
- [Hacker News (1,097 points)](https://news.ycombinator.com/item?id=48100706) — news.ycombinator.com
