# ಡಿಪೆಂಡಬಾಟ್ ಬಂಪ್ ಹುಳು ಪ್ರಕಟಿಸಿತು. 22 ಪ್ಯಾಕೇಜುಗಳು.

Published: 2026-09-17

ಒಂದು ಬೋಟ್ ಪುಲ್ ವಿನಂತಿಯನ್ನು ತೆರೆಯುತ್ತದೆ. ಒಬ್ಬ ಮನುಷ್ಯ 24 ನಿಮಿಷಗಳ ನಂತರ ಅದನ್ನು ವಿಲೀನಗೊಳಿಸುತ್ತಾನೆ. ಅದರ 95 ನಿಮಿಷಗಳ ನಂತರ, ಒಂದು ಹುಳು ತನ್ನ CI ನಲ್ಲಿ ಕಂಡುಕೊಂಡ ಟೋಕನ್‌ನೊಂದಿಗೆ, ಅವನ ಹೆಸರಿನಲ್ಲಿ, ತನ್ನ 22 ಎನ್‌ಪಿಎಂ ಪ್ಯಾಕೇಜುಗಳ 110 ದುರುದ್ದೇಶಪೂರಿತ ಆವೃತ್ತಿಗಳನ್ನು ಪ್ರಕಟಿಸಿದೆ.

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

## ಈ ವೀಡಿಯೊ ಏನನ್ನು ಒಳಗೊಂಡಿದೆ

- ಒಂದು ಬೋಟ್, ಒಬ್ಬ ಮನುಷ್ಯ, ಒಂದು ಹುಳು
- ಅದು ಹೇಗೆ ಸಂಭವಿಸಿತು, ಎನ್‌ಪಿಎಂ ಏಕೆ ಅನುಮತಿಸಿತು, ಯಾರಿಗೆ ದೂರು
- ಕಾಲಾವಧಿ: ವಿಷಪೂರಿತ ಸಂಗ್ರಹ
- 21:48 — ಡಿಪೆಂಡಬಾಟ್ ಬಂಪ್
- ಅದು ಏಕೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ

## ಅಧ್ಯಾಯಗಳು

- 0:00 ಒಂದು ಬೋಟ್, ಒಬ್ಬ ಮನುಷ್ಯ, ಒಂದು ಹುಳು
- 0:20 ಅದು ಹೇಗೆ ಸಂಭವಿಸಿತು, ಎನ್‌ಪಿಎಂ ಏಕೆ ಅನುಮತಿಸಿತು, ಯಾರಿಗೆ ದೂರು
- 0:30 ಕಾಲಾವಧಿ: ವಿಷಪೂರಿತ ಸಂಗ್ರಹ
- 1:15 21:48 — ಡಿಪೆಂಡಬಾಟ್ ಬಂಪ್
- 1:50 ಅದು ಏಕೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ
- 2:20 git blame
- 2:45 ಬ್ಲಾಸ್ಟ್ ರೇಡಿಯಸ್
- 3:00 ತೀರ್ಪು

## ಅನುವಾದಿತ ಪ್ರತಿಲೇಖನ

ಮೂಲ ಇಂಗ್ಲಿಷ್ ನಿರೂಪಣೆಯಿಂದ ಅನುವಾದಿಸಲಾಗಿದೆ. ಲಭ್ಯವಿರುವ ಆಡಿಯೋ ಮತ್ತು ಶೀರ್ಷಿಕೆಗಳನ್ನು YouTube ನಿಯಂತ್ರಿಸುತ್ತದೆ.

### ಒಂದು ಬೋಟ್, ಒಬ್ಬ ಮನುಷ್ಯ, ಒಂದು ಹುಳು

