All lessons Leer en español

Security in depth · Unit 21 · Lesson 4 of 6

Mitigations do not repair the defect

Separate protection settings, a candidate correction, and verified deployment.

4 minreadyShort lesson

Helpful before thisMemory safety: boundaries and lifetimes

See all lessons in this topic

After this lesson you can

  • Write a closure decision that distinguishes mitigation evidence from a deployed defect correction.

One idea. One situation. One reasoned decision.

How it works

Memory-protection mechanisms can make some failures harder to turn into broader harm or limit their consequences. Their coverage depends on platform, configuration, and the type of error. They do not generally correct the original ownership, bounds, or logic mistake. Fix the defect and maintain mitigations as additional layers rather than treating either as a universal substitute for the other.

Underlying defect → Mitigation layer → Remaining correctionUnderlying defectMitigation layerRemaining correction
Follow the relationship: Underlying defect → Mitigation layer → Remaining correction.

Read the release evidence

A fictional document viewer has a tracked invalid-read defect. The release review contains three records:

Record Evidence
M1 Protection settings enabled on deployed version 7.2
M2 Review identifies the same faulty operation in 7.2
M3 Candidate 7.3 changes the operation and passes the targeted regression; not deployed

Worked decision: keep the defect open on deployed systems. M1 describes a protective layer, while M2 says the underlying defect remains. M3 supports a candidate correction for the tested case; it does not show that users are running it.

The closure note should request the reviewed correction, relevant regression results, and evidence that the intended systems now run the corrected build. Retain appropriate protections after updating. Their continued value is independent of closing this particular defect.

Avoid two overclaims: fewer observed crashes do not prove that the invalid operation disappeared, and one passing regression does not prove that every memory operation is correct. Record which case was checked, which build was examined, and which deployment population was verified. Those boundaries make the conclusion useful to the next reviewer.

The key distinction: A mitigation can alter consequences without removing the faulty operation.

Check yourself

No timer. No penalties. Read the explanation and try again whenever you like.

  1. Which status best matches M1-M3?

    Show the answer

    Correct answer: A candidate correction has supporting test evidence; deployment closure remains pending. M3 supports the tested candidate, while its explicit not-deployed status leaves the affected deployed version unresolved.

Try it

  • WriteWrite a two-sentence status using M1-M3. Name the evidence needed to close the known defect and one reason that closure would not establish universal memory safety.
References