Identify functions running on runtimes that AWS no longer supports, then plan a controlled upgrade to a currently supported runtime before the deprecation deadline. Inventory functions regularly, prioritise internet-facing and business-critical code, test dependencies against the new runtime, and verify deployments do not revert to the deprecated version.
How to find deprecated Lambda runtimes quickly
The fastest way to identify deprecated aws lambda runtime is to treat runtime inventory as a recurring control, not a one-time cleanup. Start with an account-wide list of functions and their configured runtimes, then flag anything that no longer appears in AWS support guidance. That gives you the exposure set before you begin remediation planning.
In practice, the best signal is not just “old runtime,” but “old runtime plus business impact.” Functions behind public APIs, customer workflows, or scheduled jobs with operational consequences deserve priority because a forced runtime change there has a higher chance of outage or delay if dependencies are missed.
A useful operational pattern is to compare what is deployed against what your teams believe is deployed. Runtime drift often hides in abandoned functions, copied templates, and long-lived automation that no longer gets regular review. A supportable inventory is what makes the deprecation problem manageable rather than urgent.
What changes when you replace the runtime
Replacing a deprecated runtime is not just a version bump. You are usually changing the language runtime, the underlying execution environment, and sometimes the dependency set that the function relies on. That means the replacement should be tested as an application change, not only as a platform maintenance task.
The practical concern is compatibility. Libraries, native extensions, build artifacts, and environment assumptions can break when you move from an unsupported runtime to a supported one. If the function depends on packages tied to a specific interpreter or runtime image, you need validation in a staging path before production cutover.
Deployment hygiene matters as much as code correctness. A function can be updated successfully and still revert later if infrastructure-as-code templates, deployment pipelines, or manual hotfixes continue to reference the deprecated runtime. The fix is only durable when the runtime setting is corrected everywhere it is defined.
How to prioritise the upgrade queue
Not every deprecated Lambda function should be handled in the same order. Prioritise functions that are internet-facing, customer-facing, or tied to core business processes, then work inward to internal utilities and low-impact automation. That reduces the chance that a runtime deadline becomes an incident.
It also helps to group by shared code or deployment pattern. If multiple functions come from the same template or build pipeline, fixing the template once can remove several deprecated runtimes at the same time. That is usually more effective than patching each function individually.
For teams using serverless at scale, the dependency review is often the real bottleneck. One of the strongest benefits of a Serverless Security Guide approach is that it makes runtime replacement part of broader function governance, including dependencies, execution roles, logging, and deployment consistency.
Risk and Threat Considerations
Deprecated runtimes create a time-bounded exposure window. Even when the function still runs, you lose the normal security and stability assurances that come with a supported runtime, and you increase the chance that a delay in migration turns into service disruption or an exploitable maintenance gap.
Failure mechanism: Teams defer the upgrade because the function still appears to work, but the longer the runtime stays in place, the more likely dependency incompatibility, build drift, or deployment reversion will block a safe cutover close to the deadline.
Impact: The result can be outages during forced replacement, delayed remediation across many functions at once, or an operational backlog that leaves business-critical workloads exposed longer than planned.
Standards & Framework Alignment
This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.
CIS Controls v8 provides the primary governance reference for this topic.
| Framework | Control / Reference | Relevance |
|---|---|---|
| CIS Controls v8 | CIS-2 — Inventory and Control of Software Assets | Deprecated runtimes are found through software inventory and asset visibility. |
| CIS-4 — Secure Configuration of Enterprise Assets and Software | Runtime replacement is a configuration hygiene issue across deployments and templates. | |
| CIS-16 — Application Software Security | Dependency testing and controlled upgrade of function code are application security tasks. | |
| Recommendation — Maintain an accurate inventory of Lambda runtimes and flag unsupported versions for remediation. Standardize supported Lambda runtimes in deployment baselines and templates. Test Lambda dependencies against the target runtime before production rollout. | ||
Practitioner Guidance
What to verify: Confirm the runtime is removed from every deployment path, not just from the live function configuration. That includes templates, CI/CD variables, rollback definitions, and any local IaC modules that could redeploy the old value.
Implementation sequence: Inventory first, then classify by business criticality, then test dependency compatibility, then deploy the runtime update in a controlled environment before rolling it into production. If a function has no owner or no recent test coverage, treat it as higher risk until proven otherwise.
Practitioner takeaway: The real objective is not merely to swap versions before AWS enforcement dates, but to prove that the new runtime is durable across code, pipeline, and infrastructure layers so it does not silently regress later.
Related resources from NHI Mgmt Group
- How should security teams manage outdated AWS Lambda runtimes before they become exposure points?
- How do you restrict AWS Lambda resource-based permissions with SourceArn and SourceAccount?
- How do you replace long-lived IAM user credentials with temporary credentials in AWS?
- How do you detect malicious Lambda layers being attached in AWS?