TeamPCP Attack day 6 Backdoors LiteLLM: Your AI Gateway Just Became the Attack Vector

DAY6 TeamPCP Attack, devsecops, ASPM, application security, vulnerability management, supply chain attack, LiteLLM compromise, PyPI malware, CI/CD compromise, reachability analysis, attack surface management, exposure management, TeamPCP, Trivy compromise, Checkmarx KICS, CanisterWorm, Kubernetes lateral movement, credential harvesting, AI gateway security

Executive Summary

Between March 19 threat actor TeamPCP compromised Aqua Security’s and March 23 2026 (disclosed by Paul McCarty). Today is day 6, and a new attack appears from the alliance with LAPSUS. This is becoming one of the major compromises in the supply chain.

Executive Summary

On March 24, 2026, two malicious versions of LiteLLM were published to PyPI. LiteLLM is one of the most widely deployed AI infrastructure packages in the Python ecosystem, with over 95 million monthly downloads and adoption by organisations including Stripe, Netflix, and Google ADK. Versions 1.82.7 and 1.82.8 contain a three-stage credential stealer attributed to TeamPCP, the threat actor behind the Trivy and Checkmarx supply chain compromises that have been escalating since late February 2026.

The payload harvests SSH keys, cloud credentials (AWS, GCP, Azure), Kubernetes secrets, database passwords, CI/CD tokens, cryptocurrency wallets, and environment variables. In Kubernetes environments, it deploys privileged pods to every node in the cluster and installs a persistent systemd backdoor that polls checkmarx[.]zone for additional payloads every 50 minutes. Version 1.82.8 is particularly dangerous: it uses a Python .pth file that executes the stealer on every Python process startup, regardless of whether LiteLLM is ever imported.

The attack was almost certainly enabled by stolen credentials from the Trivy CI/CD compromise. LiteLLM uses Trivy as its security scanner. When the compromised Trivy action ran in LiteLLM’s pipeline, it harvested the PyPI publishing token. TeamPCP then used that token to publish backdoored packages directly to PyPI, bypassing GitHub entirely. PyPI quarantined the entire project within approximately three hours. The damage window was short, but for a package with LiteLLM’s download volume, three hours is enough to reach thousands of environments.

TL;DR for Engineering Teams

What it is: Supply chain compromise of LiteLLM versions 1.82.7 and 1.82.8 on PyPI, injecting a three-stage credential stealer with Kubernetes lateral movement and persistent backdoor. Attributed to TeamPCP with high confidence. No CVE assigned.

Where it bites: Any Python environment with litellm==1.82.7 or litellm==1.82.8 installed. Version 1.82.8 fires on every Python process startup via a .pth file, not just when LiteLLM is imported. CI/CD pipelines, Kubernetes clusters, cloud workloads, and developer machines are all in scope.

Why it matters: LiteLLM has 95M+ monthly PyPI downloads and handles LLM API keys by design. The stealer harvests 50+ credential paths including AWS Secrets Manager contents and SSM parameters. In Kubernetes, it deploys privileged pods to every node and installs persistence that survives reboots. The credential theft chain continues: Trivy was compromised, which compromised LiteLLM, and stolen credentials from LiteLLM environments will fuel the next wave.

Patch status: Both versions removed from PyPI. Entire litellm project quarantined pending review. Last known-clean version: litellm 1.82.6 (published March 22, 2026).

Immediate action: Check installed version. Uninstall 1.82.7/1.82.8 immediately. Remove persistence artifacts (~/.config/sysmon/, pgmon.service, node-setup-* pods). Rotate every credential accessible to the affected host. Block models.litellm[.]cloud and checkmarx[.]zone.

Vulnerability Overview

VendorBerriAI (LiteLLM)
ProductLiteLLM (litellm PyPI package)
Vulnerability TypeSupply chain compromise / credential theft / K8s lateral movement / persistent backdoor
CWECWE-829 (Inclusion of Functionality from Untrusted Control Sphere)
CVENot assigned
Attack VectorNetwork (PyPI package installation, Python process execution)
Active ExploitationConfirmed
AttributionTeamPCP (DeadCatx3 / PCPcat / ShellForce / CipherForce)
Exposure Window~3 hours (March 24, 10:39 UTC to ~13:30 UTC quarantine)
C2 Domainsmodels.litellm[.]cloud (exfiltration), checkmarx[.]zone (persistence C2)

