Container hardening: 300+ vulnerabilities to zero
Legacy container images carried more than three hundred known vulnerabilities and were blocking a security gate. The application behaviour had to stay identical while the images underneath it changed completely.
- Client
- US Telecommunications Company
- Role
- Consultant — platform & container security remediation
- Period
- 2024 — 2025
- Scope
- Legacy container images in production
Context
Long-lived services running on container images built years earlier, with base layers and language runtimes that had aged out of support. A security programme had begun enforcing scan thresholds.
Problem
Over three hundred reported vulnerabilities across the image set. Naive fixes — bumping the base image or upgrading a runtime — broke the applications, and nobody could say which pinned versions were load-bearing.
Constraints
Zero tolerance for behavioural change in production. No rewrite budget. Some dependencies were transitive and undocumented, and a subset of findings had no upstream fix at all.
Approach
I separated findings into categories: fixed by rebasing, fixed by dependency upgrade, fixed by removing something the image did not need, and genuinely unfixable. The last group shrank considerably once unused packages and build tooling were removed from runtime images.
Each image was remediated in isolation, exercised against its previous behaviour, and promoted only after verification. Multi-stage builds kept build tooling out of the shipped layer.
Key decisions
Reduce the surface before patching it. Most of the vulnerability count came from packages the running application never used.
Add scanning to CI as a gate rather than a report, so the count could not silently climb back.
Outcome
Remediated images passed the security gate with no known vulnerabilities and no functional regressions. The pipeline now fails on newly introduced findings, which turned a one-off cleanup into a maintained state.
Retrospective
Container images are a maintenance surface, not a build artifact you write once. Treating them as inventory — owned, dated, and rebuilt on a schedule — is cheaper than periodic remediation projects.
Flow
Remediation shipped image by image, each verified against the previous behaviour before promotion.