Penetration testing remediation: plan, timeline and retest

By The PenTest Index · Retest terms and rule text checked October 9, 2026

Penetration testing remediation is the work that follows the report: decide whether to fix, mitigate, accept or dispute each finding, then have the fixes retested. Your own risk decisions set the fix dates, but the free retest has a hard stop. Astra's Pentest Expert and Pentest Auto windows close 30 days after findings are reported; its Enterprise window closes after 90 days. Find your date first.

Most teams do not need to buy anything new to do this well. You need a plan, an owner for each finding, and the retest you already paid for, used before it expires.

Penetration testing remediation in five steps

Do these in order, and do the first one today.

  1. Find your retest clause. Work out the last day you can ask for a retest. Jump to the dates.
  2. Give every finding one decision: fix, mitigate, accept or dispute. See the four choices.
  3. Name an owner and a date for each one. Copy the plan.
  4. Fix it, then test your own fix before the tester sees it.
  5. Request the retest and keep the proof. Copy the request.

How long do you have? Start with the retest deadline

You are working to three different dates, and the one people miss is the retest cutoff.

Table columns: Date; What it is; Where you find it.
DateWhat it isWhere you find it
Fix dateWhen you have decided each weakness must be dealt withYour own policy, your contract, or a rule you answer to
Retest cutoffThe last day your provider will check a fix under the deal you boughtYour agreement and the provider's written policy
Proof dateWhen your customer, auditor or boss needs to see the resultAsk them

An included retest can be limited by the last day you may request it, the date the fix must be ready, or the date the retest must happen. Miss the applicable condition and you may pay again or have no outside proof at all.

What six providers publish about retests

We read each provider's own page on October 9, 2026. To make the windows concrete, we worked out the relevant date where the published term gave enough information for one made-up engagement: findings reported and testing finished on Friday, October 23, 2026, final report delivered Friday, October 30, 2026. These are the providers' published terms, not your contract.

Table columns: Provider and offer; Checks of your fixes included; Window, and what starts it; Example date or remaining unknown; After that.
Provider and offerChecks of your fixes includedWindow, and what starts itExample date or remaining unknownAfter that
Astra, Pentest Expert2 manual rescans30 days from the date the vulnerabilities were reportedCalculated 30-day date: Sun, Nov 22, 2026; confirm the exact cutoffExtension case by case; extra rescans sold as an add-on, price not published
Astra, Pentest Auto1 manual rescan30 days, same startCalculated 30-day date: Sun, Nov 22, 2026; confirm the exact cutoffSame
Astra, Enterprise4 manual rescans90 days, same startCalculated 90-day date: Thu, Jan 21, 2027; confirm the exact cutoffSame
BreachLock, Standard / Extended1 / 2 free manual retestsNot stated on the pricing pageUnknown. Ask.Not stated
Cobalt, Standard tier (Agile and Comprehensive pentests)Pricing FAQ says unlimited on-demand retesting6 months, only while your contract is active, and never later than 10 days before the contract endsDepends on your contract end dateAsk your customer success manager for an extension
Cobalt, Premium / EnterprisePricing FAQ says unlimited on-demand retesting12 months, same contract ruleDepends on your contract end dateSame
HackerOne, Essential pentestUnlimited retests, no extra cost30 calendar days after the testing phaseCalculated 30-day date: Sun, Nov 22, 2026; confirm the exact cutoffStill possible while your service is active, if you have a card on file or pentester fee balance over $50; fee set per retest, minimum $50
HackerOne, Premium pentestUnlimited retests, no extra cost90 calendar days after the testing phaseCalculated 90-day date: Thu, Jan 21, 2027; confirm the exact cutoffSame
Syslifters1 free retest, with an updated reportFindings fixed within 8 weeks after report deliveryCalculated eight-week date for completed fixes: Fri, Dec 25, 2026; request deadline not statedNot stated
Triaxiom1 free retestRetest within 90 days of report deliveryCalculated 90-day date for the retest: Thu, Jan 28, 2027; request deadline not statedNot stated

Listed A to Z. This is not a ranking, and "published" does not mean we tested the service. Sources: Astra rescan rules, BreachLock pricing, Cobalt retest rules, HackerOne customer and tester retest pages, Syslifters procedure, Triaxiom retest terms. Astra and HackerOne do not explain whether the first or final calendar day counts. Syslifters and Triaxiom do not state a separate request deadline for their fix or retest windows. Cobalt gives its contract cutoff as 23:59 UTC. Ask your provider to confirm the exact date.

