How to Validate That Patches Are Applied Correctly After an Exploit
After the adrenaline of an active incident fades, security teams often inherit a quieter but no less dangerous phase: proving that the fix actually landed. A patch pushed to a fleet does not always equate to a fleet that is genuinely protected. Drivers fail, services skip, and dependencies keep vulnerable code reachable even after the management console reports a tidy "compliant" tick. Verifying patch efficacy is therefore not a checkbox but an evidence-gathering exercise, drawing on configuration data, runtime telemetry, and adversarial testing.
Australia's regulatory environment makes this verification especially consequential. The Notifiable Data Breaches scheme, the Australian Prudential Regulation Authority's CPS 234 standard, and the Australian Cyber Security Centre's Essential Eight framework all expect demonstrable control effectiveness once a breach is contained. When Medibank, Latitude, and the more recent wave of incidents hit the headlines in Sydney, Melbourne, and Brisbane, the post-incident reviews that followed almost always asked the same question of the security lead: can you prove the exploited weakness is closed? Boards, the Office of the Australian Information Commissioner, and cyber underwriters increasingly demand an audit trail that goes beyond a vendor's portal screenshot.
This article walks through a practical approach to validating post-exploit patching, anchored in evidence rather than optimism. The aim is to give incident commanders, vulnerability managers, and CISOs a repeatable playbook that survives scrutiny from a regulator in Canberra, a board in Perth, or a customer asking tough questions after a near miss.
Building a baseline before remediation begins
Validation work starts before the first patch job runs. Without a baseline, every later "fixed" claim is unmoored. The baseline should capture the exact build, driver, and configuration of every affected asset at the moment containment ends: which version of the software was running, which mitigations were active, which compensating controls were holding the line. This snapshot becomes the reference point against which any post-patch state is compared.
In many Australian environments this step is harder than it sounds. Distributed mining operations near Kalgoorlie, retail point-of-sale fleets spread across regional Western Australia, and hybrid workforces split between Adelaide offices and remote sites often rely on a patchwork of EDR, MDM, and configuration management tools. Reconciling their views of the same endpoint requires deliberate effort. Treat the baseline as an evidence artefact: store it in a write-once location, hash it, and keep it attached to the incident record so an auditor months later can still reconstruct what was true on day zero.
Mapping every exploited CVE to the assets it touched
A patch list is not the same as a remediation list. A single CVE may map to dozens of internal services, not just the obvious one the attacker used. A thorough validation exercise traces the indicator of compromise backwards through logs, identity events, and network telemetry to enumerate every system that interacted with the vulnerable code path. Each asset then receives its own remediation ticket, its own deadline, and its own proof requirement.
This is where threat intelligence earns its keep. The ACSC, CERT Australia, and private feeds each offer context about active campaigns targeting specific vulnerabilities. Cross-referencing those feeds with your asset inventory reveals which systems face the highest residual risk, which lets a lean Australian security team prioritise the order in which patches are verified. In the middle of a major incident in Sydney or Brisbane, that prioritisation can mean the difference between a contained event and a multi-week exposure.
Verifying patch deployment with technical evidence
Once the queue is in order, validation moves to the patch management console and the underlying endpoints. A dashboard that reports "100% patched" tells you nothing about whether the underlying binary actually changed, whether the service restarted, or whether the vulnerable code path is still reachable. Pull the package version directly from the file system, query the package manager, and compare it against the vendor's advisory. Where possible, capture cryptographic hashes of the patched binary and the configuration file in force after the restart.
Independent corroboration matters as much as the vendor's own telemetry. A second scanner, a different EDR sensor, or a script that re-reads the registry or plist on a sample of endpoints can quickly expose gaps where the management agent lost contact, where a disk was full, or where an endpoint protection product blocked the updater. In a CARM-style ecosystem, multiple vendor signals converge here: each technology contributes its own view, and the security team reconciles them into a single, defensible picture of patch state. Document every exception, every retry, and every endpoint that required manual intervention, because those outliers are exactly what an investigator will scrutinise when reviewing a Notifiable Data Breaches submission.
Even the strongest technical validation fails if the people interpreting it have not been prepared. PCI DSS awareness training programmes that emphasise post-incident verification, not just annual compliance, raise the floor for evidence quality across Australian security teams.
Warning signs that a patch has not actually taken hold:
- The package manager reports the new version, but the running service still loads the old library
- The endpoint shows compliant in the console, yet a vulnerability scanner immediately re-detects the CVE
- Reboots or service restarts were deferred by a change-advisory policy and never executed
- A second scanner, configured with different credentials, returns a different patch status
A side-by-side view of the available validation methods
Before deciding which artefacts to attach to the incident file, weigh the methods available. Each technique confirms something different and misses something different, and a mature remediation programme combines several of them.
| Method | What it confirms | What it misses | Best used for |
|---|---|---|---|
| Vendor console report | Patch job executed and reached the endpoint | Whether the binary actually replaced the vulnerable code | First-pass screening of large fleets |
| Endpoint-based version query | True package version on disk | Whether the running process loaded the new code | Independent corroboration on a sample |
| Active vulnerability scan | CVE no longer exposed in default configuration | Business-logic paths and chained weaknesses | Confirmation under realistic conditions |
| Runtime attestation and sandboxed exploit replay | Vulnerable code path can no longer be triggered | Future regressions if monitoring lapses | High-assurance proof for regulators |
For most Australian enterprises operating under APRA CPS 234, the right combination is an active scan as the baseline, an endpoint version query on a representative sample, and a runtime replay on the systems the attacker actually touched. Anything less leaves a gap that an OAIC inquiry or a board-level review will quickly find.
Configuration and hardening checks beyond the patch itself
A patched binary on an otherwise weak host is not a closed vulnerability. Many of the exploits that have disrupted Australian organisations in recent years chained a known CVE with a misconfiguration: a default credential, an exposed management port, an overly permissive service account. Once the patch is verified, validation must extend to the surrounding configuration the attacker would have leveraged next.
Re-run the CIS benchmarks or the ACSC hardening guide that applies to the affected platform. Confirm that logging is forwarding to the central SIEM, that backups are running on a schedule that matches the recovery time objective, and that any compensating controls referenced in the original incident report remain in place. Where the patch introduced new defaults, verify those defaults have been adopted on every endpoint, not just the ones the management agent sees.
Practical proof artefacts to attach to your remediation file:
- Screenshots of the scanner console with timestamps from an authoritative time source
- Hashes of the patched binary captured from a representative sample of endpoints
- A signed change ticket recording who applied the patch and who verified it
- Excerpts from the SIEM showing the vulnerable code path is no longer invoked
Documenting evidence for auditors and regulators
Validation that lives only in the heads of the responders is validation that does not exist. Every step above needs to be captured in a structured record that an external reviewer can follow without privileged context. The incident file should include the baseline snapshot, the asset-by-asset remediation log, the corroborating scanner output, the runtime evidence, and a short narrative explaining how each piece of evidence answers the question "is the exploited weakness closed?".
In Australia this documentation serves more than one audience. The Office of the Australian Information Commissioner may request it during a Notifiable Data Breaches investigation. APRA-regulated entities must produce evidence of control effectiveness for CPS 234 assurance reviews. Insurers increasingly require post-incident validation reports before honouring a claim, and customers of affected organisations from Parramatta to Hobart are beginning to ask for proof as part of vendor due diligence. A single, well-organised evidence package satisfies all of these stakeholders and protects the security team from the cycle of repetitive questioning that otherwise follows a serious incident.
Closing the loop with continuous monitoring
Validation does not end when the incident closes. The same vulnerability class will reappear, the same misconfiguration will tempt the next attacker, and the same compensating control will drift unless someone is watching. A patch that is correct today is only one missing update away from being exploitable again next quarter. Continuous monitoring, automated re-scanning on a weekly cadence, and alerting on regression to a known-bad state turn a one-off validation exercise into a sustained control.
Tie the patch verification workflow into the existing vulnerability management cycle rather than treating it as an incident-only artefact. Report the metrics into the same governance forum used for phishing simulations and identity hygiene, so that the board sees patch validation as a standing measure of resilience rather than a fire-fighting activity reserved for the bad days.
A defensible answer to "did the patch actually work?" starts with a frozen baseline, runs through asset mapping and independent verification, and ends with a continuous loop that watches for regression. Take one concrete next step today: open the most recent incident in your environment, open its remediation ticket, and check whether the patched binary, the running service, and the scanner all agree on the same answer, because if they do not, the work above has already paid for itself.