Key Caching behavior in the DynamoDB Encryption ClientGHSA-4ph2-8337-hm62
Fix: aws/aws-dynamodb-encryption-python@90606ecGHSA-4ph2-8337-hm62 is a security vulnerability in dynamodb-encryption-sdk. A fix is available for dynamodb-encryption-sdk — see the affected versions and patch details below.
Real-World Exposure
dynamodb-encryption-sdkReal-time download stats are indexed for npm and PyPI packages. This vulnerability affects PyPI packages — download data is not available via public APIs for these ecosystems.
Description
Impact
This advisory concerns users of MostRecentProvider in the DynamoDB Encryption Client with a key provider like AWS Key Management Service that allows for permissions on keys to be modified.
When key usage permissions were changed at the key provider, time-based key reauthorization logic in MostRecentProvider did not reauthorize the use of the key. This created the potential for keys to be used in the DynamoDB Encryption Client after permissions to do so were revoked at the key provider.
Patches
Fixed as of 1.3.0. We recommend users to modify their code and adopt CachingMostRecentProvider.
Workarounds
Users who cannot upgrade to use the CachingMostRecentProvider can call clear() on the cache to manually flush all of its contents. Next use of the key will force a re-validation to occur with the key provider.
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| 🐍PyPI | dynamodb-encryption-sdk | all versions | 1.3.0pip install --upgrade 'dynamodb-encryption-sdk==1.3.0' |
Detection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for dynamodb-encryption-sdk, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update dynamodb-encryption-sdk to 1.3.0 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-4ph2-8337-hm62 is resolved across your whole dependency graph.
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.
Frequently Asked Questions
Is GHSA-4ph2-8337-hm62 in your dependencies?
Find it across PyPI, including transitive dependencies.