Four things in that table change what you should do:

  • Astra counts batches, not tries per finding. Two manual rescans means two rounds. Astra's own advice is to fix at least half of your critical and high findings before using one. Its unlimited automated rescans only cover findings its scanner found, so they will not confirm a fix for something a person found.
  • Cobalt's two pages disagree. Its pricing FAQ promises "unlimited on-demand retesting throughout your contract term." Its help article limits free retesting to 6 or 12 months and closes requests 10 days before the contract ends. Say your contract ends December 31, 2026: the cutoff is December 21 at 23:59 UTC, and a fix ready on December 23 is too late. The help article's own example also calls January 3 to June 3, 2026 "6 months." Get your retest end date in writing.
  • HackerOne's $50 is a floor per retest, not a total. HackerOne says to weigh the effort involved when you set the fee.
  • "Reported" needs a date. Astra starts its window when vulnerabilities are reported, which may differ from the end of testing or final report date.

Which terms fit which team?

  • Your fixes need a full release cycle or a vendor patch: 30 days is tight. You want 90 days or more, or an extension agreed in writing now.
  • You fix in small batches: unlimited per-finding retests suit you better than one or two counted rounds.
  • Your annual contract ends soon: the contract cutoff may arrive before the advertised window does.
  • Someone needs proof by a date: count back from their date, not from the window.

Already a customer? Check the rules for the test you bought.

Read Astra's rescan rules

Read Cobalt's retest rules

Read HackerOne's retest rules

If your provider is not in the table, or your test came bundled through a compliance platform or reseller, send whoever sold it this one question:

For this engagement, how many retests are included, what is the last date we can request one, what event starts that clock, and what does a retest cost after that date? Please confirm in writing.

Work out your own dates

Put in what your agreement says. Leave a box empty if you do not know; the tool will tell you what to ask instead of guessing.

Your agreement names the event: findings reported, testing finished, or report delivered.

Ask your provider

Optional examples

A worked example. Say the window starts October 23, 2026 and runs 30 days. Your provider says a retest takes 7 days, and your customer wants proof by December 1. The last request day is November 22. December 1 minus 7 days is November 24, so the window is the tighter of the two. Request by November 22, and aim earlier so a failed fix can get a second look.

Do you have to fix every finding?

No. Every finding needs a decision, and a fix is only one of four.

  • Fix. Remove the weakness.
  • Mitigate. Put something in front of it that lowers the risk while the real fix waits, such as a firewall rule. Write down what is still exposed.
  • Accept. A named person with the authority signs for the risk, with a reason and a review date.
  • Dispute. You think the finding is wrong or out of scope. Ask the tester to look again and keep it open until they answer.

Think of a home inspection that lists 30 items. You fix the wiring. You put a bucket under the slow leak until the plumber comes. You live with the squeaky door. You argue the one the inspector got wrong. What you do not do is throw the list away.

One condition matters here. An accepted risk still shows. Cobalt, for example, says findings marked Accepted Risk appear in the remediation section of the final report. If a customer or auditor will read that report, ask them in writing whether open or accepted findings are a problem before you accept anything. Accepting a risk inside your company does not cancel a duty you owe someone outside it.

What order should you fix findings in?

Start with what an outsider can reach and easily use, even when its label is lower than something buried deep inside your network.

The severity in the report is the tester's starting view. They rated the weakness, not your business. So add three facts of your own: can it be reached from the internet, what data or money does it touch, and does another finding chain through it?

Then fix causes, not samples. If the tester showed one page that leaks another customer's records, the same mistake may sit in three other pages built the same way. NIST's testing guide tells teams to work out the root cause of each finding for this reason (NIST SP 800-115, section 8.1).

We are not going to hand you a chart that says "critical in 7 days, high in 30." No rule we read sets one for every company, which the next section shows. Write your own numbers into your policy and then keep them.

What do PCI DSS and other rules say about remediation deadlines?

Less than most guides claim. The texts we could read ask for two things: fix according to risk, and check the fix.

Table columns: Source; What it says; What it does not say.
SourceWhat it saysWhat it does not say
PCI DSS Requirement 11.4.4Exploitable vulnerabilities and security weaknesses found during penetration testing are corrected "in accordance with the entity's assessment of risk as defined in Requirement 6.3.1," and "penetration testing is repeated to verify corrections."It gives no number of days. It applies to organizations that must meet PCI DSS, not to everyone.
PCI SSC Penetration Testing Guidance v1.1 (2017), sections 4.3.2 and 5.2.2Fix exploitable findings "within a reasonable period of time" after the test, then have the tester retest. A retest report should show the original test date, the retest date, the original findings and the retest results.It is guidance, not the requirement itself, and it is from 2017.
NIST SP 800-115, section 8.3Try the fix in a test environment first, get the system owner's approval, then put it in place and verify it by an audit, a retest, or signed documentation.No day counts. It is a guide, not a law for private companies.
CISA directive BOD 19-02It once gave US federal civilian agencies 15 days for critical and 30 for high findings on internet-facing systems.It is revoked. CISA replaced it with BOD 26-04 in June 2026. It was a directive to federal agencies, not a general requirement for private companies.

