Full Report
A data breach involving Elementary Data was reported in April 2026. See incident details, impact on customers, and recommended security measures.
Analysis Summary
# Incident Report: Supply Chain Compromise of Elementary Data PyPI Package
## Executive Summary
In April 2026, Elementary Data suffered a high-severity software supply chain attack stemming from a script-injection vulnerability in their GitHub Actions pipeline. Threat actors successfully distributed a malicious version of the `elementary-data` PyPI package (v0.23.3) and poisoned Docker images to harvest developer secrets and cryptocurrency wallets. The incident was contained through the release of a clean version (v0.23.4), though the impact remains high for users who installed the malicious version.
## Incident Details
- **Discovery Date:** April 28, 2026
- **Incident Date:** Reported April 28, 2026 (Active period included the release of v0.23.3)
- **Affected Organization:** Elementary Data (elementary-data[.]com)
- **Sector:** Data Observability / Software Development Tools
- **Geography:** Global (Supply chain impact)
## Timeline of Events
### Initial Access
- **Date/Time:** Pre-April 28, 2026
- **Vector:** CI/CD Pipeline Vulnerability
- **Details:** Attackers exploited a script-injection vulnerability within the project's GitHub Actions pipeline.
### Lateral Movement
- **Movement:** The attackers leveraged the compromised pipeline to forge a verified release commit, moving from the CI environment to the public distribution platforms (PyPI and GitHub Container Registry).
### Data Exfiltration/Impact
- **Exfiltration:** The malicious package (v0.23.3) was designed to immediately harvest cloud access tokens, API keys, and cryptocurrency wallet data from the environment where it was installed.
### Detection & Response
- **Detection:** Publicly reported and confirmed on April 28, 2026.
- **Response actions:** Release of version 0.23.4 to remediate the vulnerability and public advisory issued to customers for secret rotation.
## Attack Methodology
- **Initial Access:** Script-injection in GitHub Actions.
- **Persistence:** Not explicitly detailed, but maintained via legitimate distribution channels (PyPI/GHCR).
- **Privilege Escalation:** Forging verified release commits to gain repository-owner level trust.
- **Defense Evasion:** Distribution through verified, signed official package channels to bypass standard security filters.
- **Credential Access:** Automated scraping of environment variables, cloud tokens, and local wallet files.
- **Discovery:** Automated scanning of the host environment upon package installation.
- **Lateral Movement:** Supply chain injection (moving from vendor CI/CD to customer environments).
- **Collection:** Targeting sensitive developer secrets and financial assets.
- **Exfiltration:** Automated transmission of stolen secrets to attacker-controlled infrastructure.
- **Impact:** Financial loss (crypto theft) and potential for secondary breaches via stolen cloud tokens.
## Impact Assessment
- **Financial:** High; direct theft of cryptocurrency wallets and potential costs associated with cloud infrastructure compromise.
- **Data Breach:** High; theft of sensitive developer secrets, API keys, and cloud access tokens.
- **Operational:** Significant; necessitated immediate package upgrades, secret rotation, and infrastructure auditing for all customers.
- **Reputational:** High; compromise of a trusted data observability provider's primary software distribution.
## Indicators of Compromise
- **File indicators:** `elementary-data` PyPI package version 0.23.3; poisoned Docker images pulled from GHCR during the breach window.
- **Behavioral indicators:** Unusual outbound network traffic from CI/CD runners or developer workstations following the installation of v0.23.3; unauthorized access to cloud environments using developer tokens.
## Response Actions
- **Containment:** Release of version 0.23.4 and removal/deprecation of version 0.23.3.
- **Eradication:** Advisory issued to audit environments and delete poisoned Docker images.
- **Recovery:** Instructions provided to customers to rotate all potentially exposed secrets and API keys.
## Lessons Learned
- **CI/CD Vulnerability:** Automated pipelines are high-value targets; script-injection protections in GitHub Actions are critical.
- **Trust Management:** Even verified commits and official packages can be compromised if the underlying automation is insecure.
- **Visibility:** A Software Bill of Materials (SBOM) and dependency pinning are essential for identifying impact during supply chain attacks.
## Recommendations
- **Prevention:** Implement strict script-injection protections and environment protections in GitHub Actions.
- **Best Practices:** Use dependency pinning (e.g., `requirements.txt` with hashes) to prevent automatic updates to compromised versions.
- **Monitoring:** Deploy continuous attack surface management and monitor cloud access logs for anomalous credential usage.