Skip to main content

BETA DETECTION: Mini Shai-Hulud C2 and Exfiltration Infrastructure Connection Analytic

  • May 14, 2026
  • 0 replies
  • 6 views
Aaron Beardslee
Forum|alt.badge.img
name: Mini Shai-Hulud C2 and Exfiltration Infrastructure Connection Analytic
category: 'Command and Control'
threatname: 'Exfiltration Over Web Service'
functionality: 'Web Proxy'
description: |
Detects outbound connections to infrastructure used by the Mini Shai-Hulud npm worm
(TeamPCP) for C2 communication and credential exfiltration. The worm uses a dual-channel
exfiltration architecture for redundancy:
Channel 1 - Session Protocol CDN: Stolen credentials encrypted with RSA-4096-OAEP
wrapped AES-256-GCM are uploaded to filev2.getsession.org. The worm hardcodes a TLS
cert pin for seed1.getsession.org. Session Protocol is a legitimate privacy messaging
service — most enterprises have no legitimate traffic to this domain, but validate
against your approved application inventory before deploying the session selector
without a filter allowlist.
Channel 2 - GitHub GraphQL dead-drop: Encrypted data committed to attacker-controlled
repos via api.github.com using stolen tokens. Not detectable here as github.com
cannot be blocked; detect instead via SCM audit on commits authored by
claude@users.noreply.github.com on branches matching
dependabot/github_actions/format/{dune-word}.
git-tanstack.com and api.masscan.cloud are purpose-built malicious domains — these
selectors carry zero FP risk and should fire as Critical.

DEPLOYMENT SCOPE: Corporate web proxy covering developer workstation and self-hosted
runner network egress. This is the only rule in this set with potential visibility into
GitHub managed runner activity — but only if your organization routes GitHub Actions
outbound traffic through a corporate proxy. Most organizations do not configure this,
so assume coverage of managed runners is absent unless your network architecture
confirms otherwise. For self-hosted runners whose traffic traverses your corporate proxy,
this rule provides real-time exfiltration detection at the network layer regardless of
whether endpoint telemetry is available on the runner itself.
reference:
- https://www.stepsecurity.io/blog/mini-shai-hulud-is-back-a-self-spreading-supply-chain-attack-hits-the-npm-ecosystem
- https://socket.dev/blog/tanstack-npm-packages-compromised-mini-shai-hulud-supply-chain-attack
labels:
- attack.exfiltration
- attack.t1567
- attack.t1567.001
- attack.command_and_control
- attack.t1102
- Mini_Shai_Hulud
- TeamPCP
- Supply_Chain
- TanStack
logsource:
product: Web Proxy
category: proxy
detection:
selection_dedicated_c2:
DomainName|contains:
- 'git-tanstack.com'
- 'api.masscan.cloud'
selection_session_exfil:
DomainName|contains:
- 'filev2.getsession.org'
- 'seed1.getsession.org'
condition: selection_dedicated_c2 or selection_session_exfil
criticality: High
saveasthreat: false

violation_summary:
grouping_attribute: 'accountname'
level2_attribute: 'sourceaddress'
level2_metadata_attributes:

TECHNICAL DETAILS


    DEPLOYMENT SCOPE
    ----------------
    Target systems:  Corporate web proxy covering workstation and self-hosted runner egress
    Managed runners: Coverage POSSIBLE but NOT GUARANTEED. Only applies if GitHub Actions
                     outbound traffic is routed through your corporate proxy. Verify your
                     GitHub Actions network configuration before assuming managed runner
                     coverage. Most organizations do not have this configured.
    Priority target: Self-hosted CI runners. If the worm executes on a self-hosted runner
                     and its traffic traverses the corporate proxy, this rule catches the
                     exfiltration in real time at the network layer — even if no endpoint
                     telemetry is available on the runner itself.
    Criticality:     Consider splitting into two rules — selection_dedicated_c2 at Critical
                     (zero legitimate use) and selection_session_exfil at High (repurposed
                     legitimate infrastructure with environment-dependent FP risk).

    C2 INFRASTRUCTURE DETAILS
    -------------------------
    Dedicated malicious domains (zero legitimate use, no filter needed):
      git-tanstack.com       — primary C2 observed in StepSecurity runtime analysis
                               (Bun process contacted during npm install execution)
      api.masscan.cloud      — GHA injected workflow exfil endpoint
                               POST /v2/upload receives all repo secrets via toJSON(secrets)

    Repurposed legitimate infrastructure (requires filter_approved_session):
      filev2.getsession.org  — Session Protocol open-group file CDN
                               POST /file receives RSA-4096-OAEP/AES-256-GCM ciphertext
                               Response: {"id": "<file_id>"}
      seed1.getsession.org   — TLS cert pin anchor hardcoded in worm payload
                               Cert: Oxen Privacy Tech Foundation, Melbourne AU
                               Valid until 2033

    GitHub GraphQL dead-drop (not blockable at proxy — detect via SCM audit):
      Endpoint:       https://api.github.com/graphql
      Mutation:       createCommitOnBranch
      Commit author:  claude@users.noreply.github.com
      Commit message: chore: update dependencies
      Branch pattern: dependabot/github_actions/format/{dune-word}
      Marker repos:   siridar-ghola-567, tleilaxu-ornithopter-43

    DNS blocking note: getsession.org uses a distributed node network.
    IP-based blocking is unreliable and will be bypassed as nodes rotate.
    DNS-level blocking of *.getsession.org at your resolver is the correct control.

    FP Guidance:
      git-tanstack.com, api.masscan.cloud: zero FP expected in any environment
      filev2.getsession.org: low FP in enterprise; moderate FP in developer
        environments where engineers use Signal or Session as a messaging app


Policy building walkthrough can be found in this previous post:

 

https://connect.securonix.com/threat%2Dresearch%2Dintelligence%2D62/beta%2Ddetection%2Dtelnyx%2Dteampcp%2Dcredential%2Dexfiltration%2D241