We read the PCI DSS clause in the PCI Security Standards Council's Self-Assessment Questionnaire D for Merchants (PCI DSS v4.0.1, October 2024). Other sources: PCI SSC guidance, CISA.

So where do your dates come from? From your own written policy, and from whoever needs the proof. Your auditor, assessor, customer or regulator decides what they will accept. Nobody else can promise it, including us.

Who fixes the findings: you or the pentest company?

You do. The tester explains each finding and checks the fix.

That split is on purpose. Your team owns the code and the servers. And a tester who repairs a weakness and then grades the repair is checking their own homework. This is our judgment, not a rule, and small teams sometimes have no choice.

Name these people for every finding. One person can hold more than one job.

Table columns: Job; Who usually does it; What they produce.
JobWho usually does itWhat they produce
Explain the findingThe tester, with your technical leadA shared view of what is affected and what "fixed" means
Make the changeYour engineer, IT admin or outside developerA reviewed change and the date it went live
Approve the date or an exceptionA manager with authority over the systemA written decision
Check the fixThe original tester, or another qualified personA result tied to the finding, with date and limits
Hand over the proofYour security or compliance leadAn honest status summary

If nobody on your side can make the changes, a retest will not help. You need hands, not another test. Ask your developer, IT provider or a security firm for a quote to do the fixing, and ask who will then check their work.

Pen test remediation plan template

Copy this and fill in one block per finding. It works in a spreadsheet, a ticket or a shared document.

REMEDIATION AND RETEST RECORD

Finding ID and title:
Report name and version:
Severity as reported:
What is affected (systems, versions, user roles):
Decision (fix / mitigate / accept / dispute):
Why this priority:
Fix owner:
Approver:
Who will check it:
Root cause:
Planned change:
Stopgap in place, if any:
Fix date, and why that date:
Retest cutoff, and what starts the clock:
Proof needed by, and who needs it:
What was changed, where, and when:
Our own check and result:
Retest requested on:
Retest result, date, and what was tested:
Status:
Still open or left over:
If accepted: reason, who signed, review date:

Keep passwords and keys in systems built to hold secrets, and keep step-by-step attack details in the protected report or another approved evidence system, not this record. This record is a planning aid, not permission to test; written authorization has to cover the actual targets and activities.

Use these status words, and use them strictly. They are our suggestion, not a standard.

Table columns: Status; What it means.
StatusWhat it means
OpenStill needs work
Ready for retestA change is live. Nobody outside has checked it yet.
BlockedThe check could not be run. Say why. This is not a pass.
Still open after retestPart of the weakness is still there
Verified fixedAn agreed check found the weakness gone, in the stated scope
MitigatedA stopgap lowers the risk. The weakness remains.
Risk acceptedA named person signed for it. This is a decision, not a fix.
DisputedWaiting on the tester's second look

What a filled-in plan looks like

This example is made up. Northwind Ledger is a pretend 30-person software company with one web app, an API and two included retest rounds that must be requested by November 22, 2026.

Table columns: Finding; Decision; Owner; Status on Nov 20.
FindingDecisionOwnerStatus on Nov 20
F-01: a user in one customer account can read another customer's records (High)FixAPI team leadVerified fixed, in staging
F-04: outdated software part with no patch released yet (Medium)MitigateIT leadMitigated. Firewall rule in place; upgrade when the patch ships.
F-09: error page shows too much detail (Low)AcceptCTO signedRisk accepted. Review in six months.
F-11: finding on a system outside the agreed scopeDisputeSecurity leadDisputed. Waiting on the lead tester.

One of four is verified fixed. That is the honest count, and it is the count Northwind gives its customer.

F-01 took three tries, and that is the useful part:

  • Nov 3. The first fix goes live and the developer's own checks pass. Status: ready for retest. Not fixed.
  • Nov 5. The tester cannot log in to the second test account. Status: blocked. Nobody writes "passed."
  • Nov 6. The retest runs. The page the tester first reported is now safe, but the bulk export still leaks another customer's records. Status: still open. One of the two retest rounds is gone.
  • Nov 12. A second fix covers the export. This time the team checks every path that touches customer records before asking.
  • Nov 13. The second retest passes on both paths, for both test accounts. Status: verified fixed, in staging.

Two lessons. Fixing the one example in the report is not the same as fixing the cause. And staging is not production: the customer may want proof of what is live, so Northwind asks them.

How do you request a retest?

Send the finding numbers, what you changed, and what the tester needs to check it. Vague requests burn retest rounds.

Please retest findings [IDs] from [report name and version].

