Back to Blog

Penetration Test Retest: Turn Findings into Verified Remediation

September 13, 2026 6 min read
Penetration Test Retest: Turn Findings into Verified Remediation
Last updated:

A penetration test report becomes useful when an owner can turn each relevant finding into a change and demonstrate its effect. Closing a ticket does not establish that the tested system changed. A fix may exist in a development branch, cover one access path or depend on a configuration that has not reached production.

A remediation and retest plan connects the original evidence to the deployed change and the observed result. This article proposes a working process for security managers, engineers and remediation owners. It keeps targeted verification separate from a new comprehensive assessment of the whole system.

Preserve the original finding

Give every finding a stable identifier and retain its original scope, evidence and assessment date. When transferring it into a ticket system, preserve the affected environment, component, account role and prerequisites. A shortened ticket title should not become the only description available to the engineer.

OWASP's reporting guidance recommends material that technical teams can use to understand and resolve findings, and linking previous findings to updated status in a retest. OWASP WSTG reporting guidance.

Keep sensitive reproduction material in the approved restricted location. The task should contain enough context for the assigned owner to act and a reference to the supporting evidence. Do not distribute live credentials or customer records simply because they appeared in the original assessment material.

Separate severity from the order of work

Severity helps describe the finding, but scheduling also depends on exposure, affected services, dependencies and available interim controls. An externally reachable authorization flaw may require a different response from a similar issue in an isolated retired component. Record the relevant facts rather than inventing a universal repair deadline.

Group findings that share a root cause. Several endpoints missing the same object-permission check may need one application-level change plus multiple validation cases. Keep the individual findings traceable so the group does not hide an endpoint that remains unresolved.

NIST SP 800-115 covers planning technical assessments, analysing findings and developing mitigation strategies. It is a foundational 2008 publication, not a newly issued testing standard. NIST SP 800-115. The register proposed here is an operational aid, not a claim that NIST mandates its exact fields.

Assign an owner and define the required outcome

The remediation owner should be able to coordinate the change, even when several teams contribute. Name the engineering, infrastructure or supplier dependencies and identify who can approve deployment. “IT” is not sufficiently precise if nobody can answer for the result.

Write the desired behaviour before selecting the implementation. For an object-authorization issue, the outcome might be that a user can access permitted records while requests for another tenant's records are denied. That statement leaves room for the application's architecture while giving the retester a clear boundary to verify.

Ask the owner to identify the root cause, the affected code or configuration family and any adjacent paths that use the same logic. A local symptom can disappear while the shared cause remains. The plan should explain why the proposed change reaches the relevant boundary.

Keep deployment evidence separate from code evidence

A reviewed commit shows a code change. A build reference identifies a package. A deployment record connects that package to an environment. The retest must identify which of these it actually examined.

If the fix is available only in staging, report the staging result and leave production verification explicit. Where production testing is restricted, agree what configuration or release evidence supports the deployment claim and what remains untested. Do not silently extend a staging result to every installation.

Useful register fields include the finding ID, affected environment, owner, root cause, planned action, fix reference, deployment date, retest scope, observed outcome and remaining limitation. Add a due date based on the organisation's risk decision and a review trigger for exceptions.

Design a retest that can distinguish outcomes

Start with the original conditions, adjusted for the deployed release. Confirm that the account role, target and relevant configuration still permit a meaningful test. A retired endpoint or an unavailable test account may prevent reproduction without showing that the underlying cause was repaired.

For a fictional invoice API, use synthetic records and two authorised test accounts with different access rights. Check that each account can perform its permitted action. Then verify denial when one account requests a protected record belonging to the other. Include related update or export paths where they share the affected permission logic and are in scope.

This is an acceptance design, not an instruction to access real third-party data. Agree the targets, test identities, actions and stop conditions before execution. A retest should produce sufficient evidence with the smallest necessary interaction.

Record why an attempted case was inconclusive. A timeout, network filter or application error is not interchangeable with an authorization decision. If the original action no longer succeeds, identify the observed control and the limitations of that explanation.

Use status labels with defined meanings

The following convention is a proposal for clear reporting. Organisations may use different labels, provided their meanings are explicit.

Status Meaning
Confirmed fixed Agreed checks support closure in the identified environment and release
Partially fixed Some relevant conditions are corrected and others remain
Still reproducible The tested condition can still be demonstrated
Not tested No sufficient retest result is available
Risk accepted An authorised risk decision exists; this does not mean the issue is fixed

Keep “unable to reproduce” as an explained observation when its cause is uncertain. Do not automatically convert it to confirmed fixed. If scope changes remove an asset from the review, record that scope decision separately from the technical status.

Report residual risk and close the loop

The retest report should link the original finding, tested change, date, environment, cases and result. Explain any remaining pathway or assumption. A reader should be able to distinguish a verified application correction from a temporary restriction that reduces exposure while the root cause remains.

When a finding stays open, specify the next action and responsible owner. When it closes, update both the technical register and the management view. Otherwise teams may continue reporting an obsolete risk or incorrectly claim that a partial fix completed the work.

Add suitable regression checks to the application's existing validation process when they protect the repaired boundary. Revisit the issue when relevant permission logic, deployment configuration or shared components change. A successful targeted retest supports a bounded conclusion at a particular time; it does not guarantee future security.

Frequently asked questions

Is a screenshot from the developer enough to close a finding?

It can support the change record, but it is not independent proof that the agreed condition is resolved in the target environment. Match the closure decision to the required evidence.

Does a retest replace a new penetration test?

A targeted retest checks selected findings and related agreed cases. A new assessment has its own scope and can examine changes and areas outside that retest.

Can accepted risk be marked as fixed?

No. Record the acceptance authority, rationale, review date and relevant restrictions. Keep the unresolved technical condition visible.

Related reading: API security assessments, security reporting and risk and security checklists.

For planning the next steps, see Vulnerability Prioritization: Beyond CVSS Scores and Writing Effective Penetration Test Reports.

Vid Grosek

Vid Grosek

Ethical Hacker & Penetration Tester

I help Slovenian companies discover security vulnerabilities before attackers do. With 18+ years of experience in cybersecurity.

All Posts

Comments

No comments yet. Be the first!

Leave a Comment

Enjoyed this article?

Subscribe to the newsletter for monthly security insights.

Subscribe