Shai Hulud-Linked Intrusion Escalated From Jenkins Credentials to AWS Redshift Data Theft

· Original article ↗

Summary

Fortinet details an AWS intrusion involving external use of a Jenkins instance role, privilege escalation, changes to database access controls, and Redshift data access. Investigators say the link to Shai Hulud is strongly supported but not proven.

Key points

  • Investigators found evidence of access to a Jenkins runner and AWS activity in May 2026; they say a connection to prior Shai Hulud exposure is strongly supported but not definitively proven.
  • The attacker retrieved Jenkins EC2 instance credentials through the instance metadata service and used the role from external IP addresses.
  • The actor created an administrator IAM user, modified security groups and database cluster settings, and enumerated Secrets Manager for warehouse credentials.
  • CloudTrail showed repeated Redshift Data API activity; the report says the volume supports data collection and exfiltration, while SQL details were redacted.
  • FortiCNAPP correlated more than 1,300 CloudTrail events and raised alerts for compromised keys, external credential use, privilege escalation, and suspicious secrets enumeration.
  • Defensive recommendations include treating CI/CD runners as tier-0 identities, restricting build-role privileges, alerting on external use of instance credentials, and monitoring database and security-group changes.

Article Details

Attack Vectors
  • Shai Hulud poisoned npm and PyPI packages execute during installation or CI jobs and harvest credentials from build environments.
  • Stolen Jenkins instance-role credentials were used from external IP addresses to access AWS and escalate privileges.
  • The operator created an administrator IAM user, modified security groups and database cluster access controls, enumerated secrets, and queried Redshift.
  • The operator configured S3 policies and assumed roles with exfiltration-related session names; SSM SendCommand was also used on a managed EC2 instance.
  • The article assesses a link between the Shai Hulud activity and the cloud compromise as strongly supported, but says there is no definitive proof that the worm infection caused it.
Defensive Notes
  • Treat CI/CD runners as tier-0 identities: use least-privilege instance profiles and avoid broad secrets or datastore access from build roles.
  • Alert on instance credentials used from external IP addresses and unexpected outbound connections from build runners.
  • Enforce change control and alerting for database-cluster modifications and security-group ingress changes.
  • Monitor suspicious IAM policy names and STS role-session names, including exfil-related names.
  • Investigate package and build-host activity alongside cloud identity and CloudTrail events.

Indicators of compromise

TypeIndicatorContext
IPV4185[.]204[.]1[.]225External operator IP used for the first observed abuse of the Jenkins instance role.
IPV489[.]22[.]231[.]63Primary post-escalation operator IP; also observed in an outbound connection from the Jenkins host on port 8080.

MITRE ATT&CK

T1078.004 · Cloud AccountsThe Jenkins EC2 instance role was used from external IP addresses.T1098 · Account ManipulationThe operator created the cloudops-monitor IAM user, attached AdministratorAccess, and issued access keys.T1195.002 · Compromise Software Supply ChainThe article maps prior Shai Hulud supply-chain exposure and suspected Jenkins persistence to this technique.T1496 · Resource HijackingThe article maps SES quota checks and identity verification staging to this technique.T1526 · Cloud Service DiscoveryThe article maps enumeration of cloud infrastructure and IAM to this technique.T1530 · Data from Cloud StorageThe operator issued repeated Redshift Data API queries against a production warehouse; the article assesses the activity as data collection and exfiltration.T1537 · Transfer Data to Cloud AccountThe operator attached S3 data-lake policies and used AssumeRole sessions named exfil-related values in activity assessed as exfiltration tradecraft.T1552.005 · Cloud Instance Metadata APIThe article reports IMDS access from the Jenkins runner to retrieve instance-role credentials.T1555 · Credentials from Password StoresThe operator enumerated Secrets Manager and retrieved targeted warehouse secrets.T1578 · Modify Cloud Compute InfrastructureThe operator modified security groups, staged EC2 instances, and attached security groups to database clusters.T1580 · Cloud Infrastructure DiscoveryThe operator enumerated AWS infrastructure, including S3, VPC, RDS, and Redshift resources.

Threat Actors

Malware

Vendors

Products

Tools

Related Articles