Free Software EOL Policy Template
This is a complete, vendor-neutral software end-of-life policy template that a mid-size organization can adopt largely with find-and-replace: swap in your company name, pick your SLA day counts, delete the compliance rows that don't apply, and route it through your approval process. It covers the full lifecycle-management loop — inventory, verified lifecycle dates, a four-tier risk classification, remediation SLAs, a real exception process, procurement and CI gates, and a compliance mapping for EU CRA, NIS2, DORA, the CISA BODs, and PCI DSS 4.x.
[square brackets] is a placeholder or an editable default — [Company], owner roles, the [30]/[90]-day SLAs, the [6-month] exception cap. The structure is the load-bearing part; the numbers are starting points to tailor. The full template is readable below — no download required. For the how and why of standing up the surrounding program (who owns it, how to build the inventory, how to run the first quarter), read the companion guide: How to Build an EOL Management Program.
[Company] Software End-of-Life (EOL) Management Policy
Version: [1.0] · Effective date: [DATE] · Policy owner: [ROLE/NAME] · Next review: [DATE + 1 year]
1. Purpose & Scope
1.1 Purpose
Software that no longer receives security updates from its maintainer cannot be patched, no matter how quickly [Company] responds to new vulnerabilities. This policy establishes how [Company] identifies software approaching or past its end of life, classifies the resulting risk, and remediates or formally accepts it — before the absence of patches becomes an incident.
1.2 Scope
This policy applies to all software components used in [Company] production and business-critical environments, regardless of where they run or who operates them, including:
- Operating systems (servers, workstations, mobile devices)
- Runtimes, language platforms, and frameworks
- Databases, message brokers, and middleware
- Network devices, firewalls, VPN concentrators, and other appliances (including their firmware)
- Hypervisors and virtualization platforms
- Container base images and orchestration platforms
- CI/CD infrastructure, build agents, and developer tooling
- Embedded, IoT, and operational technology (OT) systems
- Commercial software and self-hosted third-party applications
Out of scope: [e.g., software in fully isolated lab environments with no production data — define your exclusions explicitly rather than leaving them implicit].
2. Definitions
| Term | Definition |
|---|---|
| End of life (EOL) | The date after which a software product or version no longer receives updates of any kind from its maintainer — including security fixes. After EOL, newly discovered vulnerabilities remain permanently unpatched on that version unless a separate extended-support arrangement exists. |
| End of support (EOS) | The date a vendor stops providing standard support (assistance, bug fixes, and usually security updates) for a product or version. Many vendors use EOS and EOL interchangeably; where a vendor distinguishes phases (e.g., "end of mainstream support" vs. "end of extended support"), the date that ends security updates is the one this policy classifies against. |
| Extended support | A paid or contractual arrangement — from the original vendor or a third party — that continues security fixes for a product past its standard EOL date. Extended support changes a system's risk classification only while the contract is active and covers the deployed version. |
| Long-term support (LTS) | A release designated by its maintainer for a longer, published support window than standard releases. Choosing LTS releases maximizes the supported runway per upgrade, but LTS releases still reach EOL on their published date. |
| Known Exploited Vulnerabilities (KEV) catalog | The CISA KEV catalog, the US Cybersecurity and Infrastructure Security Agency's authoritative list of vulnerabilities with evidence of active exploitation in the wild. A KEV-listed vulnerability affecting an EOL version is a permanent, actively exploited exposure — the fix will never ship for that version. |
| End of sale | The date a product stops being sold. Not itself a security event, but it starts the clock: hardware and appliances typically have a published support end date tied to end of sale. |
| Software inventory | The record of software components in scope of this policy, their versions, owners, exposure, and lifecycle dates, as defined in Section 4. |
3. Roles & Responsibilities
| Role | Responsibilities |
|---|---|
| Policy owner ([e.g., Head of IT / CISO]) | Maintains this policy, reports EOL posture to [executive team / board] [quarterly], arbitrates classification disputes, approves the tooling and data sources used under Section 5. |
| Asset owners ([e.g., service/system owners, team leads]) | Maintain accurate inventory entries for their systems, plan and execute remediation within the SLAs in Section 7, and initiate exception requests under Section 8 when remediation is not feasible. |
| Security team | Reviews risk classifications, monitors the KEV catalog and vendor advisories for EOL-relevant exposure, validates compensating controls proposed in exceptions, and audits the inventory [quarterly]. |
| Procurement / vendor management | Enforces the procurement gate in Section 9.1; records support commitments and lifecycle dates for purchased products and appliances. |
| Executive sponsor ([e.g., CTO / CIO]) | Approves risk acceptances under Section 8; owns residual risk for approved exceptions. |
One named individual must hold each role. Shared or unassigned ownership is the most common cause of EOL software going unnoticed.
4. Software Inventory Requirements
4.1 Coverage
[Company] maintains a software inventory covering every component in scope under Section 1.2. The inventory explicitly includes the categories that most often escape tracking:
- Vendor appliances — firewalls, load balancers, storage arrays, backup targets, and any "black box" device that runs an operating system [Company] does not directly manage
- CI/CD and build infrastructure — runner images, build agents, and pinned tool versions that outlive the projects that configured them
- Container base images — the
FROMlines in every actively deployed image, not just the application layer - Embedded and OT systems — devices whose software version changes rarely and is easy to treat as furniture
- Transitive platform dependencies — bundled components (e.g., an embedded database or TLS library inside a purchased product) where the vendor's product lifecycle, not the component's, governs patching
4.2 Minimum record
Each inventory entry records, at minimum:
- Product name and exact version/release in use
- Named asset owner (per Section 3)
- Environment(s) and business criticality
- Internet exposure (directly reachable from the internet: yes/no)
- EOL/EOS date, or "no published date" recorded explicitly
- Source of the lifecycle date and the date it was last verified (per Section 5)
- Current risk tier (per Section 6) and, where applicable, remediation plan or exception reference
4.3 Maintenance
The inventory is updated when systems are deployed, upgraded, or decommissioned, and reviewed on the cadence set in Section 11. Automated discovery and scanning [is/is not] used to detect unrecorded software; discrepancies between discovered and recorded software are treated as inventory defects and assigned to the asset owner.
5. Lifecycle Data & Verification
5.1 Source hierarchy
Lifecycle dates are recorded from the most authoritative available source, in this order:
- The vendor's or maintainer's published lifecycle documentation — the authoritative source. In any conflict, the vendor's own page prevails.
- Community-maintained or commercial lifecycle aggregators — services that track dates across many products (for example, the open endoflife.date dataset or endoflife.ai) — acceptable for day-to-day monitoring and for products whose vendor documentation is unclear, provided the source itself cites vendor documentation.
- Indirect sources (press coverage, forum posts, support tickets) — usable only as a trigger to verify against a higher tier, never as the source of record.
5.2 Re-verification cadence
Recorded dates are re-verified against their source:
- [Monthly] for components classified Critical or High, or with EOL within [180] days
- [Quarterly] for all other components
- Immediately when a vendor announces a lifecycle change affecting a recorded product
5.3 Date drift
Vendors change published lifecycle dates — moving them earlier, later, or restructuring support phases — usually by editing the same page in place, without an announcement. A date recorded once and never re-checked must be treated as unverified. Every recorded date carries its source and verification date so that staleness is visible, not assumed away.
5.4 Products without published dates
Some maintainers publish no lifecycle dates at all. For these, the inventory records "no published date," and the asset owner applies the vendor's observed practice (e.g., "supports current release only") as a working assumption, documented as such. Absence of a date is a risk factor, not an exemption.
6. Risk Classification
Every in-scope component is assigned exactly one tier. Where multiple criteria match, the highest applicable tier applies.
| Tier | Criteria | Meaning |
|---|---|---|
| Critical | Past EOL and either (a) directly internet-facing, or (b) affected by a vulnerability listed in the CISA KEV catalog | Permanently unpatchable exposure that is reachable by attackers or already being exploited in the wild. Treated as an active incident condition, not a backlog item. |
| High | Past EOL, internal-only, no known KEV-listed exposure | Unpatchable but not directly reachable from the internet. One lateral movement away from Critical. |
| Medium | Supported today, EOL within [90] days | The remediation window is closing. The goal of this policy is for components to be handled here — while upgrading is routine — rather than after EOL. |
| Low | Supported, with a published EOL date more than [90] days out | Healthy. Tracked so that it surfaces as Medium at the right time. |
Notes:
- A component under an active extended-support contract covering the deployed version is classified as if supported (Medium/Low by date of the extended support end), with the contract referenced in the inventory.
- Internet exposure is assessed per deployment, not per product — the same version can be Critical in a DMZ and High in a segmented internal network.
- KEV applicability is assessed against the deployed version, including vulnerabilities fixed only in versions the EOL line will never receive.
7. Remediation Standards
7.1 Remediation SLAs
The following service levels are defaults for [Company] to tailor; the structure (shorter deadlines for higher tiers, plans due before EOL) is the load-bearing part.
| Tier | Required action | Deadline |
|---|---|---|
| Critical | Remediate — upgrade, migrate, decommission, or contract extended support. If none is achievable in time, isolate from the internet / affected exposure path immediately and process an exception under Section 8. | [30] days from classification |
| High | Remediate, or file an exception with compensating controls. | [90] days from classification |
| Medium | Approved remediation plan (target version, owner, dates) in place before the EOL date; execution per plan. | Plan before EOL; execution within [90] days after EOL at the latest |
| Low | No action beyond inventory tracking and Section 5 re-verification. | — |
7.2 Acceptable remediation outcomes
Remediation means reaching one of these end states:
- Upgrade to a supported version of the same product (prefer the LTS release with the longest remaining published runway, not merely the next version up)
- Migrate to a supported alternative product
- Decommission the system entirely
- Extended support contracted for the deployed version, treated as a bridge with a defined end date — not a destination
- Risk acceptance under Section 8, for the cases the above cannot reach
7.3 Planning principle
Upgrade cost rises and option count falls after EOL. Emergency migrations of unsupported systems are the most expensive and highest-risk change activity [Company] performs; the SLAs above exist to make them rare.
8. Exceptions & Risk Acceptance
An exception is a formal, documented decision to run software past EOL without full remediation. Exceptions are legitimate — some systems genuinely cannot be upgraded on schedule — but they are never implicit.
Every exception must be:
- Written — using the form in Appendix B, stored in [the exception register]
- Time-boxed — maximum duration [6 months]; renewal requires a new approval, not an extension
- Compensated — naming specific, verified compensating controls (e.g., network isolation, removal of internet exposure, enhanced monitoring, virtual patching/WAF rules, restricted accounts), with the security team confirming the controls are actually in place
- Signed — approved by the executive sponsor (Section 3), who thereby owns the residual risk; Critical-tier exceptions additionally require [CISO / CEO] sign-off
- Reviewed — re-examined at every quarterly review (Appendix A); an expired exception is a policy violation, not a rollover
Exceptions are tracked in a register showing owner, expiry, and compensating controls, and the register is included in the [quarterly] report to [executive team / board].
9. Procurement & Development Gates
The cheapest EOL problem is the one not acquired. The gates below move lifecycle awareness to the point of selection.
9.1 Procurement gate
Before [Company] purchases or renews software, appliances, or devices, procurement records:
- The vendor's published lifecycle policy and dates for the product being bought — or, where none exists, a written support commitment (duration of security updates) in the contract
- Whether extended support is available past standard EOL, and on what terms
- The product's expected in-service life at [Company] versus the vendor's committed support window — a purchase whose support window is shorter than its intended service life requires [Policy owner] approval
Products from vendors that publish no lifecycle dates and will not commit to a support duration in contract require a documented risk assessment before purchase.
9.2 Development and build gates
- New systems start supported: new projects and services must be built on versions with a published support runway of at least [the expected time to next planned upgrade], preferring LTS releases.
- CI checks: build pipelines [should/must] include a check that flags runtimes, base images, and platform dependencies that are past EOL or within [90] days of it, using lifecycle data per Section 5. [Company] may use any tool or data source that implements this — free options exist, including CI actions built on the sources listed in Section 5.1.
- Container base images: deployed images must use base images whose underlying distribution release is supported; base image updates are part of routine dependency maintenance, not a special project.
10. Compliance Mapping
This policy supports [Company]'s obligations under the frameworks below. The mapping is informational — the frameworks' own texts govern. Rows that do not apply to [Company] may be deleted.
| Framework | Relevance to this policy |
|---|---|
| EU Cyber Resilience Act (CRA) — Regulation (EU) 2024/2847 | Manufacturers of products with digital elements must declare a support period and provide security updates during it, and must know the components in their products; vulnerability and incident reporting obligations apply from September 11, 2026, with the main obligations applying from December 11, 2027. Sections 4–5 (component inventory and lifecycle data) directly support CRA readiness. |
| NIS2 — Directive (EU) 2022/2555 | Requires in-scope entities to implement risk-management measures including vulnerability handling — which software past EOL structurally cannot satisfy, since no patches exist to apply — and makes management bodies accountable for compliance oversight. Sections 6–8 give management a defensible, documented position on unsupported software. |
| DORA — Regulation (EU) 2022/2554 | Applies to financial entities since January 17, 2025, and expects them to identify and account for legacy ICT systems specifically within their ICT risk-management framework. The inventory (Section 4) and risk tiers (Section 6) provide that identification and accounting. |
| CISA Binding Operational Directives 26-02 and 26-04 | BOD 26-02 (February 5, 2026) directs US federal civilian agencies to identify and remove end-of-support devices from network edges; BOD 26-04 (June 10, 2026) sets risk-based remediation deadlines as short as 3 days for the most exposed vulnerabilities. Binding only on US federal civilian agencies, but a widely watched benchmark for the private sector — this policy's Critical tier (Section 6) mirrors its exposure-based logic. |
| PCI DSS v4.x | Requirement 12.3.4 requires a review of hardware and software technologies at least once every 12 months, confirming they continue to receive security fixes and that plans exist — approved by senior management — to remediate technologies approaching end of life. The quarterly review (Appendix A) exceeds this cadence; Section 7 provides the remediation plans. |
11. Review Cadence & Policy Maintenance
- Quarterly: inventory and classification review per Appendix A, led by [security team], with results reported to [Policy owner].
- Annually: full review of this policy by the [Policy owner], including SLA defaults, tier thresholds, and the compliance mapping (regulations change faster than policies — Section 10 in particular must be re-checked against current framework texts).
- On event: material vendor lifecycle changes, acquisition of new system categories, or a security incident involving EOL software trigger an out-of-cycle review of the affected sections.
Changes to this policy are versioned, dated, and approved by [approver]. The version history is maintained [below / in the policy register].
| Version | Date | Author | Change |
|---|---|---|---|
| [1.0] | [DATE] | [NAME] | Initial adoption |
Appendix A: Quarterly EOL Review Checklist
- Inventory completeness: new systems deployed this quarter are recorded; decommissioned systems are removed
- Hiding-place sweep: appliances, CI/build infrastructure, container base images, and embedded/OT entries reviewed for coverage (Section 4.1)
- All recorded lifecycle dates re-verified within cadence (Section 5.2), verification dates updated
- Vendor lifecycle changes since last review identified and applied (date drift check, Section 5.3)
- Every past-EOL component classified Critical or High, with no unclassified stragglers
- CISA KEV catalog checked against past-EOL inventory entries; any match escalated to Critical
- Internet exposure flags spot-checked against actual network configuration
- Components entering the [90]-day Medium window identified; remediation plans initiated
- Remediation SLAs (Section 7): overdue items escalated to [Policy owner]
- Exception register reviewed: expired exceptions escalated, compensating controls re-verified (Section 8)
- Extended-support contracts checked for coverage of deployed versions and upcoming contract end dates
- Quarterly summary (posture, tier counts, overdue items, open exceptions) reported to [executive team / board]
Appendix B: Risk Acceptance Form
| Field | Entry |
|---|---|
| Reference # | [EX-YYYY-NNN] |
| System / component | [Product, exact version, environment] |
| Asset owner | [Name, role] |
| Current risk tier | [Critical / High] |
| EOL date & source | [Date; source per Section 5, with verification date] |
| Known exploitation | [KEV-listed CVEs affecting this version, or "none as of DATE"] |
| Why remediation is not currently feasible | [Concrete constraint — dependency, vendor, budget, hardware] |
| Remediation path & target date | [What will eventually fix this, and when] |
| Compensating controls | [Specific controls in place; who verified them and when] |
| Residual risk summary | [What can still go wrong with controls in place] |
| Expiry date | [Max [6 months] from approval — renewal requires new approval] |
| Approved by (executive sponsor) | [Name, role, signature, date] |
| Security review | [Name, signature, date] |
Related
- How to Build an EOL Management Program — the companion guide to putting this policy into practice
- EOL Checker — instant end-of-life status for 480+ products · Stack Scanner — check a whole dependency stack at once
- EOL Watch — what reaches end of life next · Exploited & Unpatchable — KEV-listed CVEs that will never be fixed on EOL versions
- How we verify lifecycle dates — the verification practice behind Section 5