Security daily

Edition 2026-05-13 · read as Security

TeamPCPBackdoorsCheckmarxJenkinsPluginasnpmWormSpreads

Sources
37
Words
1,142
Read
6min

Topics Agentic AI LLM Inference AI Regulation

◆ The signal

Two credential-theft campaigns are live in CI/CD pipelines. TeamPCP backdoored the Checkmarx Jenkins AST Scanner plugin (v2026.5.09), the third vector from this actor since the February Trivy breach. Separately, a Bun-based npm worm tracked as 'Mini Shai-Hulud' has hit 169 package names across the Mistral and TanStack ecosystems, exfiltrating GitHub, npm, and CI tokens through prepare hooks that sidestep trusted publishing. Build agents that touched either in the last 30 days: rotate every reachable credential first, investigate second.

◆ INTELLIGENCE MAP

  1. 01

    CI/CD Pipeline Siege: TeamPCP Jenkins + npm Worm

    act now

    TeamPCP's third supply-chain vector (Trivy→GitHub Actions→Jenkins) landed alongside a self-propagating npm worm hitting 169 packages including Mistral and TanStack (12M+ weekly downloads). Both exfiltrate CI credentials. Trusted publishing did not stop either.

    169
    compromised npm packages
    6
    sources
    • npm packages hit
    • TanStack weekly DLs
    • Malicious versions
    • TeamPCP vectors
    1. TanStack packages84
    2. Mistral packages85
    3. Malicious versions373
  2. 02

    Ollama CVE-2026-7482: AI Infrastructure Leaking Secrets

    act now

    Pre-auth heap leak in Ollama exposes API keys, prompts, and env vars to unauthenticated callers via 3 API calls and a malformed GGUF file. ~300K servers exposed on public internet. Detection is near-impossible — looks like normal API traffic.

    300K
    exposed servers
    2
    sources
    • Exposed servers
    • Auth required
    • API calls to exploit
    • CVE
    1. Exposure severity92
  3. 03

    AI Agent Frameworks Cross the RCE Threshold

    monitor

    Microsoft Semantic Kernel treats LLM output as trusted input to system calls — prompt injection escalates to host-level RCE. Simultaneously, OAuth-fanout agents (Viktor-class) connect to 3,000+ tools via single identity. Agent-as-privileged-insider is now a production reality.

    3,000+
    tools per agent identity
    5
    sources
    • SK vulnerability class
    • Viktor tool connections
    • Deepfake latency
    • Agent MCP tools
    1. 01Semantic Kernel (RCE)Critical
    2. 02OAuth-fanout agentsHigh
    3. 03Codex-in-ChromeHigh
    4. 04MCP tool registriesMedium
  4. 04

    AI Supply Chain Concentration Creates Single Points of Failure

    background

    Anthropic is acquiring Stainless (~$300M), the SDK generator for OpenAI, Google, AND Anthropic. Microsoft's $627B forward book is 45% OpenAI. Google's $468B is 43% Anthropic. Three labs are becoming load-bearing infrastructure with startup-grade security maturity.

    45%
    Microsoft book = OpenAI
    5
    sources
    • Stainless deal
    • MSFT book (OpenAI)
    • GOOG book (Anthropic)
    • Hyperscaler AI capex
    1. Microsoft → OpenAI45
    2. Microsoft → Other55
    3. Google → Anthropic43
    4. Google → Other57

