Penetration Testing Agreement Template: Free Download 2026

You're probably in one of two situations right now. Either you've got a client asking for a penetration test “ASAP” and you need something better than a recycled PDF from an old job, or you've already learned the hard way that a vague agreement creates more trouble than the test itself.
Most pentest disputes don't start with a dramatic legal fight. They start with small ambiguities. A client assumes authenticated testing is included. A tester assumes production rate limits are acceptable. Someone expects retesting. Someone else thinks social engineering is out of scope. By the time the report lands, both sides think the other side changed the deal.
That's why a solid penetration testing agreement template matters. It isn't just legal paperwork. It's the operating manual for the engagement. If the contract doesn't reflect how the test will run, you'll feel that gap everywhere: in kickoff calls, evidence collection, reporting, remediation, and sign-off.
Anatomy of a Bulletproof Pentest Agreement
A good agreement should read like the engagement will run on a bad day, not just on a good one. If a client's monitoring team blocks your traffic, if a critical system starts struggling, or if a tester uncovers sensitive data, the document should already tell both sides what happens next.
That's the practical standard. Not “looks professional”. Not “mentions confidentiality”. It needs to remove uncertainty.

Scope that can survive kickoff pressure
The first clause to get right is the scope of work, a common failing point for weak templates. “External web application testing” isn't scope. “The customer portal and associated API endpoints listed in Appendix A” is much closer. You want named assets, environment labels, ownership, exclusions, and whether the work is black-box, grey-box, or authenticated.
If you need a practical starting point for that piece alone, Vulnsy's penetration testing scope of work template guide is useful because it focuses on boundaries, authority, evidence handling, and sign-off rather than generic sales language.
What works in scope language:
- Named assets: List systems, applications, network ranges, cloud workloads, mobile builds, and third-party hosted components individually.
- Explicit exclusions: Say what won't be touched, including production dependencies, payment flows, wireless networks, or employee inboxes if they are out of scope.
- Test perspective: State whether the tester has credentials, source material, architecture documents, VPN access, or no prior knowledge.
What doesn't work is broad wording that leaves room for interpretation. “Any connected systems necessary to complete testing” is an invitation to a dispute.
Practical rule: If a technical lead and a legal reviewer would interpret the same sentence differently, rewrite it.
Rules of engagement that map to real testing
The next part is the rules of engagement. This is the clause that decides whether your test is controlled or chaotic. The strongest agreements define what methods are allowed, what methods are prohibited, when testing can occur, and who can change those conditions.
Sample wording you can adapt:
Testing will be limited to the techniques authorised in this agreement and its appendices. Any material change to attack method, target set, testing window, or access path requires written approval from the client's named approver before execution.
That one sentence prevents a common mess. A tester starts with app testing, finds a path to internal infrastructure, and keeps going because it feels like fair game. Technically interesting, contractually dangerous.
A dependable template should also state:
- Testing windows so nobody is surprised by overnight scans or weekend exploitation.
- Rate and safety limits for legacy systems, fragile services, and bandwidth-sensitive environments.
- Escalation conditions for pausing the engagement if system stability is at risk.
- Emergency contacts on both sides who can make decisions quickly.
This is also where broader contract discipline helps. Clients that already understand the basics of protecting your business with agreements are usually easier to onboard because they expect precision around approvals, responsibilities, and change control.
Roles, access, and client dependencies
A pentest fails unremarked when everyone assumes someone else owns setup. The agreement should say who provides credentials, whitelisting, test accounts, architecture diagrams, VPN access, and internal points of contact. It should also say what happens if those prerequisites are late or incomplete.
Use plain language here. For example:
- Client responsibilities: Provide accurate asset inventory, access prerequisites, and notice of business-critical periods.
- Tester responsibilities: Conduct testing within the approved scope, maintain evidence, and report material issues through agreed channels.
- Shared responsibilities: Confirm assumptions before authenticated or disruptive testing begins.
“Delay” and “scope gap” often come from missing client inputs, not poor testing. If that isn't documented, the tester ends up absorbing schedule risk that should have been visible from the start.
Deliverables that match the buying decision
Many templates underspecify the report. That's a mistake. Clients buy a pentest for the findings, the evidence, and the remediation guidance. If the agreement is vague on deliverables, everyone imagines a different report.
State the format and content clearly:
- Report type: Draft report, final report, executive summary, or technical appendix.
- Finding structure: Risk rating model, affected assets, evidence, reproduction steps, impact, and remediation advice.
- Delivery process: Who receives the draft, who can challenge factual errors, and when the final version is issued.
A clause worth adding is whether screenshots, proof-of-concept material, exported data samples, and raw notes will be included in the final package or retained separately. That sounds minor until a client asks for evidence that was never meant to leave the tester's secure workspace.
The report is a deliverable. Raw tester notes usually are not. If you don't draw that line in the agreement, someone will draw it for you later.
Confidentiality, change control, and exit paths
Every mature template needs a strong confidentiality clause, but the practical value isn't in saying “information is confidential”. It's in describing how findings, credentials, logs, screenshots, and extracted data will be handled during and after the job.
Keep this operational. Define secure transmission methods, storage expectations, access restrictions, and disposal or return procedures. Also specify whether anonymised findings may ever be reused internally as generic knowledge assets. If that's not permitted, say so.
Then add change control and termination language. Scope always moves under pressure. A stakeholder joins late and asks for one more host, one more tenant, one more app. Without written change control, small additions accumulate into unpaid work and unplanned risk.
Include a short clause stating that any new target, method, or objective becomes effective only after written approval. Pair that with a termination clause that covers serious safety concerns, client non-cooperation, or legal uncertainty. A contract should make it easy to stop before things get messy, not after.
Customising Your Agreement for Any Engagement
A reusable template is useful. A one-size-fits-all agreement isn't. The same wording that works for an external web application test can be dangerously incomplete for a cloud review, a physical intrusion exercise, or a social engineering engagement.
The fastest way to improve your template is to keep a stable core, then swap in scenario-specific clauses.
Agreement customisation by pentest type
| Test Type | Key Clause to Customise | Consideration |
|---|---|---|
| External infrastructure | Scope and source IP handling | Define exposed targets clearly and agree how client monitoring or blocking will be handled |
| Internal network | Access prerequisites | Clarify VPN, onsite access, test workstation rules, credentials, and lateral movement boundaries |
| Web application | Authenticated testing and test accounts | State user roles provided, data handling expectations, and whether multi-step workflows are in scope |
| Cloud environment | Shared responsibility and tenancy boundaries | Confirm which accounts, subscriptions, projects, and managed services can be tested |
| Mobile application | Build provenance and backend dependency scope | Specify app version, platform, test device assumptions, and whether APIs are included |
| Physical security | Site boundaries and de-escalation | Define locations, times, prohibited actions, identity verification, and stop conditions |
| Social engineering | Target groups and approval chain | Limit authorised pretexts, communication channels, and who can approve expansion |
Where templates need real edits
External and internal tests look similar on paper, but they fail in different places. External engagements usually need tighter language around exposed assets and alerting. Internal work needs stronger wording on credentials, segmentation boundaries, and whether pivoting across trusts is allowed.
Cloud tests need more care than many consultants expect. You can't treat “the AWS estate” or “our Azure environment” as a single target. The agreement should pin down which accounts, resource groups, workloads, and interfaces are in scope. It should also address data residency, third-party managed services, and whether testing could affect shared infrastructure controls.
Mobile work often goes wrong because the app is defined, but the backend isn't. If the contract says “mobile app pentest” and says nothing about APIs, identity flows, push services, or admin panels, the report will be narrower than the client expects.
High-risk engagement types
Physical and social engineering engagements need bespoke wording. For physical work, define authorised sites, time windows, safety limits, identification process, and de-escalation steps if security staff intervene. You don't want your “test plan” to rely on a receptionist understanding context in real time.
For social engineering, set the target population, approved channels, excluded groups, and reporting thresholds up front. Also define what happens if the exercise touches personal or sensitive information unexpectedly. These projects generate the most emotional fallout when the contract is imprecise.
Tailor the clauses that change operational risk. Don't waste time rewriting boilerplate that doesn't.
Navigating Legal and Compliance Guardrails
A penetration testing agreement becomes legally meaningful when it turns intent into documented authority. In the UK, that point matters more than many juniors realise.

