AWS Lambda – Runtime Pinning/Rollback Abuse via PutRuntimeManagementConfig
Reading time: 0 minutes
Abuse lambda:PutRuntimeManagementConfig
to pin a function to a specific runtime version (Manual) or freeze updates (FunctionUpdate). This preserves compatibility with malicious layers/wrappers and can keep the function on an outdated, vulnerable runtime to aid exploitation and long-term persistence.
Requirements: lambda:InvokeFunction
, logs:FilterLogEvents
, lambda:PutRuntimeManagementConfig
, lambda:GetRuntimeManagementConfig
.
Example (us-east-1):
- Invoke:
aws lambda invoke --function-name /tmp/ping.json --payload {} --region us-east-1 > /dev/null; sleep 5
- Freeze updates:
aws lambda put-runtime-management-config --function-name --update-runtime-on FunctionUpdate --region us-east-1
- Verify:
aws lambda get-runtime-management-config --function-name --region us-east-1
Optionally pin to a specific runtime version by extracting the Runtime Version ARN from INIT_START logs and using --update-runtime-on Manual --runtime-version-arn <arn>
.