Last updated: August 19, 2026 at 1:47 AM UTC
All 741 Vulnerability 286 Breach 129 Threat 319 Defense 7
Tag: ci-cd (13 articles)Clear

GitHub issue title let an AI agent hijack Snowflake CI and steal a token

Researchers at Wiz found that a public Snowflake code repository could be hijacked through nothing more than a crafted GitHub issue title. A workflow that ran when issues were opened dropped the attacker-controlled title straight into a command, so an unauthenticated user could run code on the GitHub Actions runner and steal a Jira API token used by the automation. The notable twist is how the bug arrived: it was introduced days earlier by an AI tool meant to fix security issues, and an AI code reviewer approved the change. Snowflake fixed it by passing the title safely as an argument rather than expanding it into a command.

Check
Audit GitHub Actions workflows that run on untrusted input like issue titles or pull requests, and never interpolate that input directly into shell commands; pass it as environment variables or arguments.
Affected
Repositories whose workflows trigger on issues or pull requests and interpolate attacker-controlled text into commands; an unauthenticated user can run code on the runner and steal the secrets the workflow holds.
Fix
Sanitize untrusted workflow input, minimize the secrets and permissions each workflow can access, and do not assume AI-generated or AI-reviewed code is safe, since automated fixes and reviews miss injection flaws.

A single GitHub issue could reach CI secrets across major AI coding agents

Novee Security showed at Black Hat that a GitHub issue opened by an account with no repository access could reach the CI runners behind major AI coding agents in their default configurations, tested against Claude Code, Gemini CLI, and Codex. The strongest, a Gemini CLI container-launcher command injection scored 10.0, runs code on the CI host before the sandbox starts. In Claude Code, a validator that stripped quoted text let a payload in a Git flag reach the runner, and a separate flaw leaked an API key through a download counter. Untrusted issue content reaching an agent that holds secrets and tools in the same runtime is the shared weakness.

Check
Update Gemini CLI to 0.39.1 and Claude Code to 2.1.163, and review any workflow where an AI agent runs automatically on issues or pull requests from untrusted users.
Affected
Teams running AI coding agents on public repositories in default configurations (CVE-2026-12537, CVE-2026-54316); an unprivileged GitHub issue or pull request can reach CI runners and expose workflow secrets and tokens.
Fix
Patch the agents, restrict their tools with allowlists rather than blocklists, give triage and review agents read-only tokens, and keep separate agent runs from sharing writable directories.

Google removes AI agent workflows after a GitHub issue could hijack a privileged agent

Pillar Security showed that Google's Agent Development Kit repository could be turned against itself through a poisoned pull request or issue. The public repository ran a low-privileged triage agent that responded to outside contributions, and a higher-privileged agent reserved for maintainers. Because the triage agent posted through a bot account that counted as a repository collaborator, a prompt injection could make it post a command that satisfied the privileged workflow's trust check, invoking the maintainer-level agent. That crossed into a job holding a long-lived access token, a Google API key, and a cloud service-account credential, enabling code execution on the runner and secret theft. Google deleted the affected workflows.

Check
Review any AI agent workflows that act on untrusted pull requests or issues, and check whether a low-privileged agent can trigger a higher-privileged one through a shared bot identity.
Affected
Teams running tiered AI agent workflows in code repositories; untrusted issue or pull-request content can prompt-inject a public agent into invoking a privileged one, exposing continuous integration secrets and code execution.
Fix
Give agents scoped, non-collaborator identities, keep untrusted content from reaching privileged workflows, require human approval for sensitive agent actions, and minimize the tokens and credentials an agent job can access.

Critical TeamCity flaw lets unauthenticated attackers run commands on the CI server

JetBrains patched a critical flaw in TeamCity, its continuous integration and delivery server, that lets an unauthenticated attacker run operating-system commands. Tracked as CVE-2026-63077 and scored 9.8, the deserialization bug affects all on-premises versions and is reached through the agent polling protocol, letting an attacker with HTTP access bypass authentication and execute commands with the privileges of the server process. JetBrains warns that exploitation exposes stored credentials and can compromise the integrity of the build pipeline. It is fixed in versions 2025.11.7 and 2026.1.3, with a patch plugin for older releases, and TeamCity Cloud is already updated. No exploitation has been reported.