The core issue is simple. In the UK, a penetration testing agreement template is usually anchored in a written authorisation and a tightly defined scope, because the Computer Misuse Act 1990 makes unauthorised access a criminal offence. The law was enacted on 29 July 1990 and has been the core statutory backdrop for lawful security testing ever since. For a template to be operationally sound, it should specify exactly what systems, applications, or networks are in scope, what methods are permitted, who can approve the work, and how the parties will document consent, timelines, confidentiality, reporting, and termination. That structure is the mechanism that turns a simulated attack into a legally defensible engagement in the UK market, as explained in this overview of a UK penetration testing agreement template and authorisation requirements.
Authorisation isn't a formality
A statement of work on its own often isn't enough. What matters is whether the document clearly shows that the system owner, or an authorised representative, permitted this specific testing activity against these specific assets. If that approval chain is fuzzy, the tester carries avoidable risk.
That's why signature workflow matters. If you're deciding how approvals should be captured, this guide on compare digital and electronic signing is a useful practical reference when you're choosing a process that fits your clients' procurement and audit habits.
Written approval should pair with detailed pre-engagement controls. In a UK-focused penetration testing agreement template, the most operationally important technical clause is the pre-engagement control set. The contract should explicitly define the exact in-scope assets, authorised techniques, testing windows, bandwidth or legacy-system restrictions, and reporting or termination triggers before any live testing begins. That lines up with PCI penetration-testing guidance, which specifically requires documenting restrictions such as designated testing hours, bandwidth limits, and special requirements for legacy systems because those constraints affect exploitability, blast radius, and business continuity during the engagement, as outlined in this PCI-focused penetration testing guidance discussion.
Data handling and liability language
Once testing starts, the agreement should already answer these questions:
- What data can the tester access: Credentials, logs, customer records, mailbox contents, and screenshots all create different handling obligations.
- How will evidence be stored and transferred: The contract should specify secure handling expectations without drifting into vague promises.
- When does the tester stop: If exploitation reveals a path into highly sensitive data or creates service instability, the agreement should define pause and notification triggers.
Liability clauses matter too, but they need to match the work. Overly aggressive disclaimers can undermine trust. Overly broad acceptance of risk can expose a small consultancy to losses it can't absorb. The practical approach is balanced wording that recognises pentesting can affect fragile systems, while still requiring the tester to operate within agreed boundaries and use professional judgement.
If the legal clauses don't map to real technical decision points, they won't protect anyone when the engagement gets tense.
The Pre-Engagement Reviewer Checklist
The cleanest agreements still benefit from a final review pass. This is the part many teams skip because everyone wants to start testing. That impatience causes avoidable mistakes.