TeamPCP behaviour, devsecops, ASPM, application security, vulnerability management, supply chain attack, LiteLLM compromise, PyPI malware, CI/CD compromise, reachability analysis, attack surface management, exposure management, TeamPCP, Trivy compromise, Checkmarx KICS, CanisterWorm, Kubernetes lateral movement, credential harvesting, AI gateway security

Technical Anatomy

Why LiteLLM Was the Perfect Target

LiteLLM is an LLM API gateway. It routes requests across 100+ LLM providers through a single interface. By design, it handles API keys for OpenAI, Anthropic, Google, Azure, and dozens of other providers. A compromised LiteLLM installation does not just expose infrastructure credentials; it exposes the API keys of every LLM provider the organisation uses. For TeamPCP, this is a target-rich environment with maximum credential density per compromised host.

The attack vector was almost certainly the Trivy CI/CD compromise. LiteLLM’s own CI/CD pipeline runs Trivy as its vulnerability scanner. When the compromised Trivy action executed in LiteLLM’s pipeline during the March 19-20 exposure window, it harvested pipeline secrets including the PyPI publishing token. TeamPCP then used that token to push malicious packages directly to PyPI. The timeline fits: Trivy compromised March 19, attacker regains access March 22, LiteLLM packages appear March 24 at 10:39 UTC.

Two Injection Vectors, One Payload

The two affected versions use different delivery mechanisms, and understanding this matters for determining whether your environment was hit.

Version 1.82.7 embeds the payload directly in litellm/proxy/proxy_server.py. The attacker inserted 12 lines at line 128, between two unrelated legitimate code blocks. The injection executes at module import time, meaning any process that imports litellm.proxy.proxy_server triggers the stealer. The malicious code was not present in the upstream GitHub repository; the injection was performed during or after the wheel build process. The attacker also regenerated the RECORD file with the SHA-256 of the backdoored file, so standard integrity checks against the wheel’s own metadata pass cleanly.

Version 1.82.8 adds a second, far more dangerous vector. A file named litellm_init.pth (34,628 bytes) is placed at the wheel root. Python has a feature most developers never think about: any .pth file in site-packages is executed automatically by site.py when the Python interpreter starts. Not when you import the package. Not when you call a function. Every time Python runs. Scripts, notebooks, CI jobs, background services, cron tasks. If litellm 1.82.8 is installed in the environment, the stealer fires whether or not your code ever touches litellm. The .pth launcher uses subprocess.Popen to run the payload in a detached background process, so it does not delay Python startup or produce visible output.

Stage 1: The Credential Harvest

The payload decodes to a 332-line Python orchestrator that unpacks a credential harvester and a persistence dropper. The harvester performs a systematic sweep of the compromised host. The scope is exhaustive:

CategoryTargets
System reconhostname, whoami, uname -a, IP addresses, routing tables, full printenv
SSHid_rsa, id_ed25519, id_ecdsa, id_dsa, authorized_keys, known_hosts, SSH configs for all users; host keys from /etc/ssh
AWS~/.aws/credentials and config, AWS_* env vars, EC2 IMDS role credentials (IMDSv2), ECS container credentials, Secrets Manager secrets (list + retrieve values), SSM parameters
GCP~/.config/gcloud/*, application_default_credentials.json, GOOGLE_APPLICATION_CREDENTIALS
Azure~/.azure/ directory tree, AZURE_* env vars
Kubernetes~/.kube/config, service account tokens + CA certs, all secrets across all namespaces, KUBE_*/K8S_* env vars
Docker~/.docker/config.json, /kaniko/.docker/config.json
Environment files.env, .env.local, .env.production, .env.development, .env.staging, .env.test searched recursively across /home, /root, /opt, /srv, /var/www, /app, /data, /tmp
Database.pgpass, my.cnf, redis.conf, .mongorc.js, DB_*/DATABASE_*/MYSQL_*/POSTGRES_*/MONGO_* env vars
CI/CD & IaCterraform.tfvars, terraform.tfstate, .gitlab-ci.yml, .travis.yml, Jenkinsfile, .drone.yml, ansible.cfg, Helm configs
TLS/SSL keys.pem, .key, .p12, .pfx from /etc/ssl/private, /etc/letsencrypt, and all common roots
Crypto walletsBitcoin (wallet.dat), Ethereum keystores, Solana validator keypairs, Cardano signing keys, Monero, Litecoin, Dogecoin, Zcash, Dash, Ripple
Shell history.bash_history, .zsh_history, .mysql_history, .psql_history, .rediscli_history
Auth & tokens.npmrc, .vault-token, .netrc, LDAP configs, Postfix SASL passwords, Slack/Discord webhook URLs
System files/etc/passwd, /etc/shadow, auth logs (accepted logins)