◆ DEEP DIVES

  1. 01

    CI/CD Under Active Siege: Two Credential-Theft Campaigns Running Simultaneously

    What Happened

    Two supply-chain compromises are actively exfiltrating credentials from enterprise build pipelines. TeamPCP backdoored the Checkmarx Jenkins AST Scanner plugin, version 2026.5.09, via the Jenkins Marketplace. This is the third vector tied to the actor since the Trivy breach in February. Separately, a Bun-based npm worm tracked as 'Mini Shai-Hulud' poisoned 169 package names across 373 versions, including dependencies in the Mistral AI and TanStack ecosystems, and stole GitHub tokens, npm publish tokens, cloud IAM keys, and CI secrets via prepare hooks on optionalDependencies.

    TeamPCP Campaign Arc

    The chain is straightforward. Trivy (Feb) → GitHub Actions + OpenVSX (Mar) → Checkmarx Jenkins plugin (May). Three developer-tool distribution channels in three months. The plugin runs at build-runner privilege, which puts SCM tokens, artifact registry keys, cloud credentials, and code-signing keys in scope. Checkmarx has not published IOCs for the modified plugin, so defenders are working from worst-case assumptions.

    Mini Shai-Hulud Mechanics

    The worm abuses GitHub Actions weaknesses: unpinned third-party actions, overly permissive GITHUB_TOKEN scopes, and pull_request_target with untrusted checkout. It steals npm publishing credentials and injects payloads into release workflows. TanStack deprecated 84 malicious versions across 42 packages. Several of those packages carry 12M+ weekly downloads — react-query, router, table, form. Trusted publishing did not stop it. The abused workflows minted valid tokens on demand.

    Trusted publishing died this week. The npm worm ran inside install, not at publish. Any CI pipeline that touched a tainted package should be treated as credential-compromised until rotated.

    Cross-Source Pattern

    Six independent sources describe the same operational picture. The attack surface is the build environment itself, and every credential reachable from it is compromised. What separates this week from last quarter is that both campaigns bypass the controls the industry put in place after the previous round — marketplace publisher verification and trusted publishing provenance.


    Why This Matters Now

    The gap between disclosure and opportunistic scanning is measured in hours. TeamPCP has shown persistence across three vectors in three months. The npm worm self-propagates using stolen publish tokens, so the exposure is not bounded by the two named packages. It extends to anything a compromised maintainer could push.

    Action items

    • Audit all Jenkins controllers for Checkmarx AST Scanner plugin v2026.5.09; roll back to 2.0.13-829.vc72453fa_1c16 and rotate every credential accessible from affected runners
    • Scan all lockfiles, CI caches, and container images for the 169 affected npm package versions (TanStack May 10-12 window is priority); purge GitHub Actions caches on affected repos
    • Rotate all GitHub PATs, npm tokens, cloud IAM keys, and CI secrets that touched affected pipelines in the last 30 days
    • Enforce --ignore-scripts on CI npm installs, pin GitHub Actions to commit SHAs, set GITHUB_TOKEN to read-only by default, and deploy outbound egress allowlisting during build phase
    • Hunt for TeamPCP IOCs across GitHub Actions, OpenVSX, and Jenkins installs — including Dune-themed repository names — going back to March 2026

    Sources:SANS NewsBites · Daniel Miessler · TLDR · Techpresso · TLDR Dev · TLDR InfoSec

  2. 02

    Ollama CVE-2026-7482: Your AI Inference Fleet Is Leaking Secrets to Unauthenticated Callers

    The Vulnerability

    Cyera disclosed CVE-2026-7482 on the Ollama GGUF tensor quantization path. It is a pre-authentication heap-memory leak in Go's unsafe package. The attacker uploads a malformed GGUF with inflated tensor shape values. An out-of-bounds read fires. Heap contents stream back over HTTP to any unauthenticated caller. Total cost to the attacker: three API calls. Upload, name-as-URI, push.

    What Leaks

    The heap of a running inference server holds the things a running inference server touches: user prompts, system prompts, API keys, OAuth tokens, and environment variables. Internal enterprise deployments had already loaded these instances with cloud IAM keys, database connection strings, and SaaS tokens baked into the process environment. That is the payload.

    DimensionDetail
    Auth RequiredNone
    Exposed Servers~300,000 (Shodan/Censys scan)
    Detection DifficultyHigh — looks like normal API traffic
    Data at RiskAPI keys, prompts, env vars, model state

    The Larger Pattern

    Ollama was written as a local developer tool. It ended up bound to 0.0.0.0 on production hosts. The 300,000 exposed endpoints are the distance between those two facts. Inference servers now sit in the same class of infrastructure as the misconfigured Elasticsearch, Redis, and MongoDB instances that generated the 2018-2020 headline cycle. Same failure mode, new process name.

    If Ollama is in production, assume the heap is already on someone's disk. The three-hundred-thousand number will come down slowly. It always does.

    Compensating Controls

    Block /api/push at the perimeter tonight if you cannot patch tonight. Bind to localhost and front with a reverse proxy that authenticates the caller; that closes the pre-auth path. The harder work is rotating every secret that lived in the process memory of an exposed instance. Disclosure is today. Exploitation may be older.

    Action items

    • Inventory all Ollama instances (including shadow deployments by ML/data teams); patch immediately or pull off the internet and bind to localhost
    • Block /api/push at the perimeter for any Ollama instance that cannot be updated within 24 hours
    • Rotate every API key, OAuth token, and environment-variable secret that was accessible to exposed Ollama processes
    • Add Hugging Face and GGUF/safetensors to software supply chain controls — enforce pinned hashes, allowlist publishers, sandbox model pulls in dev/CI
    • Deploy network segmentation preventing inference servers from reaching secrets managers, cloud metadata services, or production databases directly

    Sources:TLDR InfoSec · SANS NewsBites

  3. 03

    AI Agent Frameworks Cross the RCE Threshold: Semantic Kernel, OAuth Fanout, and the Confused Deputy at Scale

    Semantic Kernel: Prompt Injection Becomes Host-Level RCE

    Microsoft Semantic Kernel is the orchestration library that shipped quietly into production across many .NET teams last year. It treats LLM output as trusted input to the execution layer. Prompt injection in retrieved content or user input escalates directly to remote code execution on the host running the agent. No sandbox. No validation layer. The framework invokes shell, HTTP, file, and MCP tools on whatever the model returns.

    Publicly: Semantic Kernel is embedded in Microsoft Copilot extensibility and a wide set of enterprise agent projects. MITRE mapping is T1059 (Command/Scripting Interpreter) via T1566 (Phishing) or poisoned retrieval corpora. Not publicly confirmed but consistent with field reporting: the deployed surface is larger than any asset inventory reflects.

    OAuth-Fanout Agents: One Identity, Unlimited Blast Radius

    Viktor-class Slack-resident agents connect to 3,000+ downstream tools under a single OAuth grant. SOC 2 attestation covers the vendor's controls. It does not cover the OAuth scopes the customer granted, the prompt-injection surface of Slack channels, or the path by which a malicious DM coerces the agent to exfiltrate from Jira, Salesforce, and GitHub in one session.

    Agent SurfaceVectorBlast RadiusDetection Gap
    Semantic KernelPrompt injection → shell execHost-level RCE, lateral movementLooks like normal agent operation
    OAuth-fanout agents (Viktor)Crafted Slack message → tool abuseCross-SaaS data exfiltrationUEBA not tuned for agent behavior
    Codex-in-ChromeIndirect prompt injection via tabEvery SSO session in the browserEDR doesn't model in-browser agents
    MCP tool registriesPoisoned tool definitionAgent executes attacker-controlled codeSLSA doesn't cover runtime tools

    Sub-200ms Deepfake Enables Agent Impersonation

    Thinking Machines' TML-Interaction-Small does full-duplex voice and video synthesis under 200ms. That is below the threshold where humans detect the seam. Pair it with agent infrastructure that can initiate calls and the confused-deputy problem extends to voice. Real-time video impersonation of a CFO on a Zoom bridge is now a tractable engineering problem.

    Developers running Semantic Kernel, finance still verifying wires by voice: two AI-era initial-access vectors open right now. Close both before the next board cyber update.

    The Governance Gap

    Five sources independently flag the same structural issue. Agents act with the user's authority across systems designed for a human at the keyboard. Every existing trust boundary — browser sessions, repo configs, PR reviews, voice verification — is now an untrusted-input boundary when an agent sits in the middle. Telemetry on agent tool-call behavior is absent in most organizations. Decide for yourself how long that holds.

    Action items

    • Inventory every Semantic Kernel deployment (internal, ISV, Copilot extension) and audit for unsanitized model-output-to-system-call paths; disable tool execution for unpatched instances by EOW
    • Enumerate every AI agent with OAuth grants into Slack/Teams/Google Workspace; enforce per-agent scope minimization, short-lived tokens, and SIEM detections for anomalous tool invocation patterns
    • Block Codex-in-Chrome and similar browser-resident agents on managed browsers via Chrome Enterprise policy until a threat model is approved
    • Update vishing/BEC playbooks: mandate out-of-band callback to known-good numbers for any wire, credential reset, or privileged access request — voice and video alone are no longer sufficient verification
    • Add AI agent frameworks and MCP tool-call anomalies as explicit categories in the SOC detection engineering backlog; deploy rules for anomalous tool invocations, egress from agent service accounts, and unusual PR authorship

    Sources:AINews · TLDR IT · TLDR AI · ben's bites · TLDR · TLDR InfoSec