0:00 ಒಂದು ಬೋಟ್ ಪುಲ್ ವಿನಂತಿಯನ್ನು ತೆರೆಯುತ್ತದೆ; ಒಬ್ಬ ಮನುಷ್ಯ ಇಪ್ಪತ್ತನಾಲ್ಕು ನಿಮಿಷಗಳ ನಂತರ ಅದನ್ನು ವಿಲೀನಗೊಳಿಸುತ್ತಾನೆ. ತೊಂಬತ್ತೈದು ನಿಮಿಷಗಳ ನಂತರ, ಒಂದು ಹುಳು ಪ್ರಕಟಿಸಿದೆ ನೂರ ಹತ್ತು ಆವೃತ್ತಿಗಳು ಪ್ಯಾಕೇಜುಗಳು, ಅವನಂತೆ. TanStack ನ ಪೋಸ್ಟ್‌ಮಾರ್ಟಮ್ ಅಪ್‌ಸ್ಟ್ರೀಮ್ ಟೈಮ್‌ಸ್ಟ್ಯಾಂಪ್‌ಗಳನ್ನು ಹೊಂದಿದೆ, ಡೌನ್‌ಸ್ಟ್ರೀಮ್ ನಿರ್ವಾಹಕರ ಇನ್ನುಳಿದದ್ದನ್ನು ಹೊಂದಿದೆ, ಮತ್ತು ಹ್ಯಾಕರ್ ನ್ಯೂಸ್ ಅದಕ್ಕೆ ಹನ್ನೊಂದು ನೂರು ಅಂಕಗಳನ್ನು ಮತ್ತು ಒಂದು ಹೆಸರನ್ನು ನೀಡುತ್ತದೆ: ಮಿನಿ Shai-Hulud. ಅದು ಹೇಗೆ ಸಂಭವಿಸುತ್ತದೆ, npm ಏಕೆ ಅನುಮತಿಸುತ್ತದೆ, ಯಾರಿಗೆ ದೂರು.

### ಅದು ಹೇಗೆ ಸಂಭವಿಸಿತು, ಎನ್‌ಪಿಎಂ ಏಕೆ ಅನುಮತಿಸಿತು, ಯಾರಿಗೆ ದೂರು

0:21 ಇದು The Daily Diff, ಮರಣೋತ್ತರ. ಮೇ 11, ಬೆಳಿಗ್ಗೆ. ಮರುನಾಮಕರಣಗೊಂಡ ಫೋರ್ಕ್ TanStack ರೂಟರ್ ವಿರುದ್ಧ ಪುಲ್ ವಿನಂತಿಯನ್ನು ತೆರೆಯುತ್ತದೆ. ಇದು ಒಂದು ಗಂಟೆಯೊಳಗೆ ಮುಚ್ಚುತ್ತದೆ, ಆದರೆ ಒಂದು ಬೆಂಚ್‌ಮಾರ್ಕ್ ವರ್ಕ್‌ಫ್ಲೋ ಈಗಾಗಲೇ ತನ್ನ ಕೋಡ್ ಅನ್ನು ಚಲಾಯಿಸಿದೆ ಮತ್ತು

### ಕಾಲಾವಧಿ: ವಿಷಪೂರಿತ ಸಂಗ್ರಹ

0:33 ಬಿಡುಗಡೆ ವರ್ಕ್‌ಫ್ಲೋ ಬಳಸುವ ಕೀ ಅಡಿಯಲ್ಲಿ ವಿಷಪೂರಿತ ಸಂಗ್ರಹವನ್ನು ಉಳಿಸಿದೆ. ಹತ್ತೊಂಬತ್ತು ಇಪ್ಪತ್ತು. ಒಂದು ಕಾನೂನುಬದ್ಧ ವಿಲೀನವು ಬಿಡುಗಡೆಯನ್ನು ಚಲಾಯಿಸುತ್ತದೆ. ಸಂಗ್ರಹವು ಹಿಂತಿರುಗುತ್ತದೆ, ಒಂದು ಬೈನರಿ ರನ್ನರ್‌ನ ಮೆಮೊರಿಯನ್ನು ಓದುತ್ತದೆ, ಪ್ರಕಟಣೆ ಟೋಕನ್ ಅನ್ನು ಎತ್ತಿ, ಮತ್ತು ನಲವತ್ತೆರಡು ಪ್ಯಾಕೇಜುಗಳಲ್ಲಿ ಎಂಭತ್ತನಾಲ್ಕು ಆವೃತ್ತಿಗಳನ್ನು ಕಳುಹಿಸುತ್ತದೆ, ಮಾನ್ಯವಾದ ಮೂಲದೊಂದಿಗೆ. ಪರೀಕ್ಷೆಗಳು ವಿಫಲಗೊಳ್ಳುತ್ತವೆ. ಅದು ಹೇಗಾದರೂ ಪ್ರಕಟಿಸುತ್ತದೆ. ಹತ್ತೊಂಬತ್ತು ನಲವತ್ತಾರು, ಒಬ್ಬ StepSecurity ಸಂಶೋಧಕ ಸಮಸ್ಯೆಯನ್ನು ಫೈಲ್ ಮಾಡುತ್ತಾನೆ; ಒಂಬತ್ತು UTC ವೇಳೆಗೆ ಎಲ್ಲವೂ ಅಪ್ರಸ್ತುತವಾಗಿದೆ ಮತ್ತು ಸಲಹೆ ಹೊರಬರುತ್ತದೆ.