The harvester also implements a full AWS SigV4 signing routine to authenticate API calls directly to Secrets Manager and SSM Parameter Store using credentials obtained from EC2 Instance Metadata Service. This goes beyond reading files on disk; the stealer actively queries cloud APIs to pull secrets that only exist in managed services.

Stage 2: Encrypted Exfiltration

Collected data is encrypted with AES-256-CBC using a randomly generated session key derived via PBKDF2 from 32 random bytes. The session key is wrapped with a hardcoded RSA-4096 public key using OAEP padding. Both files are bundled into tpcp.tar.gz and POSTed to models.litellm[.]cloud via HTTPS with the header X-Filename: tpcp.tar.gz. The domain is designed to look like legitimate LiteLLM infrastructure (the real domain is litellm.ai). Only the holder of the RSA private key can decrypt the exfiltrated archive. Even if you captured the network traffic, the contents are unreadable without TeamPCP’s key.

Stage 3: Kubernetes Lateral Movement and Persistence

For environments running Kubernetes, the payload escalates significantly. If a Kubernetes service account token exists at /var/run/secrets/kubernetes.io/serviceaccount/token, the harvester enumerates all nodes in the cluster and deploys a privileged pod to each one. Each pod runs in kube-system, uses alpine:latest, requests privileged: true with hostPID and hostNetwork access, mounts the entire host root filesystem at /host, and tolerates all taints so it schedules on every node including control-plane nodes. The pod uses restartPolicy: Never to avoid leaving long-running evidence.

Each pod chroots into the host filesystem and installs the persistence dropper as a systemd user service. The dropper lives at ~/.config/sysmon/sysmon.py with a corresponding systemd unit at ~/.config/systemd/user/sysmon.service, disguised as a ‘System Telemetry Service.’ After a 5-minute initial delay, it enters a loop that polls checkmarx[.]zone/raw every 50 minutes. Each cycle fetches a URL from the C2, compares it against a local state file at /tmp/.pg_state, and checks for the kill switch (if the response contains ‘youtube.com,’ execution aborts). If the URL is new and the kill switch is not engaged, the dropper downloads a binary to /tmp/pglog, makes it executable, and runs it in a detached session. This gives TeamPCP the ability to push arbitrary second-stage payloads to every compromised node at any time.

Core Behaviours: What Makes This Attack Different

The .pth File: Execution Without Import

The most significant technical innovation in this attack is the use of a .pth file for payload delivery. Most Python supply chain attacks require the victim to import the malicious package. The litellm_init.pth file bypasses that requirement entirely. Python’s site.py processes .pth files in site-packages at interpreter startup. If your environment has litellm 1.82.8 installed, the stealer runs every time Python starts. Running pytest? Stealer fires. Launching a Jupyter notebook? Stealer fires. A cron job invoking any Python script? Stealer fires. This is functionally equivalent to a rootkit that hooks the interpreter itself.

Security Tools as Attack Vectors

