How to Read Your Penetration Test Report
A penetration test report is an action list, not a verdict on your team. This guide walks you through the parts that actually drive decisions: how CVSS v3.1 scores map to severity, how to sequence fixes by risk versus effort, what a proof of concept and a false positive really mean, and how verification re-testing and the report itself support SOC 2, ISO 27001, and PCI DSS.
The anatomy of a good report
Most professional reports follow a predictable structure, and knowing it lets you find what you need fast. The executive summary is written for leadership: scope, overall risk posture, and the two or three themes that matter most. The methodology section states what standard the test followed — commonly the OWASP Web Security Testing Guide (WSTG) for web apps, OWASP ASVS as the verification baseline, and PTES for the overall engagement flow — plus the dates, environment, and any constraints. The findings section is the working core: one entry per issue, each with a severity, a CVSS vector, evidence, and a fix. An appendix usually holds scope details, tooling, and out-of-scope items.
- Executive summary — for decision-makers, no jargon, overall risk and themes
- Scope and rules of engagement — exactly what was tested, when, and what was off-limits
- Methodology — the standard followed (OWASP WSTG/ASVS, PTES, NIST SP 800-115)
- Findings — the ranked, actionable list you will spend most time in
- Appendices — evidence, tool output, and reproduction detail
What CVSS v3.1 scores actually mean
CVSS (Common Vulnerability Scoring System) v3.1 turns a set of characteristics into a 0.0–10.0 number and a matching severity band. The Base score answers 'how bad is this vulnerability in principle' using the metrics you see in the vector string, for example CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H (a score of 9.8). Read the vector, not just the number: Attack Vector (Network/Adjacent/Local/Physical), Attack Complexity, Privileges Required, User Interaction, Scope, and the Confidentiality/Integrity/Availability impacts.
- 0.0 = None, 0.1–3.9 = Low, 4.0–6.9 = Medium, 7.0–8.9 = High, 9.0–10.0 = Critical
- AV:N (network-reachable) is far more urgent than AV:L (local access needed)
- PR:N + UI:N means no login and no victim action required — treat as more dangerous
- S:C (Scope: Changed) means the flaw breaks out of its component and affects others
- Base score is context-free; a good report adds environmental context on top
Severity is a starting point, not the whole story
The CVSS Base score is deliberately context-free — it does not know that a 'High' finding sits on an internal admin tool reachable only over VPN, or that a 'Medium' sits on your public checkout page. That is why CVSS also defines Environmental metrics that adjust the score for your specific deployment (asset value, existing mitigations, exposure). A mature report either applies this adjustment or gives you the business context to do it. The practical rule: use the vendor's severity to triage, then re-rank against what the affected asset is worth and who can reach it.
- A Medium on an internet-facing, unauthenticated endpoint can outrank a High on an isolated box
- Compensating controls (WAF, network segmentation, MFA) legitimately lower real-world risk
- Chained findings matter: two Mediums that combine into account takeover are effectively a Critical
- Ask your tester to explain any severity you disagree with — the reasoning should be transparent
Prioritizing remediation: risk × effort
You cannot fix everything at once, and you should not try. Plot each finding on two axes: risk (severity adjusted for your environment) and remediation effort (hours, blast radius, deployment risk). The sequence that protects you fastest is: first the high-risk, low-effort items — the quick wins that remove real exposure cheaply (a missing security header, a default credential, an outdated dependency with a patch available). Next, high-risk, high-effort items get a scheduled project and an interim compensating control. Low-risk, low-effort issues get batched into routine maintenance. Low-risk, high-effort items are candidates for documented risk acceptance.
- Quadrant 1 — high risk, low effort: do now, these are your emergency patches
- Quadrant 2 — high risk, high effort: plan and resource, add a temporary mitigation meanwhile
- Quadrant 3 — low risk, low effort: fold into the next maintenance window
- Quadrant 4 — low risk, high effort: accept the risk formally or defer with an owner and date
- Assign every finding an owner and a target date — an unowned finding never gets fixed
Proof of concept: evidence you can trust
A proof of concept (PoC) is the tester demonstrating that the vulnerability is real and exploitable, not theoretical. It typically includes the exact request or steps, the response or result that proves impact, and enough detail for your developers to reproduce it in a safe environment. A good PoC is the difference between 'a scanner flagged this' and 'we retrieved another customer's data using this request.' Reproduce the PoC yourself in staging before and after the fix — that is how you confirm both the problem and the solution, rather than trusting either report on faith.
- Look for the concrete request/payload, the observed result, and reproduction steps
- Screenshots or captured responses should show impact, not just a tool warning
- PoCs are demonstration, not exploitation — a professional test stops at proof, it does not weaponize
- If a finding has no PoC and no clear reasoning, ask whether it might be a false positive
False positives and false negatives
A false positive is a reported issue that is not actually exploitable in your context — for example a scanner flagging a library version as vulnerable when the vulnerable code path is never called, or a 'reflected input' that is safely encoded. Human-led penetration testing exists largely to eliminate these: a real tester validates each machine-generated hint before it reaches your report. The harder problem is the false negative — a real vulnerability the test did not find. No test proves the absence of all bugs; that is why scope, time-boxing, and methodology transparency matter, and why testing is periodic rather than one-and-done.
- False positive = reported but not real/exploitable; validated reports should have very few
- False negative = a real issue that was missed; managed by scope, coverage, and repeat testing
- If you believe a finding is a false positive, respond with evidence — testers welcome correction
- A pass with zero findings is not a guarantee of security, only of what this test covered
Re-testing and verification
Fixing a finding is a claim; verification is the proof. After you remediate, the tester re-runs the original proof of concept against your patched system to confirm the fix holds and did not simply move the problem elsewhere. Most engagements include a verification round within a defined window (often 30–90 days). The output is an updated report where each fixed item is marked verified/closed with a re-test date, and anything still exploitable is reopened. This closed-loop record — found, fixed, re-tested, closed — is exactly what auditors and customers want to see.
- Verification replays the original PoC, not a fresh generic scan
- Expect statuses like Open, Remediated (client-reported), Verified/Closed, and Risk Accepted
- Confirm the re-test window before the engagement so fixes land inside it
- A partial fix should be reopened — verification protects you from 'looks fixed' regressions
Using the report for compliance
The same report supports multiple frameworks, but each reads it differently. For SOC 2, the pentest is evidence for the security criteria of the Trust Services Criteria — auditors want to see the test happened, findings were tracked, and remediation was managed. For ISO 27001, it feeds Annex A technical controls (notably A.8.8 management of technical vulnerabilities and A.8.25/A.8.29 secure development and security testing in the 2022 revision) and your risk treatment process. For PCI DSS v4.0, penetration testing is a hard requirement under Requirement 11.4, with defined scope (external and internal), annual cadence, testing after significant change, and verification that segmentation controls actually isolate the cardholder data environment.
- SOC 2 — demonstrates the security criteria; auditors check test + tracking + remediation
- ISO 27001:2022 — supports Annex A.8.8, A.8.25, A.8.29 and your risk treatment plan
- PCI DSS v4.0 — Requirement 11.4: annual + post-change testing, internal and external, segmentation checks
- Give auditors the report plus the remediation tracker and verification results, not the report alone
- Keep the scope statement — it defines exactly what the assessment does and does not cover
Common mistakes to avoid
The failure mode is not the report — it is what happens after it. Teams that get value from a pentest treat findings as a tracked backlog with owners and dates, verify their fixes, and re-test on a cadence. Teams that do not tend to fix only the Criticals, file the report for the auditor, and rediscover the same Medium a year later. Two habits matter most: never let severity alone drive your order of work without adjusting for exposure, and never mark something fixed without verification.
- Don't fix only Criticals — chained Mediums cause real breaches
- Don't treat the report as a compliance artifact to be filed and forgotten
- Don't self-certify fixes — get them verified
- Don't ignore accepted risks — review them each cycle, ownership and context change
Key takeaways
- ›Read the CVSS vector, not just the number — network-reachable, no-auth, no-interaction issues are the urgent ones
- ›CVSS Base is context-free; re-rank findings by what the asset is worth and who can reach it
- ›Prioritize by risk × effort: high-risk/low-effort quick wins first, then plan the expensive high-risk work
- ›A proof of concept makes a finding real; reproduce it yourself before and after the fix
- ›Verification re-tests the original PoC — never mark a finding fixed without it
- ›The same report supports SOC 2, ISO 27001:2022 (A.8.8) and PCI DSS v4.0 Req 11.4 — keep the tracker and re-test results
FAQ
What CVSS score counts as urgent?+
Anything 9.0–10.0 is Critical and 7.0–8.9 is High, but read the vector too. A 7.5 that is network-reachable with no authentication and no user interaction (AV:N/PR:N/UI:N) on an internet-facing asset often deserves faster action than a nominally higher score buried behind VPN and MFA.
The report says a finding is exploitable but our developers disagree. What now?+
Reproduce the proof of concept in a safe environment. A professional finding includes the exact steps and evidence to do this. If it reproduces, it is real; if it genuinely does not apply in your context, send that evidence back to the tester — legitimate false positives are corrected, not defended.
Do we have to fix every finding before we're 'secure'?+
No. Fix by risk-adjusted priority: high-risk items promptly, low-risk items on a maintenance cadence, and formally accept residual low risk where remediation cost outweighs benefit. Security is a managed-risk posture with owners and dates, not a zero-findings state.
How does re-testing work?+
After you remediate, the tester replays the original proof of concept against your fixed system to confirm the vulnerability is genuinely closed and the fix introduced no regression. Findings move to Verified/Closed, and anything still exploitable is reopened. Most engagements include this within a 30–90 day window.
Will this report satisfy our auditor?+
It's core evidence for SOC 2, ISO 27001:2022 (Annex A.8.8 and secure-testing controls) and PCI DSS v4.0 Requirement 11.4 — but auditors want the whole loop: the report, a remediation tracker with owners and dates, and verification results showing fixes were confirmed. Provide all three.
Have a report you're unsure how to action? Our team will walk you through your findings, prioritization, and verification — book a report review.