0:55 ಅಪ್ರಸ್ತುತವಾಗಿರುವುದು ಕಣ್ಮರೆಯಾಗಿಲ್ಲ: npm ಯಾವುದೇ ಅವಲಂಬಿತರೊಂದಿಗೆ ಏನನ್ನೂ ಅಪ್ರಕಟಿಸಲು ನಿರಾಕರಿಸುತ್ತದೆ, ಆದ್ದರಿಂದ ಅದು ಗಂಟೆಗಳವರೆಗೆ ಸ್ಥಾಪಿತವಾಗಿರುತ್ತದೆ. ಇಪ್ಪತ್ತೊಂದು ನಲವತ್ತೆಂಟು. ಒಂಬತ್ತು-ಸ್ಟಾರ್ ವಾಯುಯಾನ-ಡೇಟಾ ಯೋಜನೆಯಲ್ಲಿ, ಡಿಪೆಂಡಬಾಟ್ ತನ್ನ ನಿಯಮಿತ ಪುಲ್ ವಿನಂತಿಯನ್ನು ತೆರೆಯುತ್ತದೆ: dev-dependencies ಗುಂಪನ್ನು ಹೆಚ್ಚಿಸಿ, ಹದಿಮೂರು ನವೀಕರಣಗಳು. ಎರಡು ವಿಷಪೂರಿತ TanStack ಆವೃತ್ತಿಗಳಾಗಿವೆ. ಇಪ್ಪತ್ತೆರಡು ಹನ್ನೆರಡು: ವಿಲೀನಗೊಂಡಿದೆ. ಪ್ರಕಟಣೆ ವರ್ಕ್‌ಫ್ಲೋ ವ್ಯಾಪ್ತಿಯಲ್ಲಿರುವ ಟೋಕನ್‌ನೊಂದಿಗೆ npm C-I ಅನ್ನು ಚಲಾಯಿಸುತ್ತದೆ;

### 21:48 — ಡಿಪೆಂಡಬಾಟ್ ಬಂಪ್

1:15 ಒಂದು ಸಿದ್ಧಪಡಿಸುವ ಸ್ಕ್ರಿಪ್ಟ್ ಅದನ್ನು ಓದುತ್ತದೆ, ಮತ್ತು ಇಪ್ಪತ್ತೆರಡು ಹದಿನೇಳಕ್ಕೆ ಹುಳು ಪ್ರಕಟಿಸುತ್ತದೆ ಅವನಂತೆ. ಟೋಕನ್ ತಲುಪುವ ಪ್ರತಿ ಪ್ಯಾಕೇಜಿನ ಐದು ಆವೃತ್ತಿಗಳು, ಹಳೆಯ ಅಡ್ಡ ಯೋಜನೆಯೂ ಸಹ: ಎಲ್ಲದಕ್ಕೂ ಒಂದು ಕ್ಲಾಸಿಕ್ ಟೋಕನ್. ತೊಂಬತ್ತೈದು ನಿಮಿಷಗಳಲ್ಲಿ ನೂರ ಹತ್ತು ಆವೃತ್ತಿಗಳು. ಅವನಿಗೆ ಮಧ್ಯರಾತ್ರಿಯ ನಂತರ ಇಮೇಲ್ ಮೂಲಕ ತಿಳಿಯುತ್ತದೆ. ಅದು ಏಕೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ. ಒಂದು: npm install ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಅಪರಿಚಿತರ ಲೈಫ್‌ಸೈಕಲ್ ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳನ್ನು ಚಲಾಯಿಸುತ್ತದೆ, ಮತ್ತು git ಡಿಪೆಂಡೆನ್ಸಿಯ ಸಿದ್ಧಪಡಿಸುವ ಸ್ಕ್ರಿಪ್ಟ್ ಎಣಿಕೆಯಾಗುತ್ತದೆ.