TeamPCP has now exclusively compromised security-adjacent software: Trivy (vulnerability scanner), KICS (IaC analyser), and LiteLLM (LLM proxy that handles API keys). These tools run with elevated privileges by design. They need broad access to scan, analyse, or proxy. Compromising them is maximally efficient because the attacker inherits the trust the organisation has already granted to the tool. Your vulnerability scanner ran the payload that stole the token that backdoored your AI gateway. The irony is structural, not incidental.

Credential Chain Propagation

Each compromised environment yields credentials that unlock the next target. The February Trivy breach yielded a GitHub org-wide PAT. The March 19 Trivy action compromise harvested CI/CD secrets from thousands of pipelines. Those secrets included npm tokens (enabling CanisterWorm), Docker Hub credentials (enabling poisoned container images), and PyPI publishing tokens (enabling this LiteLLM compromise). Credentials stolen from LiteLLM environments will fuel whatever comes next. Wiz’s head of threat exposure summarised it accurately: the open source supply chain is collapsing in on itself.

The Payload Development History

An operational security failure by TeamPCP left two earlier iterations of the payload as commented-out base64 blobs on lines 131 and 132 of proxy_server.py. Decoding all three reveals the attacker’s development progression. Iteration 1 used exec() and RC4 obfuscation for shell commands, but the same C2 infrastructure and credential targets were already present. Iteration 2 was transitional, carrying both the old RC4 version (commented out) and the new plaintext harvester. Iteration 3, the active payload, removed exec() and RC4 in favour of subprocess piping and tempfile. The C2 endpoints, encryption scheme, persistence mechanism, and credential scope remained identical across all three versions. Only the delivery and evasion mechanisms evolved.

Affected Versions

LiteLLM (This Compromise)

ComponentVulnerableSafe VersionNotes
litellm (PyPI)1.82.71.82.6Payload in proxy_server.py; import-time execution
litellm (PyPI)1.82.81.82.6proxy_server.py + litellm_init.pth; fires on every Python startup

Aqua Security / Trivy Ecosystem (Upstream Compromise)

ComponentVulnerableSafe VersionNotes
trivy-actionTags 0.0.1-0.34.2 (75/76)v0.35.0 (SHA: 57a97c7e)Force-pushed to malicious commits
setup-trivy7 tags compromisedv0.2.6Same stealer payload
trivy binaryv0.69.4, v0.69.5, v0.69.6v0.69.3Published to Docker Hub, GHCR, ECR

Checkmarx Ecosystem

ComponentVulnerableSafe VersionNotes
kics-github-actionAll 35 tags (v1-v2.1.20)Verify SHACompromised via cx-plugins-releases account
ast-github-actionv2.3.28 confirmed; all tags suspectedVerify SHAReported by Sysdig TRT
ast-results (OpenVSX)v2.53.0Prior versionsPayload: environmentAuthChecker.js
cx-dev-assist (OpenVSX)v1.7.0Prior versionsPublished 12 seconds after ast-results

npm / CanisterWorm

ScopePackagesStatusNotes
@emilgroup28 packagesActiveFirst scope targeted; Wave 1 dry run
@opengov16+ packagesActiveIncludes form-renderer and others
@teale.ioeslint-config v1.8.11-1.8.12Self-propagatingFirst self-propagating variant
@airtm, @pypestreamMultiple packagesActiveLater wave expansion
Total tracked141 artifacts / 66+ packagesPer Socket trackingAikido initial count: 47
Timeline TeamPCP, devsecops, ASPM, application security, vulnerability management, supply chain attack, LiteLLM compromise, PyPI malware, CI/CD compromise, reachability analysis, attack surface management, exposure management, TeamPCP, Trivy compromise, Checkmarx KICS, CanisterWorm, Kubernetes lateral movement, credential harvesting, AI gateway security

Discovery and Disclosure Timeline

