GHSA-8ffr-xgwf-xj56: High severity rust/aws-smithy-json vulnerability
Summary Smithy-RS is a Rust code generation and runtime framework that generates HTTP clients and servers from Smithy interface definitions, powering the AWS SDK for Rust and custom service implementations. An issue exists which allows uncontrolled recursion in the unknown-key skip path of the Amazon aws-smithy-json runtime crate in versions 0.62.6 and earlier.
Impact Uncontrolled recursion in the unknown-key skip path of the aws-smithy-json runtime crate before 0.62.7, which the smithy-rs code generator invokes from every generated struct deserializer, might allow remote unauthenticated users to cause a denial of service (process abort via stack exhaustion) via a single small HTTP request containing deeply nested JSON to a smithy-rs generated server.
Impacted versions: aws-smithy-json <= 0.62.6
Patches This issue has been addressed in aws-smithy-json version 0.62.7. We recommend upgrading to the latest version and ensuring any forked or derivative code is patched to incorporate the new fixes.
Workarounds There are no workarounds besides updating to the patched version.
References If you have any questions or comments about this advisory, AWS asks that you contact [AWS/Amazon] Security via their vulnerability reporting page or directly via email to aws-security@amazon.com. Please do not create a public GitHub issue.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
rust/aws-smithy-jsonto a version that resolves this vulnerability.Fixed in 0.62.7 - Upgrade
Upgrade
aws-smithy-jsonto a version that resolves this vulnerability.Fixed in 0.62.7
Event History
Frequently Asked Questions
Which deployments are exposed to remote attack?
Smithy-RS generated servers that use aws-smithy-json 0.62.6 or earlier are exposed if they deserialize attacker-controlled JSON. A remote unauthenticated attacker can send a single small HTTP request with deeply nested JSON.
What is the resulting impact if exploitation succeeds?
The uncontrolled recursion occurs while skipping unknown JSON keys and can exhaust the process stack. This can abort the process, causing denial of service; the provided impact details do not indicate confidentiality or integrity effects.
Are applications affected by default, or only with a special configuration?
The vulnerable runtime path is invoked from every generated struct deserializer by the smithy-rs code generator. The advisory does not describe any special configuration requirement.
What should be done if the application uses a vulnerable version?
Upgrade aws-smithy-json to version 0.62.7 or later and ensure forked or derivative code incorporates the fix. The advisory states that no workaround exists besides updating.