1:39 ಎರಡು: ಹುಳು ಒಂದೇ ಒಂದು ವಿಷಯವನ್ನು ಬಯಸುತ್ತದೆ: ಎರಡನೇ ಅಂಶವಿಲ್ಲದೆ ಪ್ರಕಟಿಸುವ ಟೋಕನ್. ನಂತರ ಅದು ರಿಜಿಸ್ಟ್ರಿಯನ್ನು ಕೇಳುತ್ತದೆ ಆ ನಿರ್ವಾಹಕರು ಬೇರೆ ಏನು ಹೊಂದಿದ್ದಾರೆಂದು, ಮತ್ತು ಅದರೊಳಗೆ ತನ್ನನ್ನು ತಾನೇ ಇರಿಸಿಕೊಂಡು ಎಲ್ಲವನ್ನೂ ಮರುಪ್ರಕಟಿಸುತ್ತದೆ. ಮೂರು: ಸರಪಳಿಯಲ್ಲಿ ಯಾವುದೂ ವ್ಯಕ್ತಿಯಲ್ಲ.

### ಅದು ಏಕೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ

1:51 ಒಂದು ಬೋಟ್ ಪ್ರಸ್ತಾಪಿಸುತ್ತದೆ, ಒಂದು ಪೈಪ್‌ಲೈನ್ ಸ್ಥಾಪಿಸುತ್ತದೆ, ಮತ್ತು ಹುಳು ಉಪಕಾರವನ್ನು ಮರಳಿ ನೀಡುತ್ತದೆ: ಅದರ ಡೆಡ್-ಡ್ರಾಪ್ ಶಾಖೆಗಳಿಗೆ dependabot ಸ್ಲ್ಯಾಷ್ github-actions ಸ್ಲ್ಯಾಷ್ fremen ಎಂದು ಹೆಸರಿಸಲಾಗಿದೆ. git blame. npm ನ install ಮಾದರಿ, ಐವತ್ತೈದು ಪ್ರತಿಶತ: install ಮೇಲೆ ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳು ರನ್ ಆಗುತ್ತವೆ, ಅಪ್ರಸ್ತುತವಾಗಿರುವುದು ಸ್ಥಾಪಿತವಾಗಿರುತ್ತದೆ, ಎರಡು-ಅಂಶ-ಬೈಪಾಸ್ ಟೋಕನ್‌ಗಳು ಅಸ್ತಿತ್ವದಲ್ಲಿವೆ. TanStack ನ CI, ಇಪ್ಪತ್ತೈದು: ಸಂಗ್ರಹಕ್ಕೆ ಬರೆಯುವ ಪ್ರವೇಶದೊಂದಿಗೆ ಫೋರ್ಕ್ ಕೋಡ್ ಅನ್ನು ಚಲಾಯಿಸುವ ಆಡಿಟ್ ಮಾಡದ ಪುಲ್ ವಿನಂತಿ ಗುರಿ ವರ್ಕ್‌ಫ್ಲೋ. ಸಂಗ್ರಹಕ್ಕೆ ಬರೆಯುವ ಪ್ರವೇಶದೊಂದಿಗೆ ಫೋರ್ಕ್ ಕೋಡ್ ಅನ್ನು ಚಲಾಯಿಸುವ ಆಡಿಟ್ ಮಾಡದ ಪುಲ್ ವಿನಂತಿ ಗುರಿ ವರ್ಕ್‌ಫ್ಲೋ. ಬಂಪ್ ಅಭ್ಯಾಸ, ಹದಿನೈದು: ಇಪ್ಪತ್ತನಾಲ್ಕು ನಿಮಿಷಗಳಲ್ಲಿ ವಿಲೀನಗೊಂಡ ಹದಿಮೂರು ನವೀಕರಣಗಳು, ಕೋಣೆಯಲ್ಲಿ ಟೋಕನ್.