◆ QUICK HITS

  • Anthropic acquiring Stainless ($300M+) — the single SDK generator behind OpenAI, Google, AND Anthropic client libraries — creates unprecedented supply-chain concentration; pin AI SDK versions and enable provenance verification now

    The Information

  • TrickMo banking trojan migrated C2 to TON blockchain smart contracts — domain takedowns and DNS sinkholing are now ineffective; add TON RPC endpoint monitoring to mobile EDR/MTD

    TLDR Crypto

  • ScarCruft (APT37) deployed first-ever Android BirdCall variant using Zoho WorkDrive over HTTPS for C2, exfiltrating SMS/calls/mic audio in 7-10 PM windows — IOCs: 1980food.co.kr, inodea.com, lawwell.co.kr

    TLDR InfoSec

  • Operation HookedWing quietly harvested 2,000+ credentials across 500+ orgs in aviation/energy/finance/gov over four years using HR-themed phishing with GitHub Pages-hosted Outlook clones — hunt for *.github.io credential-harvesting pages in email logs

    TLDR InfoSec

  • Update: Instructure confirmed paying ShinyHunters and urged individual institutions to 'negotiate their own ransom' — a new SaaS vendor fragmentation tactic; review SaaS contracts for ransom-coordination and breach-notification timing clauses

    SANS NewsBites

  • Update: ICO fined South Staffordshire Water £963,900 — 5% monitoring coverage + Windows Server 2003 = regulator-quantified negligence benchmark; use as board-metric reference for your monitored-asset ratio

    SANS NewsBites

  • OpenAI Daybreak now GA: GPT-5.5-Cyber model + Codex Security agentic harness + Trusted Access tier — direct competitor to Anthropic Mythos; require detection-rate data and data-handling terms before any pilot touches production telemetry

    Techpresso

  • Thinking Machines TML-Interaction-Small achieves sub-200ms full-duplex voice+video synthesis — below human detection threshold; retire voice-biometric MFA for high-value transactions and mandate callback verification

    AINews

