<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Trivy security Incident]]></title><description><![CDATA[Trivy security Incident]]></description><link>https://trivyincident.hashnode.dev</link><image><url>https://cdn.hashnode.com/uploads/logos/6994a3b11f1d73d80adf3b10/1cd362a5-8fd0-45cf-bb81-56993b8f3a28.png</url><title>Trivy security Incident</title><link>https://trivyincident.hashnode.dev</link></image><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 23:19:27 GMT</lastBuildDate><atom:link href="https://trivyincident.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Trivy Wiped: How an AI-Driven Supply‑Chain Attack Emptied a Major Repo]]></title><description><![CDATA[The popular open-source tool Trivy was fully compromised on GitHub as part of a wider attack impacting several high-profile repositories. During the incident:  
The entire Trivy GitHub repository was ]]></description><link>https://trivyincident.hashnode.dev/trivy-wiped-how-an-ai-driven-supply-chain-attack-emptied-a-major-repo</link><guid isPermaLink="true">https://trivyincident.hashnode.dev/trivy-wiped-how-an-ai-driven-supply-chain-attack-emptied-a-major-repo</guid><dc:creator><![CDATA[Naresh Kumar Murugan]]></dc:creator><pubDate>Thu, 05 Mar 2026 18:00:58 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6994a3b11f1d73d80adf3b10/002ee968-00f5-4aab-b9a6-e9427af19e36.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The popular open-source tool Trivy was fully compromised on GitHub as part of a wider attack impacting several high-profile repositories. During the incident:  </p>
<p>The entire Trivy GitHub repository was emptied — all source code, history, releases, and assets were deleted or replaced with an empty repository.  </p>
<p>What actually was compromised  </p>
<p>The popular open-source tool Trivy (a vulnerability scanner maintained by Aqua Security) was fully compromised on GitHub as part of a wider attack impacting several high-profile repositories. During the incident:  </p>
<p>The entire Trivy GitHub repository was emptied — all source code, history, releases, and assets were deleted or replaced with an empty repository.  </p>
<p>Releases and binaries were temporarily unavailable, breaking CI/CD pipelines and automation that pull Trivy assets.  </p>
<p> How the compromise occurred<br />The root cause wasn’t traditional malware or a leak in Trivy itself — it was a supply-chain compromise involving GitHub Actions workflows:<br />1. Automated AI bot exploited misconfigured CI/CD workflows<br />Security researchers observed an autonomous AI agent scanning public repositories for poorly secured GitHub Actions workflows.<br />This bot targeted repositories with workflows that could be abused without adequate review or safeguards.<br />It used techniques like hiding malicious payloads in unusual places (branch names, file names, etc.) that triggered automated workflows.<br />2. Remote code execution via GitHub Actions<br />Once the malicious PR branch triggered a workflow, the runner executed code chosen by the bot. In the worst-case scenario like Trivy:<br />The bot was able to achieve remote code execution in a GitHub Actions runner.<br />That allowed it to exfiltrate a GitHub Personal Access Token (PAT) with write rights.<br />3. Use of stolen token to destroy/modify the repo<br />With the stolen PAT:<br />The attacker deleted all 178 Trivy release tags and associated assets.<br />The attacker replaced the public repository with an empty one (effectively removing the codebase).<br />In simpler terms:<br />a misconfigured CI/CD workflow allowed an automated agent to trick GitHub Actions into running rogue steps, leading to a leaked credential, and that credential was then used to delete and rewrite the Trivy repo.  </p>
<p>Solution 1:<br />Lock Down GITHUB_TOKEN Permissions (Least Privilege)<br />By default, GITHUB_TOKEN may have more permissions than needed.<br />✅ Best Practice<br />Explicitly define minimal permissions in every workflow:<br />permissions:<br /> contents: read<br /> pull-requests: read  </p>
<p>Only grant write if absolutely required:  </p>
<p>permissions:<br />contents: write<br />packages: write  </p>
<p>Solution 2: Never Run Untrusted Code with Write Tokens<br />The most dangerous pattern:<br />on: pull_request  </p>
<p>This runs code from forks.<br />If that job has:<br />contents: write<br />access to secrets<br />release permissions You are exposed.</p>
]]></content:encoded></item></channel></rss>