When Fortune 500 Companies Leave the Door Wide Open: Why Infrastructure Sanitization Matters
On January 21, 2026, Pentera Labs published research titled "When the Lab Door Stays Open" revealing that Fortune 500 companies and major security vendors had left intentionally vulnerable training applications exposed on their production cloud infrastructure. Attackers didn't need sophisticated exploits. They simply walked through unlocked doors, stole cloud credentials, and deployed cryptocurrency miners.
This wasn't hacking. This was digital robbery enabled by poor infrastructure hygiene.
The Numbers That Matter
What Happened?
Organizations deployed intentionally vulnerable applications like DVWA (Damn Vulnerable Web Application), OWASP Juice Shop, and Hackazon for security training purposes. These apps are designed to be exploited — that's their purpose.
The problem? They were deployed on production cloud accounts with:
Default credentials (admin:password)
No network isolation from production resources
Overly permissive IAM roles attached
Public IP addresses accessible from the internet
| Organization Type | Examples | Status |
|---|---|---|
| Fortune 500 Companies | Multiple (unnamed) | Notified & Remediated |
| Security Vendors | Cloudflare, F5, Palo Alto Networks | Notified & Remediated |
| Cloud Platforms Affected | AWS, GCP, Azure | ~60% of instances |
The Attack: Zero Skill Required
This wasn't a sophisticated nation-state attack. This was automated scavenging — the digital equivalent of burglars walking down a street trying door handles.
| Metric | Value |
|---|---|
| Skill Required | Script kiddie level |
| Cost | $0 |
| Time | Minutes (automated) |
| Tools | Shodan, curl, XMRig |
The Cloud Metadata Attack Vector
The critical vulnerability that enabled cloud takeover was the Instance Metadata Service (IMDS) at 169.254.169.254. This service provides cloud credentials to any process running on the instance.
How Credential Theft Works
The attack chain from initial compromise to full cloud takeover requires only basic commands. Here's the exact sequence:
Phase 1: Initial Access via DVWA Command Injection
Phase 2: Enumerate Cloud Environment
Phase 3: Extract IAM Credentials
| Credential Field | Purpose | Risk |
|---|---|---|
| AccessKeyId | Identifies the credential | Used in API calls |
| SecretAccessKey | Signs API requests | Full authentication |
| Token | Session token for temporary creds | Required for STS-based roles |
| Expiration | Credential lifetime (max 6 hours) | Can be refreshed while access persists |
Phase 4: Cloud Takeover (From Attacker's Machine)

What the 109 exposed credential sets could access:
The 7 Sanitization Sins
Based on this incident, here are the critical hygiene failures that enabled the breach:
Sin #1: Default Credentials Left Unchanged
- Deployed DVWA with admin:password
- Never changed default configurations
- Change ALL default credentials immediately
- Use strong, unique passwords or SSO/MFA
Sin #2: No Network Isolation
- Training app on same network as production
- Public IP assigned to test environment
- No firewall rules restricting access
- Separate VPC/VNET for non-production
- No public IP for internal tools
- Allowlist-only access (VPN, bastion)
Sin #3: Overly Permissive IAM Roles
- Attached admin-level IAM role to training VM
- Same permissions as production workloads
- Access to S3, Secrets Manager, everything
- No IAM role for training apps (or minimal read-only)
- Separate AWS account for sandboxes
- Least privilege always
Sin #4: Cloud Metadata Service Unprotected
- IMDSv1 enabled (no token required)
- No iptables rules blocking metadata access
- Credentials accessible via simple curl
- Enforce IMDSv2 (token-based)
- Block 169.254.169.254 from containers
- Use IRSA for Kubernetes workloads
Sin #5: No Asset Inventory
- Spun up training app, forgot about it
- No tracking of non-production resources
- Shadow IT flourished
- Maintain complete cloud inventory
- Tag all resources with owner, purpose, expiry
- Regular audits of running instances
Sin #6: No Lifecycle Management
- Training app ran indefinitely
- No auto-expiration policy
- Resources accumulated over time
- Auto-terminate after X hours/days
- Require renewal justification
- Scheduled cleanup jobs
Sin #7: "It's Just a Test Environment" Mentality
- Treated training apps as non-critical
- Applied no security controls
- Assumed isolation that didn't exist
- Treat all internet-facing resources as production
- Apply same security rigor to all environments
Remediation Commands
AWS: Enforce IMDSv2
Block Metadata from Containers
Kubernetes NetworkPolicy
The Cost of Neglect
| Impact | This Incident | Potential Worst Case |
|---|---|---|
| Crypto Mining | Victim pays for compute | Massive cloud bills |
| Data Exposure | 109 credential sets found | Customer data breach |
| Lateral Movement | Access to prod resources | Full infrastructure compromise |
| Reputation | Security vendors embarrassed | Loss of customer trust |
| Compliance | Unknown | GDPR/SOC2/HIPAA violations |
Key Takeaways
Conclusion
The attackers in this incident didn't demonstrate any sophisticated capabilities. They didn't need to. Fortune 500 companies and security vendors left the door wide open, the alarm disabled, and the keys on the counter.
Infrastructure sanitization isn't glamorous. It's not cutting-edge. But it's the difference between being a hard target and being easy money for automated crypto miners.
The question isn't whether someone will try your door handle. They will — within minutes of your system going online. The question is whether you've locked the door.
References
Primary Sources:
BleepingComputer — Hackers exploit security testing apps to breach Fortune 500 firms
SiliconANGLE — Pentera Labs: When the Lab Door Stays Open
Help Net Security — Exposed training apps in cloud attacks
Technical References: