{"id":12437,"date":"2026-04-28T10:03:44","date_gmt":"2026-04-28T10:03:44","guid":{"rendered":"https:\/\/serisec.com\/index.php\/2026\/04\/28\/popular-pypi-package-with-1-million-monthly-downloads-hacked-to-inject-malicious-scripts\/"},"modified":"2026-04-28T10:03:44","modified_gmt":"2026-04-28T10:03:44","slug":"popular-pypi-package-with-1-million-monthly-downloads-hacked-to-inject-malicious-scripts","status":"publish","type":"post","link":"https:\/\/serisec.com\/index.php\/2026\/04\/28\/popular-pypi-package-with-1-million-monthly-downloads-hacked-to-inject-malicious-scripts\/","title":{"rendered":"Popular PyPI Package With 1 Million Monthly Downloads Hacked to Inject Malicious Scripts"},"content":{"rendered":"<p>    Popular PyPI Package With 1 Million Monthly Downloads Hacked to Inject Malicious Scripts<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 major software <a href=\"https:\/\/cybersecuritynews.com\/bitwarden-cli-compromised\/\" target=\"_blank\" rel=\"noreferrer noopener\">supply chain attack<\/a> has compromised the popular Python package\u00a0elementary-data, exposing thousands of developers to massive credential theft.<\/p>\n<p>Threat actors successfully pushed a malicious version, 0.23.3, to the Python Package Index (PyPI) and poisoned the matching Docker images on <span style=\"box-sizing: border-box; margin: 0px; padding: 0px;\">the<a href=\"https:\/\/cybersecuritynews.com\/top-container-image-security-platforms\/\" target=\"_blank\" rel=\"noopener\">\u00a0GitHub<\/a><\/span> Container Registry (GHCR).<\/p>\n<p>With over one million monthly downloads, this widely used dbt data observability tool represents a highly lucrative target for cybercriminals.<\/p>\n<p>As detailed by StepSecurity researchers, the attack did not rely on stolen developer passwords.<\/p>\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEj3ZUB7Bf9pa9dvF1duv1DN9jzTlBudvVHn7-6Li91RINTKcLeJ3QbLgVQRxSWWjE1Mf57cbn3IIyYW7IrxrzEX1ldHjKzkaIoFeox1CKIB0rz-aI90aHtz9jRBjqWIdxu3D_4srMgijxbJk8MIiM5mIOptO446XIRvHmmFiFupgcIUUzSo_2dNX2zx118\/s1600\/Screenshot%25202026-04-28%2520104910%2520%25281%2529.webp?ssl=1\" alt=\"the original community report(source : stepsecurity )\"><figcaption class=\"wp-element-caption\"><em>the original community report<\/em> (source : stepsecurity )<\/figcaption><\/figure>\n<p>Instead, hackers exploited a <a href=\"https:\/\/cybersecuritynews.com\/openvpn-vulnerability-exposes-systems\/\" target=\"_blank\" rel=\"noreferrer noopener\">script-injection vulnerability<\/a> in the project\u2019s GitHub Actions pipeline.<\/p>\n<h2 class=\"wp-block-heading\" id=\"h-information-stealer-payload\"><strong>Information Stealer Payload<\/strong><\/h2>\n<p>A newly created GitHub account posted a malicious script in an open pull request comment.<\/p>\n<p>Because the automated workflow failed to process this comment safely, the system executed the code.<\/p>\n<p>Using the workflow\u2019s built-in access token, the attacker forged a verified release commit and triggered the official publishing process without ever touching the main codebase.<\/p>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjkGLlHgRst1M4JFmG5sNgtzxAMqPJngS1pd0GgYNbnVAj_4NcL5q07RKok7imhhHYhyphenhyphenIXPjSkoI9Exi1CxWlObzfgI7CospEKnKcauQkw6xrWjNipTwjFHqLESSU59rBW8YHCnM75GBUvLoFOKA6Ip_w4uiVCdHRkVxctkAXbGrWfRG_5XcI_PNhBOkSI\/s1600\/Screenshot%202026-04-28%20104927%20%281%29.web\" alt=\"The malicious elementary-data 0.23.3 release was listed as the latest on PyPI(source :  stepsecurity)\"><figcaption class=\"wp-element-caption\">The malicious elementary-data 0.23.3 release was listed as the latest on PyPI (Source: stepsecurity)<\/figcaption><\/figure>\n<p>Once installed, the compromised package drops a single malicious file named\u00a0elementary.pth\u00a0into the environment.<\/p>\n<p>Since Python automatically runs\u00a0.pth\u00a0files whenever the interpreter starts, <a href=\"https:\/\/cybersecuritynews.com\/new-malware-uses-obfuscation-and-staged-payload\/\" target=\"_blank\" rel=\"noreferrer noopener\">the malware<\/a> activates immediately on any machine where the package is installed.<\/p>\n<p>According to threat intelligence reports, the payload is a sophisticated, three-stage information stealer that actively hunts for critical developer secrets and credentials.<\/p>\n<p>It systematically targets and steals:<\/p>\n<ul class=\"wp-block-list\">\n<li>Cloud access tokens for AWS, Google Cloud, and Azure.<\/li>\n<li>\n<a href=\"https:\/\/cybersecuritynews.com\/ssh-keys\/\" target=\"_blank\" rel=\"noreferrer noopener\">SSH private keys<\/a> and Git credentials.<\/li>\n<li>Kubernetes service account tokens and Docker configurations.<\/li>\n<li>Environment (.env) files containing application secrets.<\/li>\n<li>Multiple cryptocurrency wallets, including Bitcoin and Ethereum.<\/li>\n<\/ul>\n<p>All stolen data is compressed into an archive and silently sent to a remote, attacker-controlled command-and-control server.<\/p>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEju4v8zzTIhrYJdnT_Ljwjf4P-7Ut01kCSnHMuyHPuV40LqOKQto0sj16X5k1-3-m4-QZnYt3L7su2O6WES6kbU4xyjGtwpFmBzYWa5-5KV36GubQc4RzCUuuRFTXW9IyxWwf4h9ITUxGFFSDojITNDXU8iElQHcRv2YOqo-TOShSYog2gD90d9PqDmfWo\/s1600\/Screenshot%202026-04-28%20104941%20%281%29.web\" alt=\"The malicious elementary.pth file shipped inside the wheel(source : stepsecurity)\"><figcaption class=\"wp-element-caption\"><em>The malicious elementary.pth file shipped inside the wheel<\/em>(source : stepsecurity)<\/figcaption><\/figure>\n<h2 class=\"wp-block-heading\" id=\"h-affected-versions\"><strong>Affected Versions<\/strong><\/h2>\n<p>To check if you are impacted, <a href=\"https:\/\/www.stepsecurity.io\/blog\/elementary-data-compromised-on-pypi-and-ghcr-forged-release-pushed-via-github-actions-script-injection\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">StepSecurity advises<\/a> reviewing your installed builds.<\/p>\n<p>The compromised version of the\u00a0elementary-data\u00a0PyPI package is 0.23.3. However, users are safe if they use version 0.23.4 or the earlier 0.23.2.<\/p>\n<p>Similarly, the affected Docker image is\u00a0ghcr.io\/elementary-data\/elementary:0.23.3, while version 0.23.4 (or 0.23.2) is clean.<\/p>\n<p>Furthermore, if you are using the\u00a0latest<a href=\"https:\/\/cybersecuritynews.com\/trivy-supply-chain-attack-expands-as-compromised-docker\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u00a0Docker image<\/a> tag with a digest ending in\u00a0634255, your environment is compromised.<\/p>\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEgu93HUaT54u9oGALIZDewxaHCvJsAIFlSy3r6VffiJu_GqyboqkS9LW2g7_GeWNoug5hu57vjcMW-SMbDrsCVN2d2Gw-tXZIu0dP1eOicub7_OGCE3s9G_sgvCJWKVgIT-iq9yMlgXXzEajD6sMFl443o-sVuEW5wFBwaMsVOzxRYcqhJUBchF5KCO6TY\/s1600\/Screenshot%25202026-04-28%2520104951%2520%25281%2529.webp?ssl=1\" alt=\"The injected payload running inside the workflow(source : stepsecurity)\"><figcaption class=\"wp-element-caption\">The injected payload running inside the workflow (source: stepsecurity)<\/figcaption><\/figure>\n<p>StepSecurity warns that you must ensure your\u00a0latest\u00a0tag is updated to the newly provided clean build.<\/p>\n<p>Thanks to the quick action of community members\u00a0Crisperik\u00a0and\u00a0H-Max, who spotted the malicious code, the maintainers were alerted within hours.<\/p>\n<p>The Elementary team immediately removed the dangerous 0.23.3 version from PyPI and GHCR, releasing a clean 0.23.4 replacement the same day.<\/p>\n<p>Developers who were exposed to the malicious update must fully rotate all credentials, API keys, and database passwords on the affected machines.<\/p>\n<p>Enable <a href=\"https:\/\/cybersecuritynews.com\/understanding-the-importance-of-two-factor-authentication-in-online-gaming\/\" target=\"_blank\" rel=\"noreferrer noopener\">two-factor authentication<\/a> on all vital infrastructure and pin future package dependencies to specific, verified versions to stop automatic malicious updates.<\/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\/pypi-package-hacked-with-malware\/\">Popular PyPI Package With 1 Million Monthly Downloads Hacked to Inject Malicious Scripts<\/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    Abinaya<br \/>\n \t<BR><br \/>\n<BR><\/BR><br \/>\n<a href=\"https:\/\/cybersecuritynews.com\/pypi-package-hacked-with-malware\/\">Go to cyber-security-news<\/a><br \/>\n \t<BR><br \/>\n <BR><\/BR><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Popular PyPI Package With 1 Million Monthly Downloads Hacked to Inject Malicious Scripts A major software supply chain attack has compromised the popular Python package\u00a0elementary-data, exposing thousands of developers to massive credential theft. Threat actors successfully pushed a malicious version, 0.23.3, to the Python Package Index (PyPI) and poisoned the matching Docker images on the\u00a0GitHub [&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,937],"tags":[130],"class_list":["post-12437","post","type-post","status-publish","format-standard","hentry","category-cyber-attack-news","category-cyber-security","category-cyber-security-news","category-python","tag-cyber-security-news"],"_links":{"self":[{"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/posts\/12437"}],"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=12437"}],"version-history":[{"count":0,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/posts\/12437\/revisions"}],"wp:attachment":[{"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/media?parent=12437"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/categories?post=12437"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/serisec.com\/index.php\/wp-json\/wp\/v2\/tags?post=12437"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}