◆ Bottom line

The take.

Your CI/CD pipelines are under active attack from two directions — a TeamPCP Jenkins backdoor (third vector since February) and an npm worm hitting Mistral/TanStack packages with 12M+ weekly downloads — while 300,000 Ollama inference servers are leaking API keys and prompts to anyone who sends three unauthenticated HTTP requests. Rotate every credential your build agents and AI servers can reach. Do it today, because trusted publishing, marketplace verification, and 'it's behind the firewall' all failed this week.

— Promit, reading as Security ·

Frequently asked

Which Checkmarx Jenkins plugin version is backdoored, and what should I roll back to?
The compromised version is Checkmarx AST Scanner v2026.5.09, distributed via the Jenkins Marketplace by TeamPCP. Roll affected controllers back to 2.0.13-829.vc72453fa_1c16 and rotate every credential reachable from the affected build runners, since the plugin executes at runner privilege and Checkmarx has not yet published IOCs.
Why didn't npm trusted publishing stop the Mini Shai-Hulud worm?
Trusted publishing validates provenance at publish time, but Mini Shai-Hulud executed inside install via prepare hooks on optionalDependencies. The worm ran on developer and CI machines, stole GitHub and npm tokens, then used legitimate release workflows to mint valid publish credentials on demand — sidestepping provenance entirely.
How do I check if my pipelines were hit by either campaign?
Audit Jenkins controllers for Checkmarx AST Scanner v2026.5.09, then scan all lockfiles, CI caches, and container images for the 169 affected npm package names across the Mistral and TanStack ecosystems, prioritizing the May 10–12 TanStack window. Purge GitHub Actions caches on touched repos and treat any build agent that ran either as credential-compromised pending rotation.
Which credentials need rotating, and in what order?
Rotate every credential reachable from affected build agents in the last 30 days: GitHub PATs and App tokens, npm publish tokens, cloud IAM keys, code-signing keys, artifact registry credentials, and any CI secrets injected into the runner environment. Rotate before investigating — both campaigns target credentials, so patching alone leaves stolen tokens valid.
What hardening prevents the next variant from succeeding the same way?
Enforce --ignore-scripts on CI npm installs, pin GitHub Actions to commit SHAs, default GITHUB_TOKEN to read-only with explicit per-job scope grants, deploy egress allowlisting during the build phase, and require short-lived tokens for any agent or plugin running inside CI. These controls break the specific mechanisms both campaigns relied on.

◆ Same day, different angle

Read this day as…

◆ Recent in security

Keep reading.