CVE-2023-35165: AWS CDK EKS overly permissive trust policies
AWS Cloud Development Kit (AWS CDK) is an open-source software development framework to define cloud infrastructure in code and provision it through AWS CloudFormation. In the packages aws-cdk-lib 2.0.0 until 2.80.0 and @aws-cdk/aws-eks 1.57.0 until 1.202.0, eks.Cluster and eks.FargateCluster constructs create two roles, CreationRole and default MastersRole, that have an overly permissive trust policy. The first, referred to as the CreationRole, is used by lambda handlers to create the cluster and deploy Kubernetes resources (e.g KubernetesManifest, HelmChart, ...) onto it. Users with CDK version higher or equal to 1.62.0 (including v2 users) may be affected. The second, referred to as the default MastersRole, is provisioned only if the mastersRole property isn't provided and has permissions to execute kubectl commands on the cluster. Users with CDK version higher or equal to 1.57.0 (including v2 users) may be affected.
The issue has been fixed in @aws-cdk/aws-eks v1.202.0 and aws-cdk-lib v2.80.0. These versions no longer use the account root principal. Instead, they restrict the trust policy to the specific roles of lambda handlers that need it. There is no workaround available for CreationRole. To avoid creating the default MastersRole, use the mastersRole property to explicitly provide a role.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
@aws-cdk/aws-eksto a version that resolves this vulnerability.Fixed in 1.202.0 - Upgrade
Upgrade
aws-cdk-libto a version that resolves this vulnerability.Fixed in 2.80.0 - Configuration
To avoid creating the `default MastersRole`, set the `mastersRole` property on `eks.Cluster`/`eks.FargateCluster` to an explicitly provided role (instead of letting CDK provision the `default MastersRole`).
AWS CDK EKS construct (eks.Cluster / eks.FargateCluster) mastersRole property = explicitly provide a role
Event History
Frequently Asked Questions
What is CVE-2023-35165?
CVE-2023-35165 is a vulnerability in AWS Cloud Development Kit (AWS CDK) that allows an attacker to execute arbitrary code or escalate privileges.
What is the severity of CVE-2023-35165?
CVE-2023-35165 has a severity rating of 8.8, which is considered high.
How does CVE-2023-35165 impact AWS CDK?
CVE-2023-35165 affects the packages aws-cdk-lib 2.0.0 until 2.80.0 and @aws-cdk/aws-eks 1.57.0 until 1.202.0 in AWS CDK.
How can I fix CVE-2023-35165?
To fix CVE-2023-35165, you should upgrade to a version of AWS CDK that is not affected by the vulnerability (above 2.80.0 for aws-cdk-lib and above 1.202.0 for @aws-cdk/aws-eks).
Can you provide more information about CVE-2023-35165?
For more information about CVE-2023-35165, you can refer to the official GitHub repository of AWS CDK and the security advisories.