Skip to main content
🎀 Speaking at KubeCon EU 2026 Lessons Learned Orchestrating Multi-Tenant GPUs on OpenShift AI View Session
🎀 Speaking at Red Hat Summit 2026 GPUs take flight: Safety-first multi-tenant Platform Engineering with NVIDIA and OpenShift AI Learn More
CRA Security Update Obligations: Managing Product Lifecycle Security
DevOps

CRA Security Update and Lifecycle Obligations

The CRA requires security updates for at least 5 years. How to plan long-term support, automate patch delivery, and manage end-of-life transitions.

LB
Luca Berton
Β· 1 min read

Five Years of Security Updates

The CRA requires manufacturers to provide security updates for the expected product lifetime, with a minimum of 5 years. For software companies used to annual release cycles, this is a fundamental shift.

The Obligation

Product Release v1.0 ─────────────────────────────────────────→ End of Support
    ↓                                                              (min 5 years)
    β”œβ”€β”€ Security patches within reasonable time
    β”œβ”€β”€ Free of charge to users
    β”œβ”€β”€ Accompanied by advisory information
    β”œβ”€β”€ Separate from feature updates (when possible)
    └── Available through secure distribution channel

Planning Long-Term Support

Branch Strategy

main ────────────→ v3.x (current) ──→ active development
  β”œβ”€β”€ release/2.x β†’ v2.x (LTS) ────→ security patches only (until 2029)
  └── release/1.x β†’ v1.x (LTS) ────→ security patches only (until 2028)

Automated Backporting

# GitHub Actions: Auto-backport security fixes
name: Security Backport
on:
  pull_request:
    types: [closed]
    branches: [main]

jobs:
  backport:
    if: contains(github.event.pull_request.labels.*.name, 'security')
    strategy:
      matrix:
        branch: [release/2.x, release/1.x]
    steps:
    - uses: actions/checkout@v4
      with:
        ref: ${{ matrix.branch }}
    - name: Cherry-pick security fix
      run: |
        git cherry-pick ${{ github.event.pull_request.merge_commit_sha }}
    - name: Create backport PR
      uses: peter-evans/create-pull-request@v6
      with:
        branch: security-backport/${{ matrix.branch }}
        title: "[Security Backport] ${{ github.event.pull_request.title }}"

Dependency Monitoring for LTS Branches

class LTSMonitor:
    async def check_lts_branches(self):
        for branch in self.lts_branches:
            sbom = await self.get_sbom(branch)
            vulns = await self.scan_vulnerabilities(sbom)
            
            critical = [v for v in vulns if v.severity in ("CRITICAL", "HIGH")]
            
            if critical:
                await self.create_security_ticket(
                    branch=branch,
                    vulnerabilities=critical,
                    sla="patch within 30 days",
                )

Cost Considerations

Per product line, annual LTS costs:

  • Security engineering time: 0.5-2 FTEs
  • Build/test infrastructure: Maintain CI/CD for each supported version
  • Dependency management: Track and patch transitive dependencies
  • Communication: Security advisories, user notifications

Budget Tip

Factor LTS costs into your product pricing. A 5-year support obligation means each sale carries 5 years of ongoing cost.

End of Life Process

When support ends:

  1. Announce EOL 12 months in advance
  2. Provide migration guide to supported versions
  3. Final security audit before last supported release
  4. Archive SBOM for regulatory reference
  5. Clearly mark product as unsupported in all documentation

Key Takeaways

  1. Design for long-term support β€” modular architecture makes backporting easier
  2. Automate backporting β€” manual cherry-picks don’t scale across versions
  3. Monitor dependencies continuously β€” your LTS branches share the same CVE exposure
  4. Budget for LTS β€” it’s a 5-year commitment per product release
  5. Communicate clearly β€” users must know their support window

Planning your CRA security update strategy? I help organizations build sustainable long-term support processes. Get in touch.

Luca Berton Ansible Pilot Ansible by Example Open Empower K8s Recipes Terraform Pilot CopyPasteLearn ProteinLens TechMeOut