Safeguard
Security Guides•

What if you cannot leave an end of life base image yet?

When a service must stay on an unsupported base for a while, write a time boxed exception with an owner, limits on exposure and a firm end date.

Safeguard Security Team
4 min read

If a service must stay on an unsupported base image for now, write a time boxed exception: a named owner, the reason, controls that limit exposure, a review date and a firm end date. An exception with those parts is a managed risk. Without them it is a leftover that grows quietly.

Why exceptions are sometimes honest

Migrations stall for real reasons. A vendor library supports only the old release. A certified build cannot change until a validation cycle ends. A team is down to one engineer. Pretending these do not exist produces silent non compliance. Writing them down produces a plan.

The aim is to keep the list short, visible and shrinking.

What an exception record contains

FieldExample content
Image and serviceName, registry path, running digest
Base and its support statusRelease name and the publisher's end date, with the source link
ReasonThe specific blocker, in one or two sentences
Owner and approverNamed people, not teams alone
Compensating controlsWhat reduces exposure while it stays
Review dateWhen someone re-checks the exception
End dateWhen it expires unless renewed with justification
Exit planThe steps and the person who will do them

Keep the form short enough that people fill it in.

Compensating controls that make sense for a container

Choose what fits the service. None of these is a substitute for moving, but each limits what an attacker can do.

  1. Reduce network exposure. Remove public access, or put the service behind an authenticated front end.
  2. Limit what the container can do. Run as a non root user, drop capabilities and use a read only root filesystem where the app allows it.
  3. Remove what you do not need. Strip build tools and unused packages so there is less to exploit.
  4. Watch it. Keep the image in scheduled scans so a new finding reaches the owner quickly.
  5. Rebuild anyway. Even an unsupported base may accept fixes from other sources you add, and a fresh rebuild keeps your own layers current.

Setting the end date

Pick a date tied to something real, such as the end of a validation cycle or a vendor release, not an arbitrary far off one. Renewals should require a fresh written justification and a more senior approver each time. That friction is intentional.

Reporting

Report the count of open exceptions and their age to leadership each quarter. A rising count is a signal about capacity, not only security. Showing a falling count is one of the more convincing things you can tell a customer or auditor about your process.

Check the support date again

Publishers' dates change and extended arrangements exist. Debian, for example, lists a Long Term Support period after regular support, run by a separate group of volunteers and companies. Read the publisher's current page before you declare something unsupported or supported, and keep the source link in the record.

Where Safeguard fits

Safeguard keeps exception style decisions with expiry in its policies, and continuous monitoring keeps scanning images that sit on an exception so a new finding does not wait for the next review. The free scan at https://gold.safeguard.sh/scan covers one image.

Quick check

How long should an exception last?

Only as long as the blocker does, and usually no more than a quarter or two before review. Renewals should be harder than the first grant.

Who should approve one?

Someone who owns the risk, such as the service owner's director or security lead, not only the engineer who asked.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.