DateEvent
Feb 20, 2026hackerbot-claw GitHub account created; begins scanning for exploitable workflows
Feb 28, 2026Trivy repository fully compromised via pull_request_target exploit; org-wide PAT stolen
Mar 1, 2026Aqua Security discloses, begins credential rotation (non-atomic); releases trivy v0.69.2
Mar 19, 17:43 UTCTeamPCP force-pushes 75 trivy-action tags + 7 setup-trivy tags + backdoored trivy v0.69.4
Mar 20, ~05:40 UTCMalicious Trivy artifacts removed; ~12-hour exposure window closes
Mar 20, 20:45 UTCCanisterWorm first detected in npm by Aikido Security; ICP blockchain C2 identified
Mar 22, 2026Aqua discloses attacker re-established access; additional suspicious activity confirmed; litellm v1.82.6 (clean) published
Mar 23, 12:53 UTCMalicious OpenVSX extensions published (ast-results v2.53.0, cx-dev-assist v1.7.0)
Mar 23, 12:58-16:50All 35 kics-github-action tags + ast-github-action v2.3.28 compromised
Mar 24, 10:39 UTClitellm v1.82.7 published to PyPI with embedded stealer in proxy_server.py
Mar 24, 10:52 UTClitellm v1.82.8 published with .pth file (fires on all Python startup)
Mar 24, ~13:30 UTCPyPI quarantines the entire litellm project; all versions unavailable pending review
Mar 24, 2026Endor Labs, JFrog, and community researchers publish independent analyses confirming TeamPCP attribution

Determine If You’re Affected

Exposure by Environment

EnvironmentRiskReason
K8s clusters running litellmCriticalPrivileged pods deployed to every node; full host filesystem access; persistent backdoor
CI/CD pipelines with litellmCriticalPipeline secrets, cloud tokens, registry creds all harvested; enables next-hop compromise
Cloud workloads (EC2/GCE/Azure)CriticalIMDS credential theft; AWS Secrets Manager and SSM Parameter Store queried directly
Developer machinesHighSSH keys, .env files, shell history, crypto wallets, Git credentials all swept
Docker builds with litellmHigh.pth file in v1.82.8 fires during image build if Python runs
Environments with litellm installed but not importedHigh (v1.82.8 only).pth execution on interpreter startup; no import required
Environments running litellm 1.82.6 or earlierNot affectedLast known-clean version

Verification Steps

  1. Check installed version: pip show litellm 2>/dev/null | grep Version
  2. Search for .pth file: find “$(python3 -c ‘import site; print(site.getsitepackages()[0])’)” -name “litellm_init.pth” 2>/dev/null
  3. Check lock files: grep litellm requirements.txt poetry.lock uv.lock Pipfile.lock 2>/dev/null
  4. Search for persistence: ls -la ~/.config/sysmon/sysmon.py ~/.config/systemd/user/sysmon.service /tmp/pglog /tmp/.pg_state 2>/dev/null
  5. Check Kubernetes: kubectl get pods -n kube-system | grep node-setup
  6. Review network logs for connections to models.litellm[.]cloud and checkmarx[.]zone
  7. Check systemd: systemctl –user status sysmon.service 2>/dev/null
  8. Audit BerriAI org packages: any package published through the same CI/CD infrastructure should be treated as suspect

Detection Guidance

Indicators of Compromise

TypeIndicatorContext
C2 domainmodels.litellm[.]cloudPrimary exfiltration endpoint
C2 domaincheckmarx[.]zonePersistence C2 (shared with KICS wave)
C2 endpointcheckmarx[.]zone/rawPayload delivery for persistent backdoor
Exfil headerX-Filename: tpcp.tar.gzPresent in all stealer POST requests
Persistence~/.config/sysmon/sysmon.pyPersistent backdoor script
Persistence~/.config/systemd/user/sysmon.servicesystemd unit (‘System Telemetry Service’)
Payload file/tmp/pglogDownloaded binary payload
State file/tmp/.pg_stateTracks last-fetched URL
K8s podsnode-setup-* in kube-systemAttacker privileged pods on every node
.pth filelitellm_init.pth in site-packagesInterpreter startup payload (v1.82.8 only)
Exfil archivetpcp.tar.gzEncrypted credential bundle

File Hashes (SHA-256)

