Supported document type
Detect tampered and deepfake Penetration Test Report
A penetration test report is the only vendor security artefact that is supposed to contain bad news, which is what makes a clean one suspicious. The frauds follow from that: critical findings downgraded to medium, an entire severity tier deleted, or a scope written so loosely that nothing was ever really in it. A report describing a broad environment with no high or critical findings is not evidence of a strong posture. TamperCheck reads the findings table and the file behind it.
API slug: pentest_report
Last updated:
What a genuine penetration test report contains
A report opens with an executive summary and a scope section naming what was tested: specific hosts, IP ranges, domains, application URLs, API endpoints, or the mobile builds and account roles supplied. The methodology section describes the phases worked through, reconnaissance, enumeration, exploitation, and post-exploitation, with the tooling used at each. Findings follow, each carrying an identifier, a title, an affected asset, a CVSS vector and base score, a severity, reproduction steps, evidence, and a remediation recommendation. A retest section records which findings were fixed and verified.
Findings are where the document checks itself. A CVSS v3.1 base score is derived from its vector string, so the score has to be what those metrics produce, and the severity label has to be the band the score falls in: 9.0 and above critical, 7.0 to 8.9 high, and so on down. Severity distribution is a signal in its own right, because a broad scope tested properly yields findings across several tiers. Scope and findings constrain each other too, since every finding names an affected asset that has to appear in the tested scope.
How penetration test report forgeries are made
Severity downgrading
A finding's severity label is lowered without its CVSS vector being touched, so a vector describing unauthenticated remote code execution over the network sits beside a medium label. The vector and the base score are derived values, and recomputing the score from the published vector is a check the forger almost never anticipates.
Finding deletion
Whole findings are removed so the report reads clean, and the summary counts are adjusted to match. Finding identifiers normally run in sequence, so a gap in the numbering, or a table of contents whose page references no longer land where they point, exposes the removal even when the counts were updated.
Scope vagueness
The tested scope is written broadly while the engagement covered one application, or the scope section is edited afterwards to claim assets never in it. Genuine scopes are specific to the point of listing hosts and ranges, so a scope described only as a cloud environment is doing work a real statement of work would not permit.
Test date and retest edits
Test dates are moved forward so an assessment from two years ago satisfies an annual testing requirement, or a retest section is added claiming findings were fixed and verified when no retest happened. The retest is the cheapest section to fabricate, because it contains no technical evidence, only assertions.
Testing firm identity reuse
A known security firm's branding and an assessor's signature are applied to a report the firm never produced. Branding appears on the cover, in the header and footer of every page, and in the signature block, and assembled reports drift between them: a different logo rendering on the cover, or a firm name that changes form in the footer.
Model-written reports
Language models produce complete reports with plausible findings, remediation text, and CVSS vectors that parse. They fail on specificity and provenance: a methodology section naming no tools, findings with no reproduction steps or evidence, and producer metadata pointing at an online editor rather than the tooling security firms actually report from.
What TamperCheck checks on a penetration test report
TamperCheck runs 200+ forensic checks across three layers and returns a risk score from 0 to 100 with plain-English findings tied to specific regions of the document. These three carry the most weight on this document class.
Table structure integrity
Inserted and deleted rows leave structural artifacts behind: inconsistent spacing, misaligned columns, and formatting the visible table no longer accounts for.
Signature forgery analysis
Signature regions are assessed for ink consistency and for how the stroke sits on the page, which distinguishes a genuine pen stroke from a pasted image of one.
Letterhead, logo, and issuer plausibility
Issuer branding is checked for resolution and compression consistency against the body text it sits on. A logo lifted from a website carries the signature of its source, not of the document.
And many more checks
The three above are the layers that carry the most weight on a penetration test report. Every upload runs the full suite of 200+ checks regardless of document class, spanning file structure and metadata, pixel-level forensics, font and text rendering, optical and print characteristics, provenance signals, AI-generation signatures, and many more checks.
Who verifies a penetration test report, and why
Security and procurement teams assessing vendor posture. In each case the document is being used to unlock money, access, or a legal status, which is exactly what makes it worth forging.
How to verify a penetration test report in 4 steps
Check the fields against each other
Read finding severities, test dates and scope, and testing firm branding together rather than one at a time. Forgers typically change one value and leave the rest of the document describing the original.
Inspect the file metadata
Open the document properties and look at the producer, creation date, and modification date. A document produced by a consumer PDF editor, or created long after the date printed on its face, is worth a closer look.
Ask for a second document
Request a corroborating document from the same issuer or an adjacent period. Forgery effort concentrates on one file, so inconsistencies surface as soon as there are two to compare.
Run a forensic check
Manual review catches obvious edits but not field-level pixel manipulation or synthetic generation. TamperCheck runs 200+ forensic checks on a penetration test report and returns a risk score from 0 to 100 within seconds, at $0.50 per document.
Frequently asked questions
How do I verify a vendor's penetration test report?
Ask the testing firm for the report directly, or get the firm's contact from the vendor and confirm the engagement, since a firm can confirm dates and scope without breaching confidentiality. Read the scope for named assets, recompute a few CVSS scores from their vectors, and check that the methodology names real tooling. Then put the PDF through TamperCheck, which scores it from 0 to 100 and ties findings to regions of the page.
Can a pentest report be faked?
Yes, and it has become one of the more common fabrications in third-party risk review, partly because language models write plausible findings. The realistic threat is not a wholly invented report, though those exist, but a genuine one with findings downgraded or deleted before it was forwarded. Both are detectable: the first on specificity and provenance, the second on the internal consistency of the findings table.
Is a pentest report with no critical findings a red flag?
For any broad scope, yes. Testing an environment of real size without producing a single high or critical finding is unlikely, and it much more often means findings were removed, severity labels were lowered, or the scope was narrow enough to guarantee the result. Check the finding identifiers for gaps in the sequence and compare each CVSS vector against the label printed beside it.
How do I check a CVSS score in a report?
Take the vector string printed with the finding and recompute the base score from it, by hand against the CVSS v3.1 specification or with the first-party calculator. The score is fully determined by the vector, so the two cannot disagree on a genuine finding. Then confirm the severity label falls in the right band for that score, since a downgrade usually changes the word and leaves the numbers behind.
TamperCheck analyses penetration test report uploads with a hybrid forensic and AI pipeline tuned for this document class. Upload endpoints accept PDF and common image formats; class is inferred automatically. See the API & MCP documentation for authentication, async jobs, and webhooks.