January 19, 2026
๐ฅ Palette Cleanser
This week's chef's selection is some of the best cloud hacking content you'll ever read. Both issues are now fixed, but the hacks were so elegant you need to see them anyway. No assembly, no extravagant exploits. Just busted logic and doing what it takes. Easy-to-follow explanations too. What a start to 2026!
Have feedback about AWS Security Digest? Tell us here. This issue is also available to share online.
๐ Chef's selections
-
CodeBreach: Infiltrating the AWS Console Supply Chain and Hijacking AWS GitHub Repositories via CodeBuild by Yuval Avrahami and Nir Ohfeld
This is such epic hacking. Yuval and Nir found that AWS CodeBuild's webhook filters used unanchored regex to validate GitHub user IDs, meaning 12345 would match any ID containing those digits. Since GitHub assigns sequential IDs, researchers could wait for a new account to "eclipse" a trusted maintainer's ID as a substring. They timed 200 simultaneous GitHub App creations to snag the right ID, submitted a malicious PR, and extracted the aws-sdk-js-automation token, which had push access to the SDK used in 66% of cloud environments.
-
Unauth AWS ROSA Cluster Takeover by Ryan Gerstenkorn
If the CodeBuild thing was epic, this hack is elegant. ROSA is AWS's managed Red Hat OpenShift service, and Red Hat's cluster transfer API at api.openshift.com had a classic oopsie. It verified recipients could accept clusters but never checked whether the requester actually owned what they were transferring. An unauthenticated attacker could grab any cluster's UUID from its public endpoint, submit a transfer request, and own someone else's production Kubernetes cluster within 24 hours. From there, Ryan used some more magic to turn cluster-admin into access to AWS accounts.
-
AWS federated identity access to Azure by Paul Schwarzenberger
Paul saved us from having only hacking content. AWS's new Outbound Identity Federation from re:Invent 2025 lets you ditch stored Azure credentials entirely. Your AWS IAM role calls aws sts get-web-identity-token, gets a JWT, and uses it to az login with an Entra ID app registration that trusts your AWS token issuer. The walkthrough shows a Lambda accessing Azure Storage blobs without a secret in sight.
๐ฅ AWS security blogs
- ๐ฃ AWS Data Exports adds granular operation visibility for Amazon Bedrock model usage
- ๐ฃ Amazon Inspector adds Java Gradle support and expands ecosystem coverage
- Securing Amazon Bedrock cross-Region inference: Geographic and global by Zohreh Norouzi
- Schedule AWS Elemental MediaLive channel operations with AWS EventBridge by Jacky Kwok
- Implementing data governance on AWS: Automation, tagging, and lifecycle strategy โ Part 2 by Omar Ahmed
- Implementing data governance on AWS: Automation, tagging, and lifecycle strategy โ Part 1 by Omar Ahmed
- Streamline security response at scale with AWS Security Hub automation by Ahmed Adekunle
๐ Reddit threads on r/aws
๐ธ Sponsor shoutout
Meet Pleri: your AI-powered cloud security teammate. Sheโs not a chatbot. Pleri proactively finds meaningful security work and fixes issues before they become problems.
Learn more about Pleri and see her in action.
๐ค Dessert
Dessert is made by robots, for those that enjoy the industrial content.
๐ง IAM permission changes
๐ช API changes
- Amazon Connect Service
- Amazon DataZone
- AWS Launch Wizard
- AWS Resource Explorer
- AWS Clean Rooms Service
- AWSDeadlineCloud
- Amazon EC2 Container Service
- Amazon Elastic VMware Service
- AWS Lake Formation
- OpenSearch Service Serverless
- Amazon Q Connect
- Amazon Connect Service
- Amazon Elastic Kubernetes Service
- Redshift Serverless
- Amazon Redshift
- AWS End User Messaging Social
- Amazon DataZone
- AWS Billing
- Managed integrations for AWS IoT Device Management
- Amazon SageMaker Service
๐น IAM managed policy changes
โ CloudFormation resource changes
-
No resource updates this week.
๐ฎ Amazon Linux vulnerabilities
- CVE-2025-59464: Node.js TLS client cert memory leak enables DoS
- CVE-2025-55131: Node.js vm module exposes uninitialized memory
- CVE-2026-21636: Node.js permission model bypass via Unix sockets
- CVE-2025-55132: Node.js fs.futimes bypasses read-only permissions
- CVE-2025-55130: Node.js symlink bypass of filesystem permissions
- CVE-2026-21637: Node.js TLS callback causes DoS and FD leak
- CVE-2025-59465: Node.js HTTP/2 crash on malformed HEADERS
- CVE-2025-59466: Node.js async_hooks stack overflow crash
- CVE-2026-22857: FreeRDP heap use-after-free in IRP thread
- CVE-2026-22854: FreeRDP drive read heap buffer overflow
- CVE-2026-22853: FreeRDP RDPEAR NDR heap buffer overflow
- CVE-2026-22859: FreeRDP URBDRC out-of-bounds read
- CVE-2026-0962: Wireshark SOME/IP-SD dissector crash
- CVE-2026-0665: QEMU KVM Xen off-by-one heap access
- CVE-2025-14242: vsftpd STAT command integer overflow DoS
- CVE-2026-22856: FreeRDP serial channel race condition UAF
- CVE-2026-22852: FreeRDP Audio Input heap buffer overflow
- CVE-2026-22851: FreeRDP SDL render thread race UAF
- CVE-2026-22036: undici unbounded decompression DoS
- CVE-2026-22858: FreeRDP Base64 buffer overflow on ARM
- CVE-2026-0961: Wireshark BLF parser crash
- CVE-2026-0960: Wireshark HTTP3 dissector infinite loop
- CVE-2026-22855: FreeRDP smartcard heap out-of-bounds read
- CVE-2026-0959: Wireshark 802.11 dissector crash
- CVE-2025-56226: libsndfile MPEG encoder memory leak
- CVE-2026-0888: Firefox XML component info disclosure
- CVE-2026-0887: Firefox PDF Viewer clickjacking
- CVE-2026-22791: openCryptoki ECDH key wrap heap overflow
- CVE-2026-0882: Firefox IPC use-after-free
- CVE-2026-0886: Firefox Graphics boundary conditions flaw
- CVE-2026-0883: Firefox Networking info disclosure
- CVE-2026-0716: libsoup websocket integer overflow OOB read
- CVE-2026-0880: Firefox Graphics integer overflow sandbox escape
- CVE-2026-0879: Firefox Graphics sandbox escape
- CVE-2026-0891: Firefox memory safety bugs potential RCE (8.1)
- CVE-2026-0877: Firefox DOM security mitigation bypass (7.5)
- CVE-2026-0881: Firefox Messaging sandbox escape
- CVE-2026-0885: Firefox JS garbage collection UAF
- CVE-2026-0884: Firefox JS engine use-after-free (8.8)
- CVE-2026-0889: Firefox Service Workers DoS
- CVE-2026-0890: Firefox Copy/Paste spoofing
- CVE-2026-0892: Firefox memory safety bugs potential RCE (8.1)
- CVE-2026-0878: Firefox CanvasWebGL sandbox escape
๐บ AWS security bulletins
๐ฌ Security documentation changes
- ECS Managed Instances now documents SCP restrictions and AMI account requirements
- Clean Rooms adds security guidance for PySpark parameter handling
- AWS CLI updated to version 2.33.1 with client-token parameter restructured
- DataZone list-subscriptions command adds IAM principal filtering parameters
- EC2 instances can now enable FIPS 140-2 validated crypto modules via fipsEnabled parameter
- EC2 describe-instances output now shows FIPS 140-2 compliance status
- EC2 run-instances output now shows FIPS 140-2 compliance status
- Resource APIs add VerificationStatus and ExpectedResourceOwnerAccount for cross-account verification
- Documentation added for resource owner verification response parameters
- OpenSearch Serverless adds encryption configuration and collection group options
- OpenSearch Serverless output now includes encryption key details
- CloudHSM Client SDK 5.13.0 downloads removed from all platforms
- CloudHSM documents known issue where AES/CBC unwrap with zero IV fails on hsm2m.medium
- DMS MongoDB CDC now requires ExtractDocID parameter for multi-document transactions
- EKS policy changelog updated with URL fixes
- IVS private channels documentation updated
- IVS renames 'Private Channels' section to 'Session Protection'
- IVS session protection section links updated
- Lake Formation IAM policy changes from iam:PassRole to sts:AssumeRole for Glue
- Amazon Linux extends Redis 6 end-of-life from January 2026 to January 2027
- Security Hub cost estimator now auto-populates via cross-account roles with new IAM requirements
- HealthLake KMS key policies must now include healthlake.amazonaws.com service principal
- Amazon Linux marks several packages as end-of-support with no further security updates