HashArtifact
8395c3268d5c5dbae1c7c6d4bb3c318c752ba4608cfcd90eb97ffb94a910eac2litellm 1.82.7 wheel
d2a0d5f564628773b6af7b9c11f6b86531a875bd2d186d7081ab62748a800ebblitellm 1.82.8 wheel
a0d229be8efcb2f9135e2ad55ba275b76ddcfeb55fa4370e0a522a5bdee0120bCompromised proxy_server.py
71e35aef03099cd1f2d6446734273025a163597de93912df321ef118bf135238litellm_init.pth (v1.82.8)

Remediation and Temporary Protections

Immediate Actions

  1. Identify affected systems: pip show litellm | grep Version across all environments. Check lock files for pinned 1.82.7 or 1.82.8.
  2. Uninstall immediately: pip uninstall litellm. Remove litellm_init.pth from site-packages.
  3. Kill persistence: systemctl –user stop sysmon.service && systemctl –user disable sysmon.service. Remove ~/.config/sysmon/ and ~/.config/systemd/user/sysmon.service. Kill /tmp/pglog processes. Remove /tmp/pglog and /tmp/.pg_state.
  4. Block C2 at network/DNS: models.litellm[.]cloud and checkmarx[.]zone.
  5. Kubernetes cleanup: kubectl get pods -n kube-system | grep node-setup and delete. Check all nodes for persistence at /root/.config/sysmon/.
  6. Rotate everything: SSH keys, AWS/GCP/Azure credentials, LLM API keys, database passwords, Docker registry tokens, CI/CD secrets, npm/PyPI tokens, Kubernetes secrets, Vault tokens. Every credential accessible on the affected host is compromised.
  7. Audit cloud access logs: Check AWS CloudTrail, GCP Audit Logs, and Azure Activity Log for unauthorised access using potentially stolen credentials.

Long-Term Hardening

Pin dependencies to exact versions and verify package integrity against the upstream source repository, not just the registry’s own RECORD hashes. The attacker regenerated the RECORD file, so standard wheel integrity checks pass. Source-to-artifact comparison is the only reliable detection method.

Enable PyPI Trusted Publishers (OIDC-based publishing) to eliminate long-lived API tokens from CI pipelines. If a pipeline does not need a PyPI token, do not give it one.

Pin all GitHub Actions to full SHA commit hashes. The Trivy compromise that enabled this attack propagated through mutable version tags. Tools like Zizmor, pinact, StepSecurity secure-repo, and Renovate with pinGitHubActionDigests automate this.

Restrict IMDS access from containers using IMDSv2 with hop limits. The stealer actively queries EC2 IMDS for role credentials and uses them to pull Secrets Manager and SSM Parameter Store contents.

Implement a delay before adopting new package versions. Community detection of supply chain attacks typically occurs within hours to days. A 48-72 hour hold for non-critical updates provides a meaningful detection window.

Phoenix Security Recommendations

The LiteLLM compromise is the latest proof that vulnerability management must extend beyond CVE scanning. This attack had no CVE, no CVSS score, and no NVD entry. The compromised package was a security-adjacent tool that handles secrets by design. If your vulnerability management programme only flags known CVEs, this attack was invisible to it.

Attack surface management: Phoenix identifies which environments have LiteLLM installed and maps installed versions against the known-compromised 1.82.7 and 1.82.8 releases. For organisations running LiteLLM across development, staging, and production environments, Phoenix provides a single view of exposure rather than per-environment manual audits.

Reachability analysis: Phoenix distinguishes between environments where litellm 1.82.7 or 1.82.8 was installed and where those versions actually executed during the exposure window. An environment with the package installed but never started during the three-hour window has a different risk profile than one running active LLM proxy traffic.

Ownership attribution: Map each affected deployment to the owning team. When LiteLLM is deployed across multiple teams’ infrastructure, coordinated response requires knowing who owns what. Phoenix maps vulnerable components to responsible teams automatically.

References

ReversingLabs – Checkmarx OpenVSX Extension Compromise

Endor Labs – TeamPCP Isn’t Done: Threat Actor Behind Trivy and KICS Compromises Now Hits LiteLLM’s 95 Million Monthly Downloads on PyPI

