skip to content

Which supported release lines get the security backport, and how do you decide?

level: principalimportance: nice to knowfreq 30%

answer

  1. policy written before the incident
  2. check each line for the flaw
  3. who is on that line
  4. can they actually deploy it
  5. few cleared people, finite testing

basics

~20 s

Start from a support policy written before the incident, then narrow by evidence: whether the flaw exists and is reachable in each line, whether a safe patch is possible, and whether that line's users can deploy it in time.

solid answer

~50 s

The default answer is your published support policy — which lines are maintained and until when — because deciding scope during an embargo means deciding it under pressure and with an audience. Then adjust with evidence per line: does the vulnerable code exist there at all, is it reachable, can the patch be applied without a breaking change, and can that line's consumers deploy inside the window. That last question changes answers. If a line is used only by customers who must re-certify firmware before shipping, a backport that arrives on disclosure day does nothing for them, and an immediately applicable mitigation is worth more than a patch they cannot install for months. Backport capacity is also finite because only a few cleared people can work on it — a rushed, untested backport into a safety-critical line can be worse than the flaw.

go deeper

for a junior

Understand that projects maintain several release lines at once and that a security fix usually has to be applied to more than the newest one. Knowing that a support policy governs which lines qualify is the takeaway here.

for a middle

Explain why a fix does not apply uniformly across lines: code diverges, the clean patch may depend on newer APIs, and each line needs its own build and test pass before it can ship.

for a senior

Show the evidence-driven narrowing — presence, reachability, patchability, deployability — and be honest about capacity: under embargo only a few cleared people can review and test, so scope trades directly against quality.

for a principal

Own the policy and the exceptions. Be ready to defend shipping fewer, well-tested backports, to weigh a mitigation a customer can apply today against a patch they cannot deploy for months, and to state publicly that an affected line will not be fixed.

## The decision is mostly made in advance The question sounds like an incident-time judgment call, and partly it is — but a maintainer who first asks "which lines do we support?" while an embargo clock runs has already lost. **A written support policy, published before any of this, is the instrument that makes the decision defensible**: which release lines are maintained, what each receives (security fixes only, or fixes generally), and when each reaches end of life. Without one, every backport decision looks arbitrary to the customer who did not get one, and every exception you make becomes the new expectation. With a policy in place, the incident-time work is narrowing and exception handling rather than invention. ## Narrowing by evidence, line by line For each supported line, four questions: 1. **Does the flaw exist here?** Lines diverge. The vulnerable function may postdate an older line, or an intervening refactor may have removed the pattern. Verify rather than assume — in both directions, since the assumption that an old line is *not* affected has caused as much harm as the reverse. 2. **Is the vulnerable code reachable?** A flaw in code that no supported configuration of that line can invoke is a different priority from one on the default path. Reachability is about whether the vulnerable code can be executed at all in that build; it is not the same as an attacker being able to reach it in a deployment, and both matter. 3. **Can it be patched safely here?** Sometimes the clean fix depends on an API introduced later, and backporting means either a behavioural change consumers did not sign up for, or a more invasive rewrite reviewed by very few eyes under time pressure. 4. **Can this line's consumers act on it?** This is the question teams skip, and it is often the one that matters most. ## When the fix arrives faster than the consumer can move Consider an embedded SDK with four supported lines. Two are used by ordinary integrators who can rebuild and ship quickly. The other two are used almost exclusively by customers whose firmware must be re-certified before it can be deployed — a process measured in weeks or months, and one that cannot be compressed because the flaw is urgent. For those two lines, a backport delivered on disclosure day protects nobody on disclosure day. That does not make it worthless — it starts their clock, and they need it eventually — but it changes what you owe them *most*. What actually helps is something applicable without re-certification: a configuration that disables the affected feature, a deployment-level control, guidance on detecting exploitation, or a statement precise enough that they can judge whether their product is exposed at all. Note also what is at stake here: not customer records, but the safety and availability of deployed devices, and a device bricked by a hurried patch is a worse outcome than the flaw the patch closes. The general principle: **the value of a backport is the exposure it actually removes, not the number of lines you can list as fixed.** ## Capacity is real and unusually tight Backporting under embargo is not the same work as backporting normally. The circle of people allowed to see the patch is small by design, which means review, build and test capacity for every line is drawn from that same few. Four backports, four build matrices, four sets of integration tests, one weekend, three cleared engineers — this is where quality collapses quietly. An untested backport shipped to hit a date is a real risk you are choosing to take, and it should be a decision someone makes deliberately rather than a side effect of an ambitious scope. Staging is legitimate: ship the lines you can test properly on the disclosure date, and be explicit that another line's fix follows on a stated date. Honesty about a gap is far better than an unverified patch. ## Lines you decide not to fix An unsupported or out-of-scope line that is nonetheless affected still needs a statement. Silence gets read as "not affected", which is the one interpretation that harms users. Say plainly that the line is affected, that no fix is coming, and what the alternatives are — upgrade path, mitigation, or migration. That is an obligation you carry as the upstream regardless of what your policy says about maintenance. The hardest version of this is the unsupported line carrying most of your installed base. Two defensible options exist and one indefensible one. You can make a one-off exception, stating explicitly that it is the last, and pair it with a migration plan. You can hold the policy and invest in making migration genuinely achievable. What you cannot do is hold the line silently and let those users believe they are safe. ## Afterwards Every incident tells you whether the support matrix matches reality. If most of your users are on a line you had declared unsupported, the policy is fiction and the fix is to change the policy or change the adoption — before the next report arrives.

  • An unsupported line carries most of your installed base. What do you do?
    Either make a one-off exception and say explicitly that it is the last one, paired with a concrete migration path, or hold the policy and invest in making migration realistic. What you cannot do is stay silent and let those users assume they are unaffected. Afterwards, treat the mismatch as the real finding: a support matrix that most users ignore is fiction, and the policy or the adoption has to change.
  • How do you keep this from becoming an improvised decision every time a report lands?
    Publish a support matrix with end-of-life dates before you need it, and rehearse a backport to the oldest supported line as a routine exercise so you know whether the patch even applies and how long the test matrix takes. The scarce resource under embargo is cleared reviewers and testers, and you only learn your real capacity by measuring it outside an incident.
  • The vulnerable code exists in an old line but no supported configuration can invoke it. Do you still patch it?
    Usually yes if the patch is cheap and safe, because configurations change and a later refactor can make the code reachable. But say what you found: consumers on that line deserve to know the code is present and currently unreachable, so they can judge their own build. Cheap certainty is worth more than a clever argument for doing nothing.

saying these in an interview costs you the question

  • Backports to every line that ever shipped
  • Decides support scope during the incident
  • Assumes consumers deploy the day you publish
  • Counts lines instead of asking who uses them
  • Ships an untested backport to hit a date
  • Stays silent about an affected unsupported line

context