Severity by source
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Network-reachable but requires authenticated component-author privileges (PR:L) and a build/codegen step to trigger (AC:H); code escapes the component into the build host (S:C) with full C/I/A impact.
Primary rating from Vendor (ff89ba41-3aa1-4d27-914a-91399e9639e5).
CVSS VectorVendor: ff89ba41-3aa1-4d27-914a-91399e9639e5
Lifecycle Timeline
7DescriptionCVE.org
The AWS Amplify Studio UI component property expressions in the aws-amplify/amplify-codegen-ui package lack input validation. This could potentially allow an authenticated user who has access to create or modify components to run arbitrary JavaScript code during the component rendering and build process.
AnalysisAI
Arbitrary JavaScript code execution in AWS Amplify Studio's amplify-codegen-ui package (fixed in v2.20.3) allows an authenticated user with permission to create or modify UI components to inject malicious code via unvalidated component property/binding expressions, which is then evaluated during the React component code-generation, rendering, and build process. Because the injected code runs inside the developer's build pipeline, an attacker can compromise the build environment and any generated application. This corresponds to a CWE-95 eval-injection flaw; publicly available exploit code exists (a SecureLayer7 technical write-up), but there is no public exploit identified as weaponized and it is not listed in CISA KEV, with a low EPSS score of 0.24%.
Technical ContextAI
AWS Amplify Studio is a visual development environment that lets users design UI components and then uses the aws-amplify/amplify-codegen-ui package (specifically the codegen-ui-react module) to transform those component definitions into React/JSX source code. Component 'property expressions' (binding expressions attached to UI element properties) were passed into the code-generation pipeline without input validation or sanitization. Since these expressions are ultimately emitted into generated JavaScript and evaluated during rendering and build, an attacker-controlled expression is treated as executable code rather than inert data - the classic CWE-95 (Improper Neutralization of Directives in Dynamically Evaluated Code, i.e., 'Eval Injection') pattern. The v2.20.3 release confirms the root cause by adding sanitization to binding expressions (PR #1174, commit ca98c38).
RemediationAI
Vendor-released patch: v2.20.3 - upgrade the aws-amplify/amplify-codegen-ui dependency (and regenerate components) to 2.20.3 or later, which adds sanitization to binding expressions (commit ca98c38, PR #1174); consult the AWS bulletin AWS-2025-010 (https://aws.amazon.com/security/security-bulletins/AWS-2025-010/) and advisory GHSA-hf3j-86p7-mfw8 (https://github.com/aws-amplify/amplify-codegen-ui/security/advisories/GHSA-hf3j-86p7-mfw8). If immediate upgrade is not possible, reduce exposure by tightly restricting who can create or modify Amplify Studio UI components - limit component authoring/IAM permissions to a small set of trusted developers, since the vulnerability requires that privilege - and review existing component property/binding expressions for suspicious code before running codegen or builds; the trade-off is reduced developer self-service and manual review overhead. Running codegen and build steps in isolated, least-privilege CI containers limits blast radius if a malicious expression executes, but does not close the vulnerability itself.
Same weakness CWE-95 – Eval Injection
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2025-13500
GHSA-hf3j-86p7-mfw8