JFrog Security Research – Popular litellm Python package is the latest victim of TeamPCP’s ongoing supply chain attack

The Hacker News – TeamPCP Backdoors LiteLLM Versions 1.82.7-1.82.8 Likely via Trivy CI/CD Compromise (Ravie Lakshmanan)

LiteLLM GitHub Issue #24512 – Community tracking of compromise

Wiz Research – Trivy Compromised by TeamPCP (wiz.io)

Wiz Research – KICS GitHub Action Compromised: TeamPCP Supply Chain Attack (wiz.io)

Socket Security – CanisterWorm: npm Publisher Compromise Deploys Backdoor Across 29 Packages

Aikido Security – TeamPCP Deploys CanisterWorm on NPM Following Trivy Compromise

Sysdig TRT – TeamPCP Stealer Detected in Checkmarx ast-github-action

Aqua Security – Trivy Supply Chain Attack: What You Need to Know (aquasec.com)

Aqua Security GitHub Security Advisory GHSA-69fq-xp46-6×23

CrowdStrike – From Scanner to Stealer: Inside the trivy-action Supply Chain Compromise

StepSecurity – Trivy Compromised a Second Time: Malicious v0.69.4 Release

Snyk – Trivy GitHub Actions Supply Chain Compromise


How Phoenix Security Fixes What Actually Matters

Your team doesn’t have a finding problem. They have a fixing problem.

Most platforms hand you a list. Phoenix hands you a plan — ranked by real risk, mapped to the team that owns it, with a clear path to close it.

What remediation looks like with Phoenix:

  • One backlog, not five. Findings from SAST, SCA, containers, and cloud — deduplicated, correlated, and surfaced in a single prioritized queue. No more reconciling lists across tools.
  • Ownership that sticks. Team attribution and inheritance mean the right ticket goes to the right engineer, first time. No routing, no guessing, no back-and-forth.
  • Campaigns that move the needle. Group related findings into targeted remediation campaigns. Track progress, measure closure rates, and report real reduction — not raw counts.
  • AI that does the legwork, not the deciding. Phoenix’s Remediator agent drafts fixes, creates tickets, and opens PRs. Your team reviews, approves, and merges. Every fix is traceable.

Phoenix Security changes the game.

The results are clear:

  • Bazaarvoice saved $6.3M in developer time and for teams removed critical in the first weeks of adoption
  • ClearBank cut critical container vulnerabilities by 96–99% and reclaimed 4 hours per engineer per week.
  • IAS saved an equivalent of 1.5M in development hours and reduced SCA-to-container noise by 82.4%
  • Optimizely has been able to act on vulnerabilities sitting on the backlog.

The pattern is the same every time: teams that move from find and report to analyze and fix close more risk with less effort.

The results are clear:

  • Bazaarvoice saved $6.3M in developer time and for teams removed critical in the first weeks of adoption
  • ClearBank cut critical container vulnerabilities by 96–99% and reclaimed 4 hours per engineer per week.
  • IAS saved an equivalent of 1.5M in development hours and reduced SCA-to-container noise by 82.4%
  • Optimizely has been able to act on vulnerabilities sitting on the backlog.

👉 Book a demo today

Or learn how Phoenix Security slashed millions in wasted dev time for fintech, retail, and adtech leaders.

Fix with remediaiton don’t chase ghost vulnerabilities

Francesco is an internationally renowned public speaker, with multiple interviews in high-profile publications (eg. Forbes), and an author of numerous books and articles, who utilises his platform to evangelize the importance of Cloud security and cutting-edge technologies on a global scale.

Discuss this blog with our community on Slack

Join our AppSec Phoenix community on Slack to discuss this blog and other news with our professional security team

From our Blog