We deployed [change reference] to [environment and version] on [date].

What should now happen: [what must be blocked, and what must still work].

Please include [user roles, accounts, paths or systems] within the agreed scope.
Differences from the environment you tested: [list, or none].

Test access will be provided through [approved channel]. Our testing
authorization and limits are in [reference].

Please confirm how many retests this uses, any extra fee, when you will run it,
and when we will receive [updated report or agreed evidence].

For each finding, please record what you tested, the result, the date, the
scope and anything you could not check. We need this by [date].

Send it through the channel your provider uses. On some platforms, changing a finding's status to "ready" does not by itself start a retest, so make sure someone confirms they received the request.

Can you retest one finding before the rest are ready? Sometimes. HackerOne's help page says you can request retests for single findings, even while testing is still running. Astra counts each manual rescan against a small quota, so batching is smarter there. Ask your provider which model you are on.

What proof do you get back?

You should get each finding marked fixed or not, with the date and what was checked. The PCI SSC guidance suggests a retest report show the original test date, the retest date, the original findings and the retest results. Stated speeds differ: Cobalt says its testers retest within seven days of your request, and HackerOne says results usually arrive within 72 hours once a tester picks up the request. Those are the providers' stated norms, not promises for your job.

After the last retest, remove the test accounts and any tools the tester left behind. The same PCI SSC guidance calls for it.

Is a rescan the same as a retest?

Not always. A rescan runs a scanning tool again. A retest has someone, or something, repeat the original attack. A scan can confirm a missing patch. It usually cannot confirm that one customer can no longer read another's data. Look at what was actually checked and what evidence comes back, not at the name. More on that difference: penetration testing vs vulnerability scanning.

What if the retest window closed, or a retest was never included?

Ask for an extension in writing first. It usually beats buying a new test. Then work down this list.

  1. Extension. Astra and Cobalt both say to ask your customer success manager. Neither publishes a price for it.
  2. A paid retest from the same provider. HackerOne publishes how its works: you set a fee per retest, minimum $50, while your service is active. Most providers quote it.
  3. Check it yourself and write it down. NIST's guide lists an audit or signed documentation as ways to verify a fix. That may satisfy your own management. It may not satisfy an outside reader, so ask them.
  4. Leave low-risk items for your next scheduled test. Record that choice as an accepted risk with a date.
  5. Verification from another firm. Some sell it as its own service. HALOCK, for one, describes retesting earlier findings by trying to reproduce them and then updating the original report. Its page gives no price, and does not say whether it will work from another firm's report. Ask both.

View HALOCK's remediation verification service

Is a retest enough, or do you need a new penetration test?

A retest primarily answers one question: are the old findings gone? It is not a new search across the full assessment scope.

Table columns: Your situation; What fits.
Your situationWhat fits
Same system, specific fixes to checkA retest of those findings
The fix rebuilt a large part of the systemA retest plus testing of what changed
New features, new systems or a new environment since the testA new, wider test
A rule or customer asks for a test every year or after big changesAsk them whether a retest counts. Do not assume it does.
You are not sure what the reader of the report needsAsk them before you buy anything

If your changes do call for a wider test, write down what was tested before, what changed, who needs the report and by when. Then every provider prices the same job, and their answers line up. Our free tool builds that checklist with you. Choose "To check that earlier findings were fixed" on the first question. There is no sign-up and nothing is sent to providers.

Build your scope checklist

Still choosing a provider for the first time? Three numbers decide how remediation will go: how many retests, how many days, and what starts the clock. See how to check them in a proposal under is a retest included, and when does it expire? and compare published retest terms on our comparison of penetration testing companies.

Quick answers

Is remediation the same as mitigation?

No. Remediation removes the weakness. Mitigation lowers the risk while the weakness is still there. Record them differently, because a reader of your report will treat them differently.

Can we check our own fixes?

Yes, and you should before asking for a retest. Whether your own check counts as proof depends on who is asking. PCI DSS, where it applies, says penetration testing is repeated to verify corrections. For a customer or auditor, ask what they accept.

Does a clean retest mean we will pass the audit?

No one can promise that. A clean retest shows the listed findings were not found again, in the scope that was checked, on that date. Your auditor or customer decides whether that is enough. Send them these questions for your report recipient before you treat the job as done.

How we checked

We read each provider page and rule document linked on this page on October 9, 2026, and did the date arithmetic ourselves. The offer terms in the provider table are what each provider publishes about itself; the calculated dates are ours. We did not buy or run any of these tests, and we have not confirmed any term with a provider in writing. Where a page was silent, we say "not stated" instead of guessing. Our method is described in how we check offers, and how we make money explains our funding. Payment plays no part in who is listed or in what order.

Sources

All checked October 9, 2026.