Open Source · · 1 day

Tally UI npm packages carried Shai-Hulud

JFrog listed 10 Tally UI npm packages in the May 2026 Shai-Hulud wave. This record scopes those artifacts to their own official distribution surface.

Part of Shai-Hulud hits npm and PyPI campaign

Tally UI was a multi-package namespace compromise in the May 2026 Shai-Hulud wave. JFrog listed ten affected @tallyui/* packages and thirty affected versions, spanning core components, database code, point-of-sale modules, and connectors for commerce platforms.

The package mix made the risk broader than one dependency. Connector and platform packages often live in projects with API keys, deployment tokens, database access, and CI secrets. Shai-Hulud used the install-time position to harvest that material and, when possible, republish more infected packages from the victim environment.

This page keeps the Tally UI namespace as its own distribution boundary. The campaign record carries the shared TeamPCP loader, infrastructure, and propagation behavior; this record preserves the exact package list, affected versions, registry paths, and May 11-12 exposure window.

For responders, the package family is the search unit. Lockfiles, caches, private mirrors, build images, and CI logs should be checked for every affected @tallyui/* release, with credential rotation prioritized for systems that had publishing or deployment authority.

Notes

  • The network and payload indicators are the campaign-level set JFrog published for this wave, not observations of this package's own bytes. They identify the wave's infrastructure and persistence, and are recorded here so each affected distribution surface carries them. Where a record also lists indicators read from an acquired sample, those are marked as such.
  • Minimal campaign-linked record created to keep Shai-Hulud package evidence scoped by vendor, organization, maintainer account, or package distribution surface.

Appendix · Affected releases

1.0.3 sha256 c0e17b63…c9883039 download unavailable
1.0.2 sha256 fbb476d1…e13fe0a7 download unavailable
1.0.1 sha256 439870c9…684eebe0 download unavailable
0.2.3 sha256 30e29202…9a6def57 download unavailable
0.2.2 sha256 6d22a0e9…0a2c6a5f download unavailable
0.2.1 sha256 2f2bebad…18a4d638 download unavailable
1.0.3 sha256 0bfd7616…287a3e4b download unavailable
1.0.2 sha256 25373737…e283d544 download unavailable
1.0.1 sha256 91f6dacd…e70436de download unavailable
0.1.3 sha256 06b47219…677d8510 download unavailable
0.1.2 sha256 96364212…e9464d73 download unavailable
0.1.1 sha256 4e2f0538…0b8f600b download unavailable
0.2.3 sha256 888385a4…522f3c20 download unavailable
0.2.2 sha256 3a65edad…c88d1740 download unavailable
0.2.1 sha256 9f3c1fce…b051f6e6 download unavailable

Indicators

  • file_sha256npm payload 29c729852fce5a53e30a1541d9fec79c915b2e13f1eda94a5978cf0aae0d88d9
  • file_sha256npm payload 2ec78d556d696e208927cc503d48e4b5eb56b31abc2870c2ed2e98d6be27fc96
  • file_sha256npm payload ab4fcadaec49c03278063dd269ea5eef82d24f2124a8e15d7b90f2fa8601266c
  • file_sha256npm payload d4a2086ea18f5e39cd867b8b06918a524eabb21d45ea98aad07357b98173458a
  • urlhttps://filev2.getsession.org/file/
  • domainseed1.getsession.org
  • domainseed2.getsession.org
  • domainseed3.getsession.org
  • domainapi.masscan.cloud
  • file~/.local/bin/gh-token-monitor.sh
  • file~/.config/systemd/user/gh-token-monitor.service
  • file~/Library/LaunchAgents/com.user.gh-token-monitor.plist
  • file~/.config/gh-token-monitor/
  • stringShai-Hulud: Here We Go Again
  • stringPUSH UR T3MPRR
  • stringFIRESCALE
  • commit_authorclaude@users.noreply.github.com

References

  1. Shai-Hulud: Here We Go Again - Worm by TeamPCP Hits NPM and PyPIresearch.jfrog.com
  2. TanStack npm Packages Compromised in Ongoing Mini Shai-Hulud Supply Chain Attack - Socketsocket.dev
  3. Mini Shai-Hulud Is Back: npm Worm Hits over 160 Packages, including Mistral and Tanstack - Aikidoaikido.dev
  4. Socket file listing for @tallyui/components 1.0.1socket.dev
  5. Socket file listing for @tallyui/components 1.0.2socket.dev
  6. Socket file listing for @tallyui/components 1.0.3socket.dev
  7. Socket file listing for @tallyui/connector-medusa 1.0.1socket.dev
  8. Socket file listing for @tallyui/connector-medusa 1.0.2socket.dev
  9. Socket file listing for @tallyui/connector-medusa 1.0.3socket.dev
  10. Socket file listing for @tallyui/connector-shopify 1.0.1socket.dev
  11. Socket file listing for @tallyui/connector-shopify 1.0.2socket.dev
  12. Socket file listing for @tallyui/connector-shopify 1.0.3socket.dev
  13. Socket file listing for @tallyui/connector-vendure 1.0.1socket.dev
  14. Socket file listing for @tallyui/connector-vendure 1.0.2socket.dev
  15. Socket file listing for @tallyui/connector-vendure 1.0.3socket.dev
  16. Socket file listing for @tallyui/connector-woocommerce 1.0.1socket.dev
  17. Socket file listing for @tallyui/connector-woocommerce 1.0.2socket.dev
  18. Socket file listing for @tallyui/connector-woocommerce 1.0.3socket.dev
  19. Socket file listing for @tallyui/core 0.2.1socket.dev
  20. Socket file listing for @tallyui/core 0.2.2socket.dev
  21. Socket file listing for @tallyui/core 0.2.3socket.dev
  22. Socket file listing for @tallyui/database 1.0.1socket.dev
  23. Socket file listing for @tallyui/database 1.0.2socket.dev
  24. Socket file listing for @tallyui/database 1.0.3socket.dev
  25. Socket file listing for @tallyui/pos 0.1.1socket.dev
  26. Socket file listing for @tallyui/pos 0.1.2socket.dev
  27. Socket file listing for @tallyui/pos 0.1.3socket.dev
  28. Socket file listing for @tallyui/storage-sqlite 0.2.1socket.dev
  29. Socket file listing for @tallyui/storage-sqlite 0.2.2socket.dev
  30. Socket file listing for @tallyui/storage-sqlite 0.2.3socket.dev
  31. Socket file listing for @tallyui/theme 0.2.1socket.dev
  32. Socket file listing for @tallyui/theme 0.2.2socket.dev
  33. Socket file listing for @tallyui/theme 0.2.3socket.dev

Source record: oss/attacks/shai-hulud-tallyui-npm/meta.yaml