In five days, a single stolen GitHub token became a cascading supply chain compromise spanning Trivy, Checkmarx, OpenVSX, and npm. TeamPCP force-pushed 110+ malicious tags, backdoored container images, weaponised VS Code extensions against local coding agents, and launched a self-propagating npm worm using blockchain C2. If your CI/CD pipelines reference any of these tools by version tag, assume compromise.
Francesco Cipollone
Phoenix Security announced the general availability of its AI-powered Remediation Engine, enabling agentless container vulnerability remediation aligned with CTEM principles. By correlating container lineage to build files, the platform reduces SCA noise by up to 91% and generates precise remediation actions engineers and AI agents can execute instantly.
Francesco Cipollone
Phoenix Security approaches vulnerability management as a remediation engineering problem. By combining reachability analysis, contextual deduplication, and minimal-impact upgrades, Phoenix transforms hundreds of findings into a small set of changes engineers can actually ship.
Francesco Cipollone
Contents
Derek

Derek Fisher

Head of product security at a global fintech

Derek Fisher – Head of product security at a global fintech. Speaker, instructor, and author in application security.

Derek is an award winning author of a children’s book series in cybersecurity as well as the author of “The Application Security Handbook.” He is a university instructor at Temple University where he teaches software development security to undergraduate and graduate students. He is a speaker on topics in the cybersecurity space and has led teams, large and small, at organizations in the healthcare and financial industries. He has built and matured information security teams as well as implemented organizational information security strategies to reduce the organizations risk.

Derek got his start in the hardware engineering space where he learned about designing circuits and building assemblies for commercial and military applications. He later pursued a computer science degree in order to advance a career in software development. This is where Derek was introduced to cybersecurity and soon caught the bug. He found a mentor to help him grow in cybersecurity and then pursued a graduate degree in the subject.

Since then Derek has worked in the product security space as an architect and leader. He has led teams to deliver more secure software in organizations from multiple industries. His focus has been to raise the security awareness of the engineering organization while maintaining a practice of secure code development, delivery, and operations.

In his role, Jeevan handles a range of tasks, from architecting security solutions to collaborating with Engineering Leadership to address security vulnerabilities at scale and embed security into the fabric of the organization.

Jeevan Singh

Jeevan Singh

Founder of Manicode Security

Jeevan Singh is the Director of Security Engineering at Rippling, with a background spanning various Engineering and Security leadership roles over the course of his career. He’s dedicated to the integration of security practices into software development, working to create a security-aware culture within organizations and imparting security best practices to the team.
In his role, Jeevan handles a range of tasks, from architecting security solutions to collaborating with Engineering Leadership to address security vulnerabilities at scale and embed security into the fabric of the organization.

James

James Berthoty

Founder of Latio Tech

James Berthoty has over ten years of experience across product and security domains. He founded Latio Tech to help companies find the right security tools for their needs without vendor bias.

christophe

Christophe Parisel

Senior Cloud Security Architect

Senior Cloud Security Architect

Chris

Chris Romeo

Co-Founder
Security Journey

Chris Romeo is a leading voice and thinker in application security, threat modeling, and security champions and the CEO of Devici and General Partner at Kerr Ventures. Chris hosts the award-winning “Application Security Podcast,” “The Security Table,” and “The Threat Modeling Podcast” and is a highly rated industry speaker and trainer, featured at the RSA Conference, the AppSec Village @ DefCon, OWASP Global AppSec, ISC2 Security Congress, InfoSec World and All Day DevOps. Chris founded Security Journey, a security education company, leading to an exit in 2022. Chris was the Chief Security Advocate at Cisco, spreading security knowledge through education and champion programs. Chris has twenty-six years of security experience, holding positions across the gamut, including application security, security engineering, incident response, and various Executive roles. Chris holds the CISSP and CSSLP certifications.

jim

Jim Manico

Founder of Manicode Security

Jim Manico is the founder of Manicode Security, where he trains software developers on secure coding and security engineering. Jim is also the founder of Brakeman Security, Inc. and an investor/advisor for Signal Sciences. He is the author of Iron-Clad Java: Building Secure Web Applications (McGraw-Hill), a frequent speaker on secure software practices, and a member of the JavaOne Rockstar speaker community. Jim is also a volunteer for and former board member of the OWASP foundation.

Join our Mailing list!

Get all the latest news, exclusive deals, and feature updates.

The IKIGAI concept
x  Powerful Protection for WordPress, from Shield Security PRO
This Site Is Protected By
Shield Security PRO