Assume compromise
“Users who installed 0.23.3, or who pulled and ran the affected Docker image, should assume that any credentials accessible to the environment where it ran may have been exposed,” the developers wrote.
The threat actor gained access to the developers’ account by exploiting a vulnerability in a GitHub action they created. By posting malicious code to a pull request, the attackers were able to run a bash script that ran inside the developer’s account. The bash script retrieved the sensitive data. With the account tokens and signing keys, the attacker went on to publish a malicious element-data package that was nearly indistinguishable from a legitimate one.
Ars Video
What Happens to the Developers When AI Can Code? | Ars Frontiers
The developers learned of the compromise from a third-party issue report. Within three hours, the package was removed. Element developers said they also rotated all credentials that the malicious code had access to. They have further fixed the vulnerability and audited all their other GitHub actions to ensure none contain the same flaw.
The developers are urging all developers who installed version 0.23.3 to take the following steps immediately:
> 1. Check your installed version: > > > `pip show elementary-data | grep Version` > > > 2. If the version is 0.23.3, uninstall it and replace it with the safe version: > > > `pip uninstall elementary-data` > > > `pip install elementary-data==0.23.4` > > > In your requirements and lockfiles, pin explicitly to elementary-data==0.23.4. > > > 3. Delete your cache files to avoid any artifacts. > > > 4. Check for the malware’s marker file on any machine where the CLI may have run: If this file is present, the payload executed on that machine. > > > `macOS / Linux: /tmp/.trinny-security-update` > > > `Windows: %TEMP%\\.trinny-security-update` > > > 5. Rotate any credentials that were accessible from the environment where 0.23.3 ran – dbt profiles, warehouse credentials, cloud provider keys, API tokens, SSH keys, and the contents of any .env files. CI/CD runners are especially exposed because they typically have broad sets of secrets mounted at runtime. > > > 6. Contact your security team to hunt for unauthorized usage of exposed credentials. The relevant IOCs are at the bottom of this post.
Over the past decade, supply-chain attacks on open source repositories have become increasingly common. In some cases, they have achieved a chain of compromises as the malicious package leads to breaches of users and, from there, breaches resulting from the compromise of the users’ environments.
HD Moore, a hacker with more than four decades of experience and the founder and CEO of runZero, said that user-developed repository workflows, such as GitHub actions, are notorious for hosting vulnerabilities.
It’s a “a major problem for open source projects with open repos,” he said. “It’s really hard to not accidentally create dangerous workflows that can be exploited by an attacker’s pull request.”
He said this package can be used to check for such vulnerabilities. Senior Security Editor
Senior Security Editor
Dan Goodin is Senior Security Editor at Ars Technica, where he oversees coverage of malware, computer espionage, botnets, hardware hacking, encryption, and passwords. In his spare time, he enjoys gardening, cooking, and following the independent music scene. Dan is based in San Francisco. Follow him at here on Mastodon and on Bluesky. Contact him on Signal at DanArs.82.