{"id":11528,"date":"2026-03-22T10:04:06","date_gmt":"2026-03-22T10:04:06","guid":{"rendered":"https:\/\/serisec.com\/index.php\/2026\/03\/22\/hackers-compromise-trivy-scanner-to-inject-malicious-scripts-and-steal-login-credentials\/"},"modified":"2026-03-22T10:04:06","modified_gmt":"2026-03-22T10:04:06","slug":"hackers-compromise-trivy-scanner-to-inject-malicious-scripts-and-steal-login-credentials","status":"publish","type":"post","link":"https:\/\/serisec.com\/index.php\/2026\/03\/22\/hackers-compromise-trivy-scanner-to-inject-malicious-scripts-and-steal-login-credentials\/","title":{"rendered":"Hackers Compromise Trivy Scanner to Inject malicious Scripts and Steal Login Credentials"},"content":{"rendered":"<p>    Hackers Compromise Trivy Scanner to Inject malicious Scripts and Steal Login Credentials<br \/>\n \t<BR><br \/>\n<BR><\/BR><br \/>\n    <!-- no image --><br \/>\n \t<BR><br \/>\n<BR><\/BR><\/p>\n<div>\n<p>A sophisticated supply chain attack targeting the official Trivy GitHub Action (<code>aquasecurity\/trivy-action<\/code>) has compromised continuous integration and continuous deployment (CI\/CD) pipelines globally. <\/p>\n<p>Disclosed in late March 2026, this incident marks the second distinct compromise affecting the Trivy ecosystem within a single month. <\/p>\n<p>Threat actors successfully force-pushed 75 out of 76 existing version tags to distribute a malicious infostealer. With over 10,000 GitHub workflow files relying on this action, the <a href=\"https:\/\/cybersecuritynews.com\/shinyhunters-salesforce-gainsight-breach\/\" type=\"post\" id=\"134133\" target=\"_blank\" rel=\"noreferrer noopener\">potential credential theft<\/a> blast radius is massive.<\/p>\n<h2 class=\"wp-block-heading\" id=\"mechanics-of-the-tag-poisoning-attack\"><strong>Mechanics of the Tag Poisoning Attack<\/strong><\/h2>\n<p>Instead of pushing code to a branch or creating a new release, the attacker leveraged residual write access from an earlier credential breach to alter existing version tags silently. <\/p>\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"590\" src=\"https:\/\/i0.wp.com\/cybersecuritynews.com\/wp-content\/uploads\/2026\/03\/image-10-1024x590.png?resize=1024%2C590&#038;ssl=1\" alt=\"Screenshot of the Socket package page for of the compromised tags (Source: Socket)\" class=\"wp-image-145474\" srcset=\"https:\/\/cybersecuritynews.com\/wp-content\/uploads\/2026\/03\/image-10-1024x590.png 1024w, https:\/\/cybersecuritynews.com\/wp-content\/uploads\/2026\/03\/image-10-300x173.png 300w, https:\/\/cybersecuritynews.com\/wp-content\/uploads\/2026\/03\/image-10-768x443.png 768w, https:\/\/cybersecuritynews.com\/wp-content\/uploads\/2026\/03\/image-10-1536x885.png 1536w, https:\/\/cybersecuritynews.com\/wp-content\/uploads\/2026\/03\/image-10-729x420.png 729w, https:\/\/cybersecuritynews.com\/wp-content\/uploads\/2026\/03\/image-10-696x401.png 696w, https:\/\/cybersecuritynews.com\/wp-content\/uploads\/2026\/03\/image-10-1068x615.png 1068w, https:\/\/cybersecuritynews.com\/wp-content\/uploads\/2026\/03\/image-10-150x86.png 150w, https:\/\/cybersecuritynews.com\/wp-content\/uploads\/2026\/03\/image-10.png 1600w\" sizes=\"(max-width: 1024px) 100vw, 1024px\"><figcaption class=\"wp-element-caption\"><em>Screenshot of the Socket package page for of the compromised tags<\/em> (Source: Socket)<\/figcaption><\/figure>\n<p>The threat actor force-pushed 75 tags, including widely used versions like\u00a0<code>@0.33.0<\/code>\u00a0and\u00a0<code>@0.18.0<\/code>, to point to newly forged commits. <\/p>\n<p>This effectively turned trusted and supposedly immutable version references into a direct distribution mechanism for their <a href=\"https:\/\/cybersecuritynews.com\/fakecaptcha-infrastructure-hellotds\/\" type=\"post\" id=\"110185\" target=\"_blank\" rel=\"noreferrer noopener\">custom infostealer malware<\/a>. <\/p>\n<p>By completely bypassing the need to create new releases, the attacker minimized the chances of triggering automated security alerts or notifying project maintainers of unauthorized branch updates.<\/p>\n<p>To evade detection, the attacker spoofed the Git commit metadata. They cloned the original author names, dates, and commit messages to make the malicious commits appear legitimate in the repository logs. <\/p>\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"943\" height=\"624\" src=\"https:\/\/i0.wp.com\/cybersecuritynews.com\/wp-content\/uploads\/2026\/03\/image-11.png?resize=943%2C624&#038;ssl=1\" alt=\"Trivy Notification (Source: Socket)\" class=\"wp-image-145475\" srcset=\"https:\/\/cybersecuritynews.com\/wp-content\/uploads\/2026\/03\/image-11.png 943w, https:\/\/cybersecuritynews.com\/wp-content\/uploads\/2026\/03\/image-11-300x199.png 300w, https:\/\/cybersecuritynews.com\/wp-content\/uploads\/2026\/03\/image-11-768x508.png 768w, https:\/\/cybersecuritynews.com\/wp-content\/uploads\/2026\/03\/image-11-635x420.png 635w, https:\/\/cybersecuritynews.com\/wp-content\/uploads\/2026\/03\/image-11-696x461.png 696w, https:\/\/cybersecuritynews.com\/wp-content\/uploads\/2026\/03\/image-11-150x99.png 150w\" sizes=\"(max-width: 943px) 100vw, 943px\"><figcaption class=\"wp-element-caption\">Trivy Notification (Source: Socket)<\/figcaption><\/figure>\n<p>The modified code used the current master file tree but swapped the legitimate\u00a0<code>entrypoint.sh<\/code>\u00a0file with an infected version. <\/p>\n<p>Because the malicious commit dates conflicted with the March 2026 parent commit, and the commits lacked GitHub\u2019s web-flow GPG signature, careful inspection reveals the forgery. Notably, version\u00a0<code>@0.35.0<\/code>\u00a0remained untouched and is the only safe tag.<a href=\"https:\/\/socket.dev\/blog\/trivy-under-attack-again-github-actions-compromise\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/p>\n<p>The injected 204-line\u00a0<code>entrypoint.sh<\/code>\u00a0script executes its malicious operations before running the legitimate Trivy scan, allowing it to hide in plain sight. <\/p>\n<p><a href=\"https:\/\/socket.dev\/blog\/trivy-under-attack-again-github-actions-compromise\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">According to Socket<\/a>, the infostealer operates in three distinct stages: targeted collection, robust encryption, and stealthy exfiltration.<a href=\"https:\/\/socket.dev\/blog\/trivy-under-attack-again-github-actions-compromise\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/p>\n<p>During the collection phase, the malware targets both GitHub-hosted and self-hosted runners. On GitHub-hosted Linux environments, it uses passwordless\u00a0<code>sudo<\/code>\u00a0privileges to dump the\u00a0<code>Runner.Worker<\/code>\u00a0process memory and extract secrets directly from the heap. <\/p>\n<p>On self-hosted runners, a comprehensive Python script scrapes the filesystem for sensitive data across multiple directories. <\/p>\n<p>This script systematically hunts for SSH keys, database credentials, CI\/CD configuration files, and even cryptocurrency wallet data, ensuring an extensive haul of valuable information.<a href=\"https:\/\/socket.dev\/blog\/trivy-under-attack-again-github-actions-compromise\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/p>\n<p>In the second stage, the stolen data is compressed and encrypted using AES-256-CBC, and the encryption key is wrapped with an RSA-4096 public key. <\/p>\n<p>Finally, the malware attempts to exfiltrate the encrypted bundle via an HTTPS POST request to a typosquatted domain,\u00a0<code>scan[.]aquasecurtiy[.]org<\/code>. <\/p>\n<p>If this primary channel fails, the script uses the victim\u2019s own<a href=\"https:\/\/cybersecuritynews.com\/north-korean-hackers-weaponizes-github-infrastructure\/\" type=\"post\" id=\"112103\" target=\"_blank\" rel=\"noreferrer noopener\"> GitHub Personal Access Token <\/a>to create a public repository named\u00a0<code>tpcp-docs<\/code>\u00a0and uploads the stolen data as a release asset.<a href=\"https:\/\/socket.dev\/blog\/trivy-under-attack-again-github-actions-compromise\" target=\"_blank\" rel=\"noreferrer noopener\"><\/a><\/p>\n<p>The malware self-identifies as the \u201cTeamPCP Cloud stealer\u201d. Security researchers track TeamPCP as a cloud-native threat actor known for exploiting misconfigured infrastructure for ransomware and cryptomining operations.<a rel=\"noreferrer noopener\" target=\"_blank\" href=\"https:\/\/socket.dev\/blog\/trivy-under-attack-again-github-actions-compromise\"><\/a><\/p>\n<figure class=\"wp-block-table is-style-stripes\">\n<table class=\"has-fixed-layout\">\n<thead>\n<tr>\n<th class=\"has-text-align-left\" data-align=\"left\">Target Category<\/th>\n<th class=\"has-text-align-left\" data-align=\"left\">Specific Files and Variables Hunted<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>SSH and Git<\/td>\n<td>\n<code>id_rsa<\/code>,\u00a0<code>authorized_keys<\/code>,\u00a0<code>.git-credentials<\/code>\u00a0<a rel=\"noreferrer noopener\" target=\"_blank\" href=\"https:\/\/socket.dev\/blog\/trivy-under-attack-again-github-actions-compromise\"><\/a>\n<\/td>\n<\/tr>\n<tr>\n<td>Cloud Providers<\/td>\n<td>\n<code>AWS_*<\/code>,\u00a0<code>AZURE_*<\/code>,\u00a0<code>~\/.config\/gcloud\/*<\/code>\u00a0<a rel=\"noreferrer noopener\" target=\"_blank\" href=\"https:\/\/socket.dev\/blog\/trivy-under-attack-again-github-actions-compromise\"><\/a>\n<\/td>\n<\/tr>\n<tr>\n<td>CI\/CD and Docker<\/td>\n<td>\n<code>terraform.tfstate<\/code>,\u00a0<code>.docker\/config.json<\/code>\u00a0<a rel=\"noreferrer noopener\" target=\"_blank\" href=\"https:\/\/socket.dev\/blog\/trivy-under-attack-again-github-actions-compromise\"><\/a>\n<\/td>\n<\/tr>\n<tr>\n<td>Environment Files<\/td>\n<td>\n<code>.env<\/code>,\u00a0<code>.env.production<\/code>,\u00a0<code>.env.local<\/code>\u00a0<a rel=\"noreferrer noopener\" target=\"_blank\" href=\"https:\/\/socket.dev\/blog\/trivy-under-attack-again-github-actions-compromise\"><\/a>\n<\/td>\n<\/tr>\n<tr>\n<td>Crypto Wallets<\/td>\n<td>\n<code>wallet.dat<\/code>,\u00a0<code>validator-keypair.json<\/code>\u00a0<a rel=\"noreferrer noopener\" target=\"_blank\" href=\"https:\/\/socket.dev\/blog\/trivy-under-attack-again-github-actions-compromise\"><\/a>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<p>Organizations must immediately stop referencing\u00a0<code>trivy-action<\/code>\u00a0by version tags, with the exception of\u00a0<code>@0.35.0<\/code>. To ensure complete security, pipelines should pin the action to the specific safe commit SHA (<code>57a97c7e7821a5776cebc9bb87c984fa69cba8f1<\/code>). <\/p>\n<p>Any environment that executed a poisoned tag must be considered fully compromised. Security teams should urgently rotate all exposed secrets, including cloud credentials and API tokens. <\/p>\n<p>Additionally, administrators should audit their GitHub organizations for unauthorized\u00a0<code>tpcp-docs<\/code>\u00a0repositories.<\/p>\n<p class=\"has-text-align-center has-background\" style=\"background:linear-gradient(180deg,rgb(238,238,238) 94%,rgb(169,184,195) 100%)\"><strong>Follow us on <a href=\"https:\/\/news.google.com\/publications\/CAAqMggKIixDQklTR3dnTWFoY0tGV041WW1WeWMyVmpkWEpwZEhsdVpYZHpMbU52YlNnQVAB?hl=en-IN&amp;gl=IN&amp;ceid=IN:en\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Google News<\/a>, <a href=\"https:\/\/www.linkedin.com\/company\/cybersecurity-news\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">LinkedIn<\/a>, and <a href=\"https:\/\/x.com\/cyber_press_org\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">X<\/a> for daily cybersecurity updates. <a href=\"https:\/\/cybersecuritynews.com\/contact-us\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Contact us<\/a> to feature your stories.<\/strong><\/p>\n<p>The post <a href=\"https:\/\/cybersecuritynews.com\/malicious-script-injection-in-trivy\/\">Hackers Compromise Trivy Scanner to Inject malicious Scripts and Steal Login Credentials<\/a> appeared first on <a href=\"https:\/\/cybersecuritynews.com\/\">Cyber Security News<\/a>.<\/p>\n<\/div>\n<p> \t<BR><br \/>\n <BR><\/BR><br \/>\n    Dhivya<br \/>\n \t<BR><br \/>\n<BR><\/BR><br \/>\n<a href=\"https:\/\/cybersecuritynews.com\/malicious-script-injection-in-trivy\/\">Go to cyber-security-news<\/a><br \/>\n \t<BR><br \/>\n <BR><\/BR><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hackers Compromise Trivy Scanner to Inject malicious Scripts and Steal Login Credentials A sophisticated supply chain attack targeting the official Trivy GitHub Action (aquasecurity\/trivy-action) has compromised continuous integration and continuous deployment (CI\/CD) pipelines globally. Disclosed in late March 2026, this incident marks the second distinct compromise affecting the Trivy ecosystem within a single month. Threat [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1636,129,63],"tags":[130],"class_list":["post-11528","post","type-post","status-publish","format-standard","hentry","category-cyber-attack-news","category-cyber-security","category-cyber-security-news","tag-cyber-security-news"],"_links":{"self":[{"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/posts\/11528"}],"collection":[{"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/comments?post=11528"}],"version-history":[{"count":0,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/posts\/11528\/revisions"}],"wp:attachment":[{"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/media?parent=11528"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/categories?post=11528"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/tags?post=11528"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}