Skip to main content
GlassWorm Takedown: 157 False Positives LaterIncident
3 min readFor Security Engineers

GlassWorm Takedown: 157 False Positives Later

What Happened

On May 26 at 14:00 UTC, CrowdStrike coordinated the takedown of GlassWorm, a malware operation distributing malicious packages through public repositories. The operation initially seemed successful—infected packages were removed, accounts were suspended, and the threat was neutralized.

However, within days, the operation reconstituted under new accounts and resumed distributing malware. Concurrently, the OSV database withdrew 157 malware reports that were AI-generated false positives. These were not minor errors; they were complete fabrications that security teams had been investigating, leading to potential blocking of legitimate packages.

Timeline

May 26, 14:00 UTC: CrowdStrike-led takedown removes GlassWorm packages and suspends associated accounts across multiple repositories.

May 27-29: Security teams begin triaging alerts and updating blocklists based on disclosed indicators of compromise.

Week of May 30: New accounts appear distributing packages similar to GlassWorm. Attribution suggests the same operators.

Early June: OSV database team identifies and withdraws 157 malware reports after determining they were likely generated by AI systems with insufficient validation.

Ongoing: Security teams continue processing alerts while attempting to distinguish legitimate threats from false positives.

Which Controls Failed or Were Missing

Identity Verification at Registration: Repository platforms allowed account creation with minimal identity checks. Operators created new accounts faster than takedowns could process old ones. There was no requirement for verified organizational identity, no rate limiting on account creation from similar sources, and no probationary period for new publishers.

Package Integrity Validation: Repositories lacked automated behavioral analysis at upload time. Packages with malicious patterns passed validation and became available for download. Systems checked syntax and basic metadata but didn't analyze runtime behavior or flag unusual permission requests.

False Positive Management: The security reporting pipeline feeding the OSV database had no human review for AI-generated findings. Automated reports propagated directly into public vulnerability databases without confidence scoring or secondary validation.

Incident Response Coordination: Organizations lacked a systematic way to validate whether a reported malware package affected their environment before investing investigation time. The 157 false positives meant teams spent hundreds of hours chasing non-existent threats.

What the Relevant Standard Requires

ISO/IEC 27001:2022 Control 8.31 requires maintaining separate environments and controlling code movement between them, including third-party dependencies. The false positive problem complicates this control, as validation processes that include checking vulnerability databases now contend with contaminated data.

NIST 800-53 Rev 5 Control SA-10 requires configuration management throughout the system development lifecycle. When pulling dependencies from public repositories, you must track and verify their integrity. Verification against a database with 157 false positives means either blocking legitimate packages or ignoring warnings.

PCI DSS v4.0.1 Requirement 6.3.2 mandates identifying security vulnerabilities using industry-recognized sources and incorporating them into risk assessment processes. The OSV database qualifies as such a source. When it contains AI-generated false positives, you must assess non-existent risks or face non-compliance for ignoring the source.

The standards assume your threat intelligence is trustworthy. They don't account for when the threat intelligence itself becomes a denial-of-service vector.

Lessons and Action Items for Your Team

Implement Repository-Specific Controls Immediately: Configure your package managers to block first-time publishers by default. In npm, use --ignore-scripts to prevent automatic execution of install hooks. In PyPI, maintain an explicit allowlist of publishers. This friction is intentional and necessary.

Build a False Positive Feedback Loop: Document validation steps and outcomes when your scanner flags a package. Track time spent on false positives to justify investment in better validation tools. Submit corrections back to databases to improve their models.

Create Tiered Response Procedures: Not every alert deserves the same urgency. Document response tiers and train your team to recognize differences. A package flagged after six months of use deserves skepticism, while a zero-day package from a new publisher requires immediate investigation.

Establish a Vendor Communication Channel: Set up monitoring for database changelog feeds. Build relationships with maintainers to stay informed about false positives. Most organizations learned about the OSV withdrawals through security blogs, not automated notifications.

Pressure Repository Platforms for Stronger Publisher Identity: Advocate for stronger identity verification. Repository abuse thrives on free and anonymous account creation. Include repository security in procurement conversations with cloud providers and push for verified publisher programs through industry groups.

The GlassWorm takedown bought you a few days. The 157 false positives cost you weeks. Build defenses that address both issues.

Topics:Incident

You Might Also Like