Detection rules › Sigma

TanStack Supply-Chain Attack File Creation Indicators - Linux

Status
experimental
Severity
medium
Log source
category file_event, product linux
Author
Leonardo Gasparini
Source
github.com/SigmaHQ/sigma

Detects file creation indicators associated with the Mini Shai-Hulud supply-chain campaign targeting TanStack npm packages and others such as mistralai and uipath reported on early May 2026.

MITRE ATT&CK coverage

Telemetry coverage

PlatformRecord / event type
LinuxEvent ID 11: File created

Rule body

title: TanStack Supply-Chain Attack File Creation Indicators - Linux
id: 2b5e4d3f-7c9a-4fab-a8d1-3e6f5a7b8c9d
status: experimental
description: Detects file creation indicators associated with the Mini Shai-Hulud supply-chain campaign targeting TanStack npm packages and others such as mistralai and uipath reported on early May 2026.
references:
    - https://www.netskope.com/blog/shai-hulud-style-npm-worm-hits-tanstack
    - https://socket.dev/blog/tanstack-npm-packages-compromised-mini-shai-hulud-supply-chain-attack
    - https://socket.dev/supply-chain-attacks/mini-shai-hulud
    - https://safedep.io/mass-npm-supply-chain-attack-tanstack-mistral/
author: Leonardo Gasparini
date: 2026-05-12
tags:
    - attack.initial-access
    - attack.t1195.002
    - attack.execution
    - attack.t1059.007
    - attack.persistence
    - attack.privilege-escalation
    - attack.t1547.004
    - detection.emerging-threats
logsource:
    category: file_event
    product: linux
detection:
    selection_malware_files:
        TargetFilename|endswith:
            - '/router_init.js'
            - '/tanstack_runner.js'
    selection_persistence_claude_vscode:
        TargetFilename|endswith:
            - '/.claude/router_runtime.js'
            - '/.vscode/router_runtime.js'
    selection_pypi_payload:
        TargetFilename: '/tmp/transformers.pyz'
    condition: 1 of selection_*
falsepositives:
    - Unknown
level: medium

Stages and Predicates

Stage 0: condition

1 of selection_*

Stage 1: selection_malware_files

selection_malware_files:
    TargetFilename|endswith:
        - '/router_init.js'
        - '/tanstack_runner.js'

Stage 2: selection_persistence_claude_vscode

selection_persistence_claude_vscode:
    TargetFilename|endswith:
        - '/.claude/router_runtime.js'
        - '/.vscode/router_runtime.js'

Stage 3: selection_pypi_payload

selection_pypi_payload:
    TargetFilename: '/tmp/transformers.pyz'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
TargetFilenameends_with
  • /.claude/router_runtime.js
  • /.vscode/router_runtime.js
  • /router_init.js
  • /tanstack_runner.js
field:"TargetFilename" kind:ends_with
TargetFilenameeq
  • /tmp/transformers.pyz
field:"TargetFilename" kind:eq value:"/tmp/transformers.pyz"