Check
Upgrade on-premises TeamCity to 2025.11.7 or 2026.1.3, or apply the security patch plugin if you cannot upgrade, and restrict network access to the server.
Affected
Organizations running any on-premises TeamCity version (CVE-2026-63077); an unauthenticated attacker with HTTP access can execute commands as the server process, steal stored credentials, and tamper with build pipelines.
Fix
Patch or apply the plugin, keep TeamCity off the public internet or behind a VPN, rotate credentials the server held, and review build configurations and logs for unauthorized changes.

AsyncAPI npm packages backdoored through a hijacked build pipeline

Attackers backdoored several widely used @asyncapi npm packages, together drawing around three million weekly downloads, by hijacking the project's GitHub Actions build pipeline rather than stealing a maintainer's npm token. Because the project's own release workflow published the malicious versions, they carried valid provenance signatures, which prove where a package came from but not that the code was trustworthy. The payload was hidden in normal runtime files behind trailing whitespace and ran when the module was imported, not on install, so defenses aimed at install scripts missed it. Once loaded, it fetched an encrypted second stage, stole credentials and cloud and registry tokens, and planted persistence, even in developer tool configuration files.

Check
Check whether your projects or CI pulled the affected @asyncapi versions, focusing on systems that imported the modules, not only installed them, and review developer and build environments for stolen tokens.
Affected
Developers and CI pipelines that imported the compromised @asyncapi versions; the malware steals credentials, cloud keys, and npm and GitHub tokens and adds persistence, and valid provenance signatures made them look trustworthy.
Fix
Downgrade to the clean @asyncapi versions, remove the bad ones from lockfiles, caches, and mirrors, rotate credentials reachable from affected machines from a clean system, and harden CI against untrusted pull-request triggers.

Compromised jscrambler npm releases dropped a cross-platform infostealer on install

Attackers used a stolen publishing credential to push malicious versions of the jscrambler npm package that install a Rust infostealer as soon as the package is added to a project. Socket ties five bad versions to the same actor, published over about three hours; the malware ships as native binaries for Windows, macOS, and Linux and sweeps developer machines for cloud credentials, crypto wallets, and password-manager vaults. Because jscrambler is a build-time tool used in development and CI, the stealer runs where deploy tokens, cloud keys, and source code live. Partway through, the dropper moved into the package's main code, so installing with scripts disabled does not stop it.

Check
Check lockfiles, package logs, and CI records for the malicious jscrambler versions installed since July 11, move to a clean release or pin to 8.13.0, and clear affected versions from caches.
Affected
Developers and CI pipelines that installed the malicious jscrambler versions; the infostealer captures AWS, Azure, and Google Cloud credentials, crypto wallets and seed phrases, and password-manager vaults from the build environment.
Fix
Remove the bad versions, rotate every credential exposed in affected developer and CI environments, hunt for temp-directory binaries and hidden persistence, and pin and verify dependencies rather than trusting a maintainer account.

FBI warns TeamPCP poisons trusted developer tools to steal cloud credentials

The FBI has issued an alert about TeamPCP, a criminal group that compromises the developer and security tools organizations trust inside their build pipelines to steal cloud credentials at scale. Rather than targeting end users, TeamPCP injects malicious code into legitimate software such as the Trivy and KICS scanners and the LiteLLM library, then pushes trojanized updates that continuous integration systems pull in automatically. Its malware harvests AWS, Google Cloud, and Azure tokens, Kubernetes service-account credentials, and more. One technique the FBI highlights is taking over npm maintainer accounts by re-registering the maintainer's long-expired recovery email domain, then using password reset to publish malicious package versions.

Check
Check whether your build pipelines pulled trojanized versions of tools like Trivy, KICS, or LiteLLM, review the FBI's indicators, and audit whether any package maintainer accounts use expired recovery email domains.
Affected
Organizations whose CI/CD pipelines automatically pull developer and security tools, and maintainers whose npm recovery email domains have lapsed; TeamPCP uses these paths to steal cloud, Kubernetes, and registry credentials.
Fix
Pin GitHub Actions to commit hashes, rotate CI/CD secrets and cloud credentials, scope publishing tokens and enforce least privilege, require phishing-resistant MFA on publishing accounts, and delay installing brand-new package versions.

