| An exploit artefact per finding | The request that triggered it, the response that came back, and the steps in the order they were taken — attached to the finding rather than available on request. | A cropped screenshot of a tool pane, or a paragraph opening “it was observed that”, with nothing an engineer can replay. |
| Reproducible without calling the vendor | Your own engineer follows the steps and sees the same result, using nothing the tester had that you do not. Run this check first, on the finding with the highest severity in the document. | Steps that assume the tester’s session, tooling or network position, so the only way to confirm the finding is to book a call. |
| Severity carries its vector | CVSS v4.0 with the full vector string printed beside the score, so you can see which metrics produced it and re-score it against your own environment. | The word “High”, with no vector — which cannot be argued with, cannot be adjusted for a compensating control, and cannot be compared with the next report. |
| CVSS v4.0 was published in November 2023 by FIRST, which maintains the specification. Verified at source on 13 September 2026. |
| A weakness class, not only an instance | A CWE identifier per finding, so the same defect appearing in three places is visibly one defect with three symptoms. | Three unrelated-looking findings and three remediation tasks, for one missing check in one shared component. |
| The standard is named with its version | OWASP Top 10 2025, WSTG v4.2, ASVS 5.0.0, API Security Top 10 2023, MASVS v2.1.0 with MASTG v2.0.0, Top 10 for LLM Applications 2025, NIST SP 800-115, PTES — and the ATT&CK or ATLAS release each mapping was made against. | “Tested against OWASP.” That names a body, not a document, and a reader cannot tell which of its publications was used or how old it was. |
| Two version traps worth knowing before you read anyone’s report: WSTG v5.0 is in development, so a report citing it cites something that has not shipped; and the API Security Top 10 is the 2023 edition, so a report citing a later year cites a document that does not exist. |
| A negative result is recorded | What was tested and held, alongside what broke — so a clean area is distinguishable from an area nobody reached. | A findings list and nothing else, which reads identically whether the whole scope was covered or the days ran out on the second target. |
| Remediation is specific to your system | The file and line, the parameter, the configuration key or the policy statement — and a fix written against the idiom your codebase already uses. | “Implement input validation.” Generic advice is a link to documentation with a severity attached to it, and it moves no ticket forward. |
| The scope in the report is the scope you signed | The target list, the window, the environment and the credentials used, reprinted in the report — with anything in scope that was not reached named explicitly. | A scope section that describes the vendor’s offering rather than this engagement, so the document cannot be reconciled with the order you placed. |
| Findings carry a state, and it changes | open, fixed, retested, closed — recorded where both sides can read the current position, rather than reconstructed from an exchange of emails. | Findings with no state at all, so the current position lives in a spreadsheet somebody maintains by hand and which is accurate on the day it was written. |
| A finding closes on a retest | Closed is reached only when the original steps have been re-run against the fix and could not reproduce the finding. | Closed because a ticket was marked done, a date passed, or somebody said the change had shipped. |
| Summary and detail agree | The counts, the severities and the risk narrative at the front reconcile with the findings behind them, line for line. | An executive summary that reads as marketing for the test that produced it, with a total that does not match the table. |
| You know who stands behind it | The report names how the test was run and the people behind it, and where a filing needs a signature, the signing auditor was inside the engagement. | A signature block belonging to somebody who never saw the target, on a document produced by a process the report does not describe. |