2:17 ಡಿಪೆಂಡಬಾಟ್, ಐದು: ಹುಳು ತನ್ನ ಸಮವಸ್ತ್ರವನ್ನು ಧರಿಸುವಷ್ಟು ವಿಶ್ವಾಸಾರ್ಹವಾಗಿದೆ.

### git blame

2:20 ಬ್ಲಾಸ್ಟ್ ರೇಡಿಯಸ್: ನಲವತ್ತೆರಡು TanStack ಪ್ಯಾಕೇಜುಗಳು. ಒಂಬತ್ತು ನಕ್ಷತ್ರಗಳ ಯೋಜನೆಯಿಂದ ಇಪ್ಪತ್ತೆರಡು ಡೌನ್‌ಸ್ಟ್ರೀಮ್. ಹುಳು ಮಿಸ್ಟ್ರಲ್ ತಲುಪಿದ ನಂತರ ನೂರ ಅರವತ್ತಕ್ಕೂ ಹೆಚ್ಚು ಪರಿಸರ-ವ್ಯಾಪಕ. ಪ್ರತಿ ಅಪ್‌ಸ್ಟ್ರೀಮ್ ಆವೃತ್ತಿಯು ಮಾನ್ಯವಾದ ಸಹಿಯನ್ನು ಹೊಂದಿತ್ತು: ಅಧಿಕೃತ ಪೈಪ್‌ಲೈನ್‌ನಿಂದ ನಿರ್ಮಿಸಲ್ಪಟ್ಟಿದೆ. ನಿಜ. ತೀರ್ಪು, ಮರಣೋತ್ತರ: SHIP IT. ಒಂದು ದಿನದೊಳಗೆ ಎರಡೂ ನಿರ್ವಾಹಕರು ಟೈಮ್‌ಸ್ಟ್ಯಾಂಪ್ ಮಾಡಿದ ಪೋಸ್ಟ್‌ಮಾರ್ಟಮ್‌ಗಳನ್ನು ಪೋಸ್ಟ್ ಮಾಡುತ್ತಾರೆ; ಮೂರು ದಿನದೊಳಗೆ, ಡೌನ್‌ಸ್ಟ್ರೀಮ್ ಪೈಪ್‌ಲೈನ್ ignore-scripts ನೊಂದಿಗೆ ಸ್ಥಾಪಿಸುತ್ತದೆ, ಬಿಲ್ಡ್ ಅನ್ನು ಪ್ರಕಟಣೆಯಿಂದ ವಿಭಜಿಸುತ್ತದೆ, ಮತ್ತು ದೀರ್ಘಾವಧಿಯ ಟೋಕನ್ ಅನ್ನು ಕೈಬಿಡುತ್ತದೆ.

### ಬ್ಲಾಸ್ಟ್ ರೇಡಿಯಸ್

2:47 npm ನ ಪೂರ್ವನಿಯೋಜಿತಗಳು ಚಲಿಸಿಲ್ಲ. ಸೋಮವಾರ: install ಮೇಲೆ ignore-scripts, ಮತ್ತು ಅದನ್ನು ಚಲಾಯಿಸುವ ಕೆಲಸದಿಂದ ಪ್ರಕಟಣೆ ಟೋಕನ್ ಹೊರಗೆ. ನೀವು ಇನ್ನೂ ಮಾತನಾಡಲು ಅನುಮತಿಸದ ಘಟನೆಯನ್ನು ನನಗೆ ಕಳುಹಿಸಿ, ಕಾಮೆಂಟ್‌ಗಳಲ್ಲಿ, ಅಥವಾ thedailydiff.dev ನಲ್ಲಿ. ಮತ್ತು ಇಂದಿಗೆ ಇದು ವ್ಯತ್ಯಾಸ.

### ತೀರ್ಪು

3:00 ನಾನು 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
