Your RSA-2048 keys break in 2030. Find every one of them before attackers do.
📦 npm

GHSA-v63m-x9r9-8gqp

MEDIUM

AWS CDK CLI prints AWS credentials retrieved by custom credential plugins

Also known asCVE-2025-2598
Published
Mar 21, 2025
Updated
Oct 14, 2025
Affected
2 pkgs
Patched
2 / 2
Exploits
None indexed

EPSS Exploitation Probability

via FIRST.org ↗
0.3%probability of exploitation in next 30 days
Lower Risk17th percentile+0.18%
0.00%0.25%0.50%0.76%0.0%0.3%Dec 25Apr 26Jun 26

EPSS (Exploit Prediction Scoring System) is a daily probability model maintained by FIRST.org. It estimates the likelihood a CVE will be exploited in production environments within the next 30 days, derived from real-world threat intelligence signals.

Blast Radius

2 pkgs affected

Weekly download volume for affected packages — a proxy for how broadly this vulnerability is deployed.

aws-cdknpm
3.8Mdownloads / week
cdknpm
190Kdownloads / week

Description

Summary

The AWS Cloud Development Kit (AWS CDK) [1] is an open-source software development framework for defining cloud infrastructure in code and provisioning it through AWS CloudFormation. The AWS CDK CLI [2] is a command line tool for interacting with CDK applications. Customers can use the CDK CLI to create, manage, and deploy their AWS CDK projects.

An issue exists in the AWS CDK CLI where, under certain conditions, AWS credentials may be returned in the console output. Plugins that return an expiration property in the credentials object are affected by this issue. Plugins that omit the expiration property are not affected.

Impact

When customers run AWS CDK CLI commands with credential plugins and configure those plugins to return temporary credentials by including an expiration property, the AWS credentials retrieved by the plugin may be returned in the console output. Any user with access where the CDK CLI was ran would have access to this output.

The following are examples of configuring a custom credential plugin:

Via command line option:

cdk deploy --plugin /path/to/plugin

Via configuration file [3]:

{
  "plugin": "/path/to/plugin"
}

Plugins that return an expiration property in the credentials object, such as the following example, are affected:

return {
    accessKeyId: '<access-key>',
    secretAccessKey: '<secret-access-key>',
    sessionToken: '<session-token>',
    expiration: <date>,
};

The expiration property indicates that the provided credentials are temporary.

Please refer to our "AWS CDK CLI Library" guide for more information about custom credential plugins [4].

Impacted versions: >=2.172.0 and <2.178.2

Patches

The issue has been addressed in version 2.178.2 [5]. We recommend upgrading to the latest version and ensuring any forked or derivative code is patched to incorporate the new fixes.

Workarounds

If you are unable to upgrade to version 2.178.2 or later, you can downgrade to version 2.171.1. If you are unable to downgrade, but have access to the code of the credential plugin you use, you can remove the expiration property from the object returned by the plugin.

For example, change the code from returning this:

return {
    accessKeyId: assumeRoleOutput.Credentials.AccessKeyId,
    secretAccessKey: assumeRoleOutput.Credentials.SecretAccessKey,
    sessionToken: assumeRoleOutput.Credentials.SessionToken,

    // Expiration indicates to the CLI that this is temporary
    expiration: assumeRoleOutput.Credentials.Expiration,
};

To return this:

return {
    accessKeyId: assumeRoleOutput.Credentials.AccessKeyId,
    secretAccessKey: assumeRoleOutput.Credentials.SecretAccessKey,
    sessionToken: assumeRoleOutput.Credentials.SessionToken,
};

Note that this will prevent the CDK CLI from refreshing the credentials when needed, and may cause your workflow to fail on an expired credentials error.

References

[1] https://docs.aws.amazon.com/cdk/v2/guide/home.html

[2] https://docs.aws.amazon.com/cdk/v2/guide/cli.html

[3] https://docs.aws.amazon.com/cdk/v2/guide/cli.html#cli-config

[4] https://www.npmjs.com/package/@aws-cdk/cli-plugin-contract

[5] https://github.com/aws/aws-cdk/releases/tag/v2.178.2

Affected Packages

2 total 2 fixed
EcosystemPackageVulnerable rangeFix
📦npmaws-cdk2.172.0&&< 2.178.22.178.2
📦npmcdk2.172.0&&< 2.178.22.178.2

Detection & mitigation playbook

Open-source dependency
  1. Detect

    Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for aws-cdk. O3's reachability analysis confirms whether the vulnerable code path is actually invoked in your application, so you act on real exposure instead of every transitive match.

  2. Fix

    Update aws-cdk to 2.178.2 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-v63m-x9r9-8gqp is resolved across your whole dependency graph.

  3. Workarounds

    If you can't upgrade right away: gate or disable the affected feature, validate untrusted input at the boundary, and avoid passing attacker-controlled data into the vulnerable path. O3's runtime protection blocks exploitation in production as an interim safeguard until the upgrade lands.

  4. How O3 protects you

    O3 pinpoints whether GHSA-v63m-x9r9-8gqp is reachable in your code and exactly where to fix it, then blocks exploitation in production at runtime until the patched version is deployed.

Tailored to GHSA-v63m-x9r9-8gqp. Runtime protection reduces exposure until a permanent patch is applied and verified — it complements patching, it doesn't replace it.

Frequently Asked Questions

## Summary The AWS Cloud Development Kit (AWS CDK) [1] is an open-source software development framework for defining cloud infrastructure in code and provisioning it through AWS CloudFormation. The AWS CDK CLI [2] is a command line tool for interacting with CDK applications. Customers can use the CDK CLI to create, manage, and deploy their AWS CDK projects. An issue exists in the AWS CDK CLI where, under certain conditions, AWS credentials may be returned in the console output. Plugins that return an `expiration `property in the credentials object are affected by this issue. Plugins that om
O3 Security · Impact-Aware SCA

Is GHSA-v63m-x9r9-8gqp in your dependencies?

O3 detects GHSA-v63m-x9r9-8gqp across npm dependencies and uses function-level reachability to confirm whether the vulnerable code path is actually reachable — not just present. No false positives.