A good pre-flight review is collaborative. It isn't the pentester interrogating the client or the client trying to trap the consultant. It's both sides checking that the document matches the environment that will be tested. For a helpful walkthrough of the broader flow, this overview of how penetration testing is done is a useful refresher.
Checks for the pentester
- Confirm asset reality: Compare the contract against DNS records, app URLs, environment names, cloud account labels, and supplied diagrams. If the paperwork says “staging” but the credentials land you in production, stop and resolve it.
- Pressure-test assumptions: Ask whether authenticated roles, MFA bypass methods, VPN access, IP allowlisting, and security tooling notifications are already approved.
- Review stop conditions: Know exactly when you must pause. Don't rely on judgement alone if the agreement can define it.
- Verify report expectations: Confirm who receives critical issue notifications, who reviews draft findings, and whether remediation advice must fit internal client standards.
Checks for the client
- Name an approver: One person should have authority to confirm scope changes, approve pauses, and answer time-sensitive questions.
- Provide useful artefacts: Network diagrams, asset lists, app workflows, test accounts, and environment notes reduce confusion more than long legal appendices do.
- Set realistic windows: Avoid release nights, maintenance periods, finance cut-offs, and peak transaction hours.
- Agree internal communications: SOC, IT operations, service desk, and senior stakeholders should know the test is happening and know what not to disrupt.
The review checklist exists to catch contradictions before they become incidents.
One last alignment check
Before signatures, ask one blunt question: “If a critical finding appears on day one, do we all know who gets called, what evidence will be shared, and whether testing continues?” If the answer isn't immediate, the agreement is not ready.
That single question exposes weak escalation paths faster than any legal redline.
Integrating Your Agreement into the Pentest Workflow
The strongest engagement teams don't treat the signed agreement as a document that disappears into a folder. They use it as the source of truth for setup, execution, and reporting.
That starts with version control. Keep one master penetration testing agreement template, but store each signed engagement with its appendices, approvals, and later scope changes in the same project record. If the tester is working from one scope version and the account manager is quoting another, the project is already drifting.

Turn contract terms into project fields
The most useful operational habit is to convert agreement clauses into structured project settings. That means taking the signed scope and entering:
- In-scope assets as named targets
- Out-of-scope assets as explicit exclusions
- Testing windows as working constraints
- Notification rules as escalation contacts
- Deliverables as reporting outputs and review steps
When teams skip that translation step, the report starts to diverge from the contract. Findings show up against excluded assets. Evidence gets attached without client-ready context. Draft reports include sections nobody agreed to pay for.
Reporting platforms can be helpful when they mirror the contract instead of replacing it. Vulnsy is one option here. It lets teams scope projects, document findings, attach screenshots and proof-of-concept material, and export branded deliverables, which makes it easier to keep report structure aligned with the engagement terms rather than rebuilding the same formatting by hand in Word.
Build around repeatable methodology
A strong UK agreement template should map the work to a structured methodology such as PTES, which defines pentesting in 7 phases: pre-engagement interactions, intelligence gathering, threat modelling, vulnerability analysis, exploitation, post-exploitation, and reporting. OWASP notes that PTES also gives hands-on guidance on what and how to test, including rationale and recommended tools, which makes it useful for contract language tied to a repeatable workflow instead of vague “best efforts” wording, as noted in the OWASP overview of penetration testing methodologies and PTES.
That matters operationally. If the agreement references pre-engagement, exploitation boundaries, and reporting outputs in PTES-style language, the tester can map notes, evidence, and findings to known stages. It reduces ambiguity in status updates and final deliverables.
Fewer surprises at report time
The practical payoff is simple. When the agreement feeds the workflow, the final report feels expected. The client sees findings against approved targets, in the agreed format, with the right reviewers already in the loop.
That's a much better outcome than trying to reconstruct scope from email threads after testing is finished.
Managing Post-Test Remediation and Responsibilities
The report isn't the finish line. It's the handover point. A mature penetration testing agreement template should define what happens after delivery, because remediation work creates its own disputes if expectations are vague.
Set remediation ownership early
The agreement should state that the client owns remediation planning and implementation unless separate support is included. That sounds obvious, but many clients assume testers will validate fixes informally over email or review partial changes without a new work order.
Keep the language direct:
- Client responsibility: Review findings, prioritise remediation, and coordinate internal changes.
- Tester responsibility: Clarify factual questions about reported findings within the agreed support window.
- Shared responsibility: Agree whether retesting is included, limited, or separately quoted.
Define retesting boundaries
Retesting needs boundaries just as much as the original engagement. If it's included, specify whether it covers only previously reported findings, whether new vulnerabilities discovered during validation will be documented, and whether infrastructure or application changes outside the original scope require a separate agreement.
This avoids a common trap. The client patches one issue, changes three systems around it, and expects a mini-pentest for free.
Good retesting language protects the relationship. It keeps validation focused and stops the original scope from quietly expanding after delivery.
Close out evidence and access
The final clause to tighten is post-project data handling. The agreement should state how long evidence, screenshots, exported artefacts, and notes will be retained, who can access them, and how they'll be securely destroyed or returned.
Also cover credentials and access clean-up. Test accounts, VPN profiles, temporary allowlisting, portal access, and shared workspaces should all be revoked or confirmed inactive at closeout. If you leave that vague, dormant access becomes tomorrow's awkward email.
A professional engagement ends with clear ownership, limited loose ends, and no uncertainty about what remains in the tester's possession.
A signed agreement is only useful if it stays connected to the work. If you want a cleaner way to carry approved scope, evidence, findings, and client-ready reporting through the whole engagement, Vulnsy is built for that operational side of pentesting without the usual copy-paste and formatting overhead.
Written by
Luke Turvey
Security professional at Vulnsy, focused on helping penetration testers deliver better reports with less effort.