Cordyceps CI/CD weakness lets anonymous pull requests hijack build pipelines

Researchers at Novee disclosed Cordyceps, a systemic class of weaknesses in CI/CD pipelines, especially GitHub Actions workflows, that lets an attacker with nothing more than a free account hijack a project's build and release process. The danger is not a single bug but how workflows chain together: an untrusted pull request or comment feeds a low-privilege workflow whose output flows into a higher-privilege one, ending in stolen credentials, poisoned artifacts, or malicious releases. A scan of 30,000 repositories found over 300 fully exploitable, with fixes confirmed by Microsoft, Google, Apache, Cloudflare, and the Python Software Foundation. Standard scanners miss it because they check files in isolation.

Check
Audit your GitHub Actions and other CI/CD workflows for steps that pass untrusted pull-request or comment data into higher-privilege jobs, and inventory where workflow tokens grant cloud or registry access.
Affected
Organizations whose CI/CD pipelines run workflows triggered by untrusted pull requests or comments, particularly GitHub Actions setups where low-privilege and high-privilege jobs share data and tokens across trust boundaries.
Fix
Treat workflow files as security-critical code, apply least privilege to workflow tokens, isolate untrusted pull-request triggers, sanitize data crossing between jobs, and review CI/CD changes generated by AI coding tools.

Claude Code GitHub Action flaw let one malicious issue hijack repos via prompt injection and OIDC token theft - bot-trigger bypass

Researcher RyotaK has disclosed a now-patched flaw in Anthropic's Claude Code GitHub Action, which drops Claude into CI/CD to triage issues and review PRs with broad repo permissions. The action's trigger check waved through any actor whose name ended in [bot] - but anyone can register a GitHub App and use its token to open an issue on a public repo. Agent mode lacked the human-actor check tag mode had. The attacker then used indirect prompt injection in an issue to make Claude read /proc/self/environ and write back the OIDC credentials, which can be replayed for an installation token with write access. Anthropic's example workflow shipped with allowed_non_write_users: '*'.

Check
Audit repos using Claude Code GitHub Action: update to the patched version, and check workflows for allowed_non_write_users set to '*'. Review public run summaries for leaked secrets.
Affected
Repositories using vulnerable Claude Code GitHub Action versions, especially in agent mode or with allowed_non_write_users: '*' copied from Anthropic's example. Public repos are exposed to [bot]-triggered prompt-injection attacks.
Fix
Update the Claude Code action to the fixed release. Remove allowed_non_write_users: '*', restrict triggers to write-access humans, and rotate any OIDC-derived tokens. Avoid posting task output to public run summaries.

Checkmarx Jenkins AST plugin backdoored by TeamPCP - third Checkmarx supply chain hit since late March

TeamPCP, the group behind the March Trivy breach and Shai-Hulud npm worm, used credentials stolen in that March attack to publish a backdoored version of Checkmarx's Jenkins AST plugin to the Jenkins Marketplace. This is the third Checkmarx supply-chain hit since late March. The rogue version 2026.5.09 went up on May 9, outside Checkmarx's normal release process - no git tag, no GitHub release. Checkmarx says its GitHub repos are isolated from customer production and no customer data is stored there, but anyone who installed the bad plugin should assume their CI credentials are compromised, rotate them all, and hunt for lateral movement.

Check
Check whether your Jenkins instances have the Checkmarx AST plugin installed. If yes, verify the running version - anything dated 2026.5.09 in the version string is the malicious build.
Affected
Any Jenkins instance running the rogue Checkmarx Jenkins AST plugin version 2026.5.09, which was published to the Jenkins Marketplace on May 9, 2026, between then and Checkmarx's takedown. The plugin was outside Checkmarx's normal release pipeline and lacked both a git tag and a GitHub release.
Fix
Roll back to version 2.0.13-829.vc72453fa_1c16 published December 17, 2025, or any earlier officially-tagged build. Rotate every credential the Jenkins host had access to, including cloud API keys, source-repo tokens, deployment keys, and signing certificates. Hunt for lateral movement from the Jenkins host. Pull Checkmarx's published IoC list from their Support Portal and run it across your environment.