Signing DynamoDB Sets when using the AWS Database Encryption SDK.
Low severity
GitHub Reviewed
Published
Nov 8, 2023
in
aws/aws-database-encryption-sdk-dynamodb
•
Updated Nov 9, 2023
Package
Affected versions
>= 3.0.0, < 3.1.1
Patched versions
3.1.1
Description
Published to the GitHub Advisory Database
Nov 9, 2023
Reviewed
Nov 9, 2023
Last updated
Nov 9, 2023
Impact
This advisory addresses an issue when a DynamoDB Set attribute is marked as SIGN_ONLY in the AWS Database Encryption SDK (DB-ESDK) for DynamoDB. This also includes when a Set is part of a List or a Map.
DB-ESDK for DynamoDB supports
SIGN_ONLY
andENCRYPT_AND_SIGN
attribute actions. In version 3.1.0 and below, when a Set type is assigned aSIGN_ONLY
attribute action, there is a chance that signature validation of the record containing a Set will fail on read, even if the Set attributes contain the same values. The probability of a failure depends on the order of the elements in the Set combined with how DynamoDB returns this data, which is undefined.This update addresses the issue by ensuring that any Set values are canonicalized in the same order while written to DynamoDB as when read back from DynamoDB.
Patches
Fixed in version 3.1.1
We recommend all users upgrade as soon as possible.
Workarounds
None
References
For more information on how to address records with Sets marked as
SIGN_ONLY
written by versions 3.1.0 and below of DB-ESDK, see AWS Database Encryption SDK Decrypt with PermuteReferences