Skip to main content
COOKIE NOTICECOOKIE CHOICE

We use cookies for analytics (Google Analytics) and ad measurement (Google Ads, including remarketing, and ChatGPT Ads by OpenAI). Strictly necessary cookies keep the site working. See our Cookie Policy for what each one does and how to opt out.

We’d like to use cookies for analytics (Google Analytics) and ad measurement (Google Ads, including remarketing, and ChatGPT Ads by OpenAI), and none of them is set unless you accept. Cookie Policy

Learn · VAPT & Security Testing

How to Read a VAPT Report

A VAPT report is the deliverable of a vulnerability assessment and penetration testing engagement. It says what was tested, in which environment, at which build, over which dates, by what method, and what was found. Almost everything that decides whether the document is worth anything is settled in the first three pages — and almost nobody reads those first.

Read in this order: scope and asset list, environment and build, dates, methodology and effort — and only then the findings. A severity chart on page two of a report whose scope quietly omits your admin console is a chart about somebody else’s estate.

§16.1(ii)the clause that lists what a report must contain
CVSS + EPSSseverity and likelihood, required together
3signatures a compliant report carries

Plain-English explainer · CERT-In Comprehensive Cyber Security Audit Policy Guidelines v1.0, 25 July 2025 · Empanelment terms v7.2, April 2024 · Auditor guidelines v3.0, May 2018 · Sources last checked 22 September 2026

A VAPT report is the written output of a Vulnerability Assessment and Penetration Testing engagement. VAPT is CERT-In’s own abbreviation, rendered without the conjunction: §13.2.3(i)(a) of its Comprehensive Cyber Security Audit Policy Guidelines (version 1.0, 25 July 2025) lists the audit types that must be communicated to an auditee before an engagement begins, and the list opens with “VAPT (Vulnerability Assessment Penetration Testing)”. The two halves are different activities and the same document defines each. A vulnerability assessment, at §5(xxi), is the examination of an information system or product to determine the adequacy of security measures, identify security deficiencies, provide data from which to predict the effectiveness of proposed security measures, and confirm the adequacy of such measures after implementation. Penetration testing, at §5(xxii), is a security testing methodology in which individual components or the application as a whole are actively tested to identify and exploit potential vulnerabilities — the objective being to determine whether they can be exploited to compromise the application, access sensitive data, or affect the underlying infrastructure and environment. A report that covers only the first half is a vulnerability assessment report, whatever the cover page calls it. Knowing which one you are holding is the first act of reading it.

To read one critically, work from the outside in: scope, environment, build, dates, methodology and effort first, findings second, and what is missing last. The scope decides what every other page means. The environment and the build decide whether the report describes the software you are running. The dates decide whether it describes it now. The methodology and the effort decide whether the findings are the product of testing or of scanning. Only then is the severity chart worth looking at — and even then, an auditor’s severity is a statement about a weakness, not a statement about your risk. The rest of this page walks each part in turn, sets out the clause that requires it, shows what good evidence and a properly rated finding look like, explains how to dispose of a false positive without pretending it never happened, and lists the tells that reveal a thin test from the document alone.

“Audit report should be clear, precise and comprehensive to include all details of audit process, detailed scope, duration of audit, methodologies/standard used, tools, manual process, findings, prioritization, sampling decisions, manpower involved, exemptions, limitations and other constraints.”
— CERT-In, Comprehensive Cyber Security Audit Policy Guidelines, version 1.0, 25 July 2025, §16.1(ii). Section 2 of the same document states that the guidelines are binding on all CERT-In empanelled auditing organisations and auditee entities covered under the relevant provisions.
“All the observations made during the audit are well supported with objective evidences and all evidences are compiled carefully and correctly with the report. All the evidence gathered during the process of audit is presented in a manner that the decision makers are able to use them effectively in making credible risk-based decisions.”
— the same guidelines, §18(iii). The 2018 auditor guidelines (version 3.0, May 2018) carry the same requirement, and add that the report should mention appropriate timelines for closure of vulnerabilities according to severity.

Those two sentences are the whole standard in miniature. The first says the report must describe the work, not just the outcome. The second says every claim in it must be backed by something a decision maker can act on. A document that fails either is not a bad report. It is a different kind of object — a summary of a tool run, wearing a report’s clothes. The tests in this page are all, in the end, tests of those two sentences.

Key Takeaways

  • VAPT is CERT-In’s own abbreviation for Vulnerability Assessment Penetration Testing, named at §13.2.3(i)(a) of the Comprehensive Cyber Security Audit Policy Guidelines (v1.0, 25 July 2025) among the audit types that must be agreed before an engagement starts. A vulnerability assessment determines the adequacy of security measures and identifies deficiencies, while a penetration test actively exploits them to see what they let an attacker do.
  • Read a report from the outside in: scope and asset list, environment, version and hash, the three dates, methodology and effort — then the findings, and last of all the limitations, exemptions and unknowns.
  • §16.1(ii) sets what the report must contain: the audit process, detailed scope, duration, methodologies and standards, tools, manual process, findings, prioritization, sampling decisions, manpower involved, exemptions, limitations and other constraints. §16.1(iii) requires every in-scope asset to be named in the report.
  • §18(iii) requires observations to be supported by objective evidence, compiled with the report and presented so decision makers can use it. §18(i) entitles the auditee to seek the working notes and the evidence as an appendix.
  • CERT-In’s guidelines do not govern every VAPT report. They bind empanelled auditing organisations and the auditee entities covered under the relevant provisions (§2, §4). Where a test runs under a regulator’s own framework or a customer contract instead, that instrument governs and this page is a checklist rather than a rulebook.
  • §16.3(iii) requires the report to state closure timelines according to severity — and fixes no number of days for any band, so the timelines come from the engagement letter rather than from an instrument. §16.3(ii) requires critical and high findings to be notified during the audit as and when found rather than saved for the report.
  • §16.2(ii) requires CVSS for severity together with EPSS for real-world exploitation likelihood, and requires every reported observation to be mapped to a CWE and a CVE number.
  • A raw CVSS base score is not a risk rating for your environment. The FIRST specification says the Base Score assumes the reasonable worst-case impact across deployed environments, and instructs consumers to enrich it with Threat and Environmental metrics specific to their own use of the system.
  • Annexure I to the empanelment terms (v7.2, April 2024) expects reports to mark all unknowns clearly as unknowns, to state all states of security found rather than only the failures, and to use metrics based on a mathematical formula “and not on feelings of the auditor”.
  • The tells of a thin test are readable from the document: tool output pasted as findings, a methodology that names only OWASP Top 10 — which §8(ii) says is not a standard for audits — missing evidence, generic remediation text, a scope that omits the interesting systems, no environment or build, and unknowns that are not marked as unknowns.
  • We deliver CERT-In audits, end to end, with our CERT-In empanelled partners.
The anatomy

What should a VAPT report contain? Fifteen parts, one by one

Fifteen parts. Every row names the clause that requires it, because “the report should have an evidence appendix” is an opinion until you can point at the sentence that says so. Section references without another document named are to CERT-In’s Comprehensive Cyber Security Audit Policy Guidelines, version 1.0 of 25 July 2025. Print this table and tick it against the document in front of you. The gaps are the conversation.

Part of the reportWhat you are reading it forWhat requires it
Scope and asset listWhat was tested, named asset by asset. Hostnames, URLs, IP ranges, application names, API endpoints, mobile builds, databases, network devices. This is the part that decides what every other part of the document means.§13.1.1(a)–(g) sets what the scope must cover and requires it to be derived from the consolidated and updated asset inventory. §16.1(iii): “All the assets provided in the scope by auditee organization must be mentioned in the report.”
Environment testedTest, Development, UAT, Pre-Production or Production, stated explicitly rather than implied by a hostname. A finding in staging and the same finding in production are different facts about your business.§15.2.3(i) requires the environment to be specified. §16.3(v): where the scope was limited to staging, “the report must explicitly state that the audit was not conducted on production environment.”
Version, build and hashThe exact thing tested. Application version, build identifier, and the hash value with its algorithm. Without these the report describes software you can no longer identify.§9.5(i) requires hash values, versions and timestamps to be captured by the auditee and “prominently featured in the audit certificate and reports”, restated at §16.1(v). §13.2.3(ii)(c): version-specific details of web and mobile applications must be explicitly mentioned in the audit scope and report.
DatesThree different dates, all of which matter: the test window, the date of each report version, and the date up to which the asset inventory the scope was drawn from had been updated.§16.1(ii) requires the duration of the audit. §16.1(iv) requires report versions — draft, final — with the date of issuance of each. §13.2.3(ii)(b) requires the as-of date of the scope and asset inventory to be reflected in the audit reports.
Methodology, standards and toolsWhat the testers actually did: the standard or framework followed, the tools used, and the manual process alongside them. A methodology section that names only a tool is a description of a scan.§16.1(ii) requires methodologies and standards used, tools, and manual process. §8(i): “Solely tools-based testing should be discouraged.” §8(ii) names the frameworks that count as standards.
Manpower and effortWho tested, and for how long. A report on a large estate delivered by one person in two days is telling you something the findings will not.§16.1(ii) requires manpower involved and the duration of audit. §13.2.2(ii): “The test plan shared by auditing organization must include both calendar time and man-hours.”
Executive summaryA short account of what the audit found and what it means for the organisation, written for people who will not read the finding detail. It should translate technical findings into business risk, not repeat the severity counts in prose.§16.2(i): the report should include an executive summary giving a concise overview of findings, associated risks and overall security posture, intended for board members or top management, translating technical findings into relevant business risks.
FindingsEach observation, with its severity, its location, how it was found, what it allows an attacker to do, and what to do about it. The body of the document — and the only section a tool can fill in volume without anybody testing anything, which is why length here proves less than length anywhere else.§16.1(ii) requires findings and prioritization. §16.2(ii) requires CVSS with EPSS, and mapping of every reported observation to CWE and CVE.
EvidenceThe proof behind each observation: request and response pairs, screenshots with the URL and timestamp visible, command output, decoded tokens, the specific parameter and payload. Enough for your engineer to reproduce the finding without asking the tester anything.§18(iii): “All the observations made during the audit are well supported with objective evidences and all evidences are compiled carefully and correctly with the report.” §18(i) lets the auditee seek the working notes and evidence as an appendix to the final report.
Remediation guidanceWhat to change, where. Specific to your stack and your instance, not a paragraph about the vulnerability class in general.§16.3(i) requires recommendations to be practical and implementable. §16.4 requires high-risk vulnerabilities to be reported immediately on discovery “along with a recommendation for a practical solution.”
Closure timelines by severityHow long you have to fix a critical, a high, a medium and a low — stated in the report rather than negotiated afterwards. The numbers come from your engagement, not from an instrument. What is mandatory is that the report carries them.§16.3(iii) requires the report to state closure timelines by severity, and fixes no day count for any band. The 2018 auditor guidelines carry the same rule in the same open form: the report “should mention appropriate timelines for closure of vulnerabilities according to severity.”
Exemptions, limitations and constraintsWhat could not be tested and why. Systems that were unreachable, accounts that were never provisioned, a window that closed early, a WAF that was left in blocking mode.§16.1(ii) requires exemptions, limitations and other constraints. §10.1(ii) requires in-scope assets that stayed inaccessible to be named in the report with reasons, and the matter brought to the notice of CERT-In. §13.2.4(ii) requires these to be communicated, not discovered.
Repeat observationsFindings carried forward from the previous cycle that are still open. It is the one section that cannot be written without the previous report actually having been revalidated, which is why a second-year report without it is telling you about the process rather than about the estate.§15.2.1(iii): the auditing organisation must revalidate observations from the previous audit cycle, and any unresolved issues “should be recorded as repeat observations in the current audit cycle.”
Retest and closureWhat was re-tested after you fixed it, what passed, what did not, and what remains open with your acceptance on the record.§16.3(iv) requires follow-up audits after remediation to verify closure. §16.3(v): the final report issues after closure of vulnerabilities and completion of the follow-up audit on the production environment.
SignaturesThree of them, in a defined order. The auditors who did the work, an independent reviewer, and the head of the auditing organisation.§9.5(iii), repeated at §10.3(ix) and §16.1(vi): signed by the auditors who conducted the audit, reviewed and signed by a designated reviewer who is not part of the audit team and is from mid-management, then authorised and signed by the head of the auditing organisation.

Two rows deserve their own note. The repeat observations row is the fastest way to tell a real programme from an annual ritual: if last year’s findings do not appear anywhere in this year’s report, either they were all fixed — in which case the report should say so — or nobody went back to look. And the exemptions and limitations row is the only part of a report that gets shorter as the engagement gets worse, because a firm that did not test much has less it is willing to write down about what it did not test.

That is the checklist. It is deliberately not the order the document arrives in, which is the subject of the next section.

The scope statement

What should the scope section of a VAPT report say? It decides what the rest of it means

A scope statement is not a formality at the front of a report. It is the boundary of every claim the document makes. Read it against something external — your asset inventory, your architecture diagram, the list of systems in the contract you are being asked to sign — because a scope only looks complete when you read it on its own terms.

It should have come from an inventory, not from a conversation

§13.1.1(c) requires the scope to be derived from the consolidated and updated asset inventory, and §13.1.1(d) requires it to be vetted by the internal audit team in consultation with the CISO. §13.2.3(ii)(b) then requires the date to which that inventory was current to be reflected in the audit report. That date is quietly one of the most informative fields in the document: a scope drawn from an inventory last updated eighteen months ago has not omitted your new systems deliberately, but it has omitted them.

The default breadth is wider than most scopes turn out to be

§13.1.1(a) describes the scope as covering the entire cyber infrastructure, naming web and mobile applications, networks, operational technology and industrial control systems, cloud, APIs, databases and hosting infrastructure, code review, application security, data security and incident-response testing. §13.1.1(e) puts testing, UAT, development and production assets inside it “to achieve complete audit coverage”, and §13.1.1(f) puts third-party, vendor and supply-chain risk assessment in scope too. A narrow scope is a decision someone made. The report should say who made it and why.

Every in-scope asset has to appear in the report

§16.1(iii) is one sentence long and does a great deal of work: all the assets provided in the scope by the auditee organisation must be mentioned in the report. It closes the gap where an asset is scoped, never reached, and simply never mentioned again. §10.1(ii) closes the other half: where an in-scope asset stayed inaccessible, the auditor must inform the auditee, request resolution, and if it is still unresolved, name the asset in the report with the reason — and bring the matter to the notice of CERT-In.

Versions belong in the scope, not only in the findings

§13.2.3(ii)(c): version-specific details of web and mobile applications must be explicitly mentioned in the audit scope and the report. This is what stops a report from silently covering a build that no longer exists. Paired with §9.5(i) — hash values, versions and timestamps captured by the auditee, shared with the auditor, and prominently featured in the certificate and reports — it is the mechanism by which a reader six months later can tell whether the document still applies.

Where the scope changed mid-engagement, there should be paperwork

§14 is titled “Agreeing on the Terms of Engagement and Revisions to the Scope”, and §14.1(ii) requires the agreed terms to be documented in an audit engagement letter signed by authorised representatives of both organisations. §14.2 requires revisions to be in writing with justification, assessed for their impact on timelines, resources and deliverables, approved by both sides, and documented as an addendum or formal amendment. §14.3 names the three things that legitimately trigger a revision: discovery of previously unidentified systems or processes presenting significant risk, changes in organisational structure, ownership or regulatory environment, and security incidents or breaches occurring during the audit period. A scope that shrank quietly is a scope nobody wrote down.

One more thing to look for, and it is specific to applications hosted on somebody else’s infrastructure. §13.1.5 splits the responsibility: where a website runs on a web server owned by another organisation, auditing that server, its operating system, the hosting application software and the backend database software is the responsibility of the organisation that owns and operates the server, while the content owner remains responsible for having the website data and software audited. Two audits, two owners, one go-live date. If your report covers only the application and nobody has the other report, the scope has a hole in it that neither document will admit to. Scoping this properly before testing starts is a subject of its own — see VAPT scoping.

Methodology and effort

What methodology should a VAPT use? And whether the effort adds up

§16.1(ii) requires the methodologies and standards used, the tools, and the manual process — three separate things, in one sentence. Most methodology sections give you the middle one and hope. Here is what each is supposed to tell you.

“The limited lists such as OWASP Top 10, SANS Top 25 and similar, should not be considered as standards or references for audits.”
— Comprehensive Cyber Security Audit Policy Guidelines, §8(ii). The same clause names what does serve: ISO/IEC standards, the Cyber Security Audit Baseline Requirements, the CSA Cloud Controls Matrix for cloud security, OSSTMM3, the OWASP Web Security Testing Guide, the OWASP Application Security Verification Standard, the OWASP Mobile Security Testing Guide and the OWASP DevSecOps Maturity Model.

That is the most quotable sentence in the whole instrument. The OWASP Top 10 is an awareness document listing ten categories of risk. It is not a test plan and it does not tell a tester what to do. The OWASP Web Security Testing Guide, by contrast, is a testing methodology with numbered checks, and the Application Security Verification Standard is a set of verifiable requirements arranged in three levels. Name the version when you cite it, because the levels were reorganised at the last major release: in the current stable version, ASVS 5.0.0, Level 1 is described as the minimum set and around twenty per cent of the requirements, and the standard says in terms that it “is not necessarily penetration testable by an external tester without internal access to documentation or code”. Level 2 is the level “most applications should be striving to achieve”. Level 3 is for applications demonstrating the highest level of security. ASVS does not pick your level for you, so a scope of work should name the ASVS version and the level, and the report should say which it verified against.

The tooling question is answered the same way. §8(i) says solely tools-based testing should be discouraged, and gives the reason in the same breath: tool-based audits may focus primarily on automated processes and may overlook non-automated or manual components of the IT infrastructure, which “can result in an incomplete view of the overall security”. The 2018 auditor guidelines put it more bluntly still — auditors must use industry standard methodologies and best practices, and “solely tools based testing should be discouraged”. Tools belong in a VAPT report. Tools as the methodology do not.

Effort, stated

§13.2.2(ii) requires the test plan to include both calendar time and man-hours, and §16.1(ii) requires the duration of the audit and the manpower involved to appear in the report. Put those against the size of the estate. Forty external hosts, two web applications with authenticated roles, a mobile app and an API, tested in three man-days, is not a judgement about the firm — it is arithmetic.

Sampling, declared

§16.1(ii) names sampling decisions among the things the report must contain. Where forty servers were built from one image and six were tested, that is a legitimate decision and it belongs on the page. Undeclared sampling reads as full coverage, which is how a report comes to say more than the testing supports.

Tools, understood

§13.2.2(iv) requires the auditing organisation to have a thorough understanding of the tools it uses, including their origin and functionality, to test them in a controlled test environment before deploying them on your systems, and to have the results of that testing formally reviewed and approved by an authorised representative of the auditee. §13.2.2(iii) requires a tool list with written confirmation of intellectual property and licensing. Annexure I item 12 to the empanelment terms (version 7.2, April 2024) carries the same expectation in shorter form: auditors know their tools, where they came from and how they work, and test them in a restricted test area before use on the customer organisation.

Reviewed by someone else

§15.2.5(iii) requires a maker-checker arrangement: a separate verification team reviews and validates the work of the audit team. The 2018 guidelines put it as deploying a verification team — a Red Team — to verify the work performed by the audit team, the White Team. The signature block is where this shows up: §16.1(vi) requires the reviewer to be someone who was not part of the audit team.

One clause is worth raising with a supplier before an engagement rather than after. §8(viii) states that an application developed without any secure design and development practices should not be considered for assessment and audit, and that the auditee organisation should be informed in writing with a copy marked to CERT-In. CERT-In publishes its own application security guidelines and the Cyber Security Audit Baseline Requirements sits on the same site, named at §8(iii) as a document both sides should use to build the audit programme. If the methodology section of a report you are reading names neither a testing guide nor a baseline, there was no programme — there was a scan.

A finding, read line by line

The same defect, written two ways

Both entries below describe one real class of flaw — a user able to read another user’s record by changing an identifier in the request. Both would appear in a severity chart as one High. One of them can be fixed by an engineer who has never spoken to the tester. The other cannot be fixed at all. This comparison is TCSA’s illustration, not a CERT-In template, but the clauses cited beside it are the instrument’s own.

What a thin finding looks like

Title

Insecure Direct Object Reference

Severity

High

Affected

The application

Description

The application was found to be vulnerable to insecure direct object references, which may allow an attacker to access unauthorised data.

Evidence

Screenshot of the tool panel showing the alert. Available on request.

Recommendation

Implement proper access control and follow the principle of least privilege.

Why it fails. No location, so nobody can find it. No reproduction, so nobody can confirm it. No CWE, so it cannot be counted with anything. No CVSS vector, so the severity cannot be argued with. No evidence in the document, which is what §18(iii) requires. A recommendation that was written before the engagement started, which is what §16.3(i) is aimed at. An engineer receiving this has to run the test again themselves before they can begin.

What a complete finding looks like

Title

Authorisation bypass on the invoice retrieval endpoint allows cross-tenant record access

Classification

CWE-639, Authorization Bypass Through User-Controlled Key. No CVE — defect in first-party code, so no EPSS score exists for it.

Severity

High, with the full CVSS vector string printed beside it so the rating can be recomputed, and the environmental metrics stated as left at default.

Affected

One named endpoint on one named host, in the UAT environment, at the build and hash recorded in the scope section. Two other endpoints tested and not affected, named.

Reproduction

Numbered steps: authenticate as the low-privilege test account supplied by the auditee, capture the request, substitute the identifier belonging to the second test account, replay. Expected result and actual result both stated.

Evidence

The request and the response, in full, with the session token redacted and the timestamp visible. A screenshot showing the second account’s record rendered to the first account. The test account identifiers used.

Impact

Stated in terms of the business: any authenticated customer can enumerate and read the invoices of any other customer, including counterparty names and amounts.

Remediation

Enforce the ownership check server-side in the retrieval handler rather than in the view layer. The same pattern appears in two other handlers, both named, which should be corrected together.

Closure timeline

Stated against the report’s severity-wise schedule, with the retest requirement named.

Why it works. It is reproducible, locatable, countable and arguable. It also does something the thin version cannot: it names two endpoints that were tested and were not affected, which is the “all states of security found” expectation at Annexure I item 21 of the empanelment terms, and it says plainly that no CVE and no EPSS score exist for a first-party defect rather than leaving the fields blank.

The difference between the two columns is not effort in writing. It is whether the test happened. A tester who actually performed the sequence has the request, the response and the account identifiers sitting in their working notes already, so writing the right-hand column is transcription. A tester who did not cannot produce it at any length. That is why §18(iii) is the most load-bearing clause in the reporting chapter, and why §18(i) — which lets the auditee seek the working notes, with a provision for it in the contract, and the evidence as an appendix to the final report — is the request that settles most arguments about report quality in a single email.

Severity and risk rating

CVSS, EPSS, CWE and CVE — what does each one tell you? Four artefacts, four questions

§16.2(ii) of the audit policy guidelines names all four and puts two of them together: CVSS for severity alongside EPSS for real-world exploitation likelihood, and “Every reported observation / vulnerability shall be mapped with Common Weakness Enumeration (CWE) and Common Vulnerabilities and Exposures (CVE) number.” They are not four ways of saying the same thing. They answer four separate questions, and a report that supplies one of them has answered a quarter of what you need. CERT-In defines all four in its own §5 — CVE at (xviii), CWE at (xix), CVSS and EPSS together at (xxiv) — and the bodies that maintain them publish the authoritative text: FIRST for CVSS, FIRST for EPSS and MITRE for CWE.

ArtefactWhat it isThe question it answersWhat it does not answer
CVSSThe Common Vulnerability Scoring System, maintained by FIRST. An open framework for communicating the characteristics and severity of a software vulnerability, expressed as a vector string and a score from 0 to 10.How severe this weakness is in the abstract: how it is reached, what it takes to exploit, and what a successful exploit does to the vulnerable system and to systems downstream of it.It is scoped to the weakness, not to the deployment. FIRST labels a base-only score CVSS-B, and reserves CVSS-BE and CVSS-BTE for scores that carry Environmental and Threat values — so a report printing a bare number is, in the specification’s own nomenclature, reporting a quarter of the instrument.
EPSSThe Exploit Prediction Scoring System, also from FIRST: a data-driven machine-learning model that estimates the probability a published CVE will be exploited in the wild in the next 30 days, published daily as a 0–1 probability with a ranking percentile.How likely this is to be used against anyone at all in the near term. It is the difference between a vulnerability that is theoretically grave and one that is being exploited this month.It is defined for published CVEs. A flaw in your own code — broken authorisation in one of your endpoints, a tenant-isolation failure — has no CVE and therefore no EPSS score, and the absence of a number there is not evidence that nothing is happening.
CWEThe Common Weakness Enumeration, from MITRE: a community-developed list of common software and hardware weaknesses, where a weakness is a condition in a component that, under certain circumstances, could contribute to the introduction of vulnerabilities.What kind of mistake this is. It is the field that lets you count across a report and across years — six findings that are all CWE-89 is a story about how the code is written, not six unrelated bugs.It does not carry severity and it does not carry likelihood. A weakness class is a diagnosis, not a priority.
CVECommon Vulnerabilities and Exposures. §5(xviii) of the audit policy guidelines defines it as a publicly disclosed, standardised list of unique identifiers assigned to known cyber security vulnerabilities, each entry carrying a distinct identifier, a brief description and references — a common language for tracking vulnerabilities across platforms and organisations.Whether this is a known issue with a known fix. If a CVE is present, the remediation is usually a version number rather than a design conversation.It does not reach your own code. CVE identifiers are assigned to disclosed vulnerabilities in released products, so a defect written by your own developers has no CVE by definition — and therefore no EPSS score. A report in which every finding carries a CVE is a report about third-party components.

Read together they produce the four combinations that actually drive a remediation queue. High CVSS with high EPSS is the emergency. High CVSS with low EPSS is the thing to schedule properly rather than panic about. Low CVSS with high EPSS is the one teams under-react to, because a modest weakness that is being exploited at scale this month is a live problem. And no CVE at all — the whole category of defects in your own code — is where a penetration test earns its fee, and where neither EPSS nor a public advisory will help you prioritise. There, the ordering comes from what the finding reaches and who can reach it.

How to read an EPSS value in a report

A probability is not a percentile. FIRST publishes two numbers per CVE and reports routinely print one while captioning it as the other. The probability is absolute: it is the estimated chance that exploitation activity will be observed in the next thirty days, so 0.05 means five in a hundred. The percentile is relative: a CVE at the 90th percentile scores higher than ninety per cent of everything currently scored. Because the distribution is heavily skewed towards zero, the two look nothing alike — FIRST’s own EPSS FAQ notes that a probability of 0.10 currently sits around the 95th percentile. A finding dismissed in a meeting because “it is only five per cent” may be in the top decile of everything published.

And a printed EPSS value has a shelf life of one day. Scores are recomputed and republished every day, for every scored vulnerability. An EPSS figure in a report is therefore a snapshot, and a snapshot with no retrieval date beside it is a number that has already changed. Ask for the pull date the same way you ask for the test window — and when you sit down to plan remediation, re-pull rather than read. That is a two-minute job against a free daily feed, and it is the cheapest thing on this page that reorders a queue.

Do not let it become the whole rating. FIRST is explicit that EPSS is not a complete risk score: it does not measure the damage successful exploitation would cause, does not know what you run, and does not account for compensating controls. It also defines no bands — there is no EPSS “critical” and no official threshold, and FIRST says so, noting that the 0.10 figure commonly cited in the field carries no authority from EPSS. A report that prints EPSS severity labels has invented them.

Closure timelines

How long do we have to fix VAPT findings? The report states the clock

One of the quieter requirements, and one of the most useful. §16.3(iii) requires the report to state closure timelines according to severity. The 2018 auditor guidelines said the same thing seven years earlier: the audit report “should mention appropriate timelines for closure of vulnerabilities according to severity”. It belongs in the document because it is the auditor’s professional judgement about urgency — which is precisely the judgement that gets negotiated away if it arrives as an email after delivery.

One thing §16.3(iii) does not do, and it matters: it fixes no number of days for any band. Stating the timelines is mandatory, but choosing them is the engagement’s, which is why the bands belong in the audit engagement letter §14.1(ii) requires both organisations to sign before they belong in the report. Any page that tells you a critical must be closed in exactly seven days because CERT-In says so is inventing a rule. What the instruments do fix is notification timing — §16.3(ii) and §16.4 below, and the six-hour duty under the 2022 Directions where a test surfaces a live compromise. Where the bands come from, and how closure is evidenced against them, is the subject of VAPT retesting and closure.

  • 01 Critical and high findings should have reached you before the report did §16.3(ii) requires critical and high-severity findings to be notified to the auditee during the course of the audit on an as-and-when-found basis, as well as appearing in the final outcome report. §16.4 goes further for high-risk vulnerabilities — those such as discovered breaches, vulnerabilities with known high exploitation rates, unmonitored or untraceable access, or those posing an immediate risk to life — which must be reported to the auditee immediately upon discovery along with a recommendation for a practical solution. If the first you heard of a critical was when the PDF arrived, that is a process failure independent of the finding itself.
  • 02 A discovered breach changes the character of the engagement §15.2.2(i) requires high-risk vulnerabilities such as discovered breaches to be assessed and reported immediately to the auditee organisation and to CERT-In. That is the auditor’s duty and it does not displace yours: if a test surfaces evidence that you are already compromised, the six-hour clock under the Directions of 28 April 2022 runs from your noticing, against the twenty incident types in Annexure I to those Directions. The CERT-In FAQ of May 2022 is blunt that the reporting obligation is “neither transferrable nor indemnified or dispense with”.
  • 03 Fixing is yours and verifying is the auditor’s §9.3(iii) states that patching and correction of vulnerabilities is the responsibility of the auditee organisation, and §9.1(ii) that the responsibility for maintaining a robust cyber security posture ultimately rests with the auditee, not the auditor. §9.3(iv) and §16.3(iv) then require follow-up audits — which must be included within the scope or the RFP in the first place — to be conducted after closure, to verify it. An engagement priced without the retest has a hole in it that appears three weeks later.
  • 04 The final report comes after closure, not after testing §16.3(v): “The Final audit report should be issued after the closure of vulnerabilities & completion of follow-up audit of the application hosted on production environment. If the audit scope is limited to the staging platform, the report must explicitly state that the audit was not conducted on production environment.” A document marked Final with every finding open is a draft that has been mislabelled, and a certificate issued against it is worse.
  • 05 What is still open next year must say so §15.2.1(iii) requires the auditing organisation to revalidate observations from the previous audit cycle and to record anything unresolved as a repeat observation in the current cycle. This is the clause that makes a report series worth reading as a series — and the one that makes a two-year-old accepted risk visible to whoever inherits it.

There is one further duty that runs from your report to CERT-In, and it is a duty many auditees first meet when they read the empanelment terms. Clause 3.2.2 of the Terms and Conditions for Empanelment makes it mandatory for an empanelled auditor to share the audit report and audit metadata with CERT-In within five days of completion of the audit, and separately to report the critical vulnerabilities, with auditee details, that were identified during the audit but not fixed even during follow-up audits. §10.6 of the 2025 guidelines repeats the five-day duty, and §13.2.1(iii) requires the auditor to tell you about it before the assignment starts. Reading a report with that in mind changes the stakes of an open critical: it is not only unfixed, it is named. The mechanics of that pipeline are covered on the rules of engagement for a CERT-In empanelled auditor.

False positives

What is a false positive in a VAPT report? Four ways wrong, one that leaves no trace

“False positive” gets used for four different problems, and treating them the same way is how a remediation programme loses credibility in both directions — real findings dismissed as noise, and noise argued about for a fortnight. Separate them, then dispose of each on its own terms. The mechanism for all of it is §18(v): the auditee may request clarifications on the audit report and the auditor responds within a mutually agreed timeframe.

KindWhat it looks likeHow to test itHow to dispose of it
False positiveThe tool matched a signature, a version banner or a response pattern, and nobody checked. Classic examples: a library version reported from a header that was never the version in use, a “vulnerable” endpoint behind an authorisation check the scanner never passed, a TLS finding against a load balancer that terminates elsewhere.Ask for the reproduction path and run it yourself. A real finding survives being reproduced by your engineer on your system. If the evidence is a scanner panel rather than a request and a response, you are looking at an unverified match.Ask the auditor to withdraw it in writing, with a sentence explaining why the original observation did not hold. §18(v) gives you the mechanism: the auditee may request clarifications and the auditor responds within a mutually agreed timeframe. A withdrawn finding should disappear from the counts, not linger as “closed”.
Correct, but not yoursA finding against infrastructure your hosting provider owns, a managed database service, a CDN edge configuration, or a component of a SaaS platform you consume. Real, reproducible, and outside your ability to fix.Check who operates the component. §13.1.5 draws the line for hosted infrastructure: where a website sits on a web server owned by another organisation, responsibility for auditing that server, its operating system, the hosting software and the backend database software lies with the organisation that owns and operates the server.Keep it in the report, re-owned. It becomes a supplier action with a supplier ticket, not a closed finding. §13.1.1(f) puts third-party, vendor and supply-chain risk inside the scope for exactly this reason.
Duplicated across hostsOne misconfiguration counted forty times because forty servers share an image. The severity chart is dominated by it and the real findings sit underneath.Sort the findings by CWE and by remediation action. If forty entries collapse into one change to one base image, they are one finding with forty instances.Ask for it to be presented as one finding with an affected-asset list. The count is not the point. The remediation action is. Mapping every observation to a CWE, as §16.2(ii) requires, is what makes this collapse visible in the first place.
Right finding, wrong severityA CVSS base score copied from a public advisory and used as the rating, with no Environmental metrics and no regard for whether the affected system is internet-facing, holds regulated data, or sits behind three controls that make exploitation impractical. It cuts both ways — over-rated internet noise and under-rated internal exposure.Ask for the vector string. If there is no vector, there is no rating to discuss. If there is one, read the Environmental metrics: if they are all at default, the number in front of you is the abstract severity and not your risk.Re-rate it jointly and record both numbers — the auditor’s and yours — with the reason for the difference. Do not quietly overwrite the auditor’s rating. That is what an exception register is for, and §9.2 requires risk-treatment decisions and exceptions to be authorised and accepted by the head of the auditee organisation.
The finding that is not thereNothing. A false negative leaves no trace in the document — which is why the limitations section, the inaccessible-asset list and the unknowns are the only places it can show up at all.Read the coverage rather than the findings. Were authenticated roles tested, or only the anonymous surface? Was the mobile app tested, or only its API? Was the admin console in scope? Was any business-logic testing done, or only injection and configuration checks?Treat coverage gaps as findings of their own in your own register. Annexure I item 21 to the empanelment terms expects reports to state all states of security found, not only the failed measures — so a report that says what was examined and held up is doing more work than one that lists only failures.

A note on how many false positives is too many. There is no published figure and it would be meaningless if there were, because it depends entirely on the estate. What is diagnostic is where they cluster. A handful scattered across a long report is ordinary professional disagreement. A cluster of them in one class — every TLS finding, every version-banner finding — means one tool ran unattended against one part of the scope, and that part of the report was never verified by a person. That is the §8(i) problem, surfacing as a dispute about individual findings rather than as an admission about method.

Unknowns

The report is expected to say what it does not know

This is the single best-kept requirement in the whole set, and it is one sentence long. Annexure I to CERT-In’s Terms and Conditions for Empanelment is headed “Expectations of an Auditee organisation from an Auditor” and runs to twenty-four numbered items — a list written from your side of the table.

“Reports include all unknowns clearly marked as unknowns.”
— Annexure I, item 20, Terms and Conditions for Empanelment, version 7.2, April 2024.

Item 21 is its twin: reports state all states of security found, not only the failed measures. Item 22 requires metrics based on industry-accepted methods and on a mathematical formula “and not on feelings of the auditor”. Item 19 requires the auditor to notify you whenever the audit plan changes, the source test venue changes, high-risk findings appear, or before running new, high-risk or high-traffic tests — and to provide progress updates at reasonable intervals. Item 23 requires the auditee to be told the report is on its way and to confirm receipt. The 2025 guidelines restate the notification duty almost word for word at §13.2.7(iii).

An unknown is not a failure of the engagement. It is a fact about the engagement, and there are always some: a system that was unreachable for two of the five days, a third-party component whose behaviour could be observed but not inspected, a test that stayed passive because §15.2.2(iv) says that in critical environments where availability is the top priority, testing should be conducted in a passive manner, and a control the developer described and nobody could exercise. The problem is never that unknowns exist. The problem is a report that reads as if they do not.

The 2025 guidelines carry the same principle in three other places, which is a good sign that it is meant. §16.1(ii) requires exemptions, limitations and other constraints in the report. §13.2.4(ii) requires the auditor to communicate any exemptions, limitations and constraints to the auditee — a duty distinct from §13.2.4(i), which is the expectation-gap clause requiring the audit process, required artefacts and expected deliverables to be explained at the outset. And §18(vi) applies the same rule to forensic work: where a digital forensic investigation faces constraints because evidence or logs are unavailable or inadequate, the report should explicitly bring that out and recommend the log detail that should be captured.

Four unknowns to look for by name

  • In-scope assets that were never reachable. §10.1(ii) requires them named, with reasons — and the matter brought to CERT-In’s notice where it stayed unresolved.
  • Roles that were never provisioned. If the report tested an anonymous user and an administrator but the application has four roles, the two in the middle are an unknown, not a clean result.
  • Controls accepted on description rather than on test. Common for anything that would have needed a production change to exercise. Legitimate, and it should be labelled.
  • Anything deferred because availability mattered more than coverage. §15.2.2(iv) says testing should be conducted in a passive manner in critical environments where availability is the top priority. Where that call was made, the report should record it and what it cost in coverage.
The tells

How do I know if a VAPT report is any good? Thirteen tells, readable from the document

None of these requires access to the testing, the testers or the tooling. Each is visible in the report you are holding, each breaches something an instrument says, and each has a question that resolves it. They are not of equal weight, which is what the last two columns are for: some cost engineering time, some cost a second procurement, and one costs a fresh audit outright, because build identity cannot be added to testing that has already happened. Read the cost column before deciding how hard to push.

The tellWhat you are actually looking atWhat it breachesWhat it costs youWhen you find outWhat to ask
Findings are tool output, pastedPlugin identifiers and vendor boilerplate in the description field. Every finding phrased identically. Ports and banners raised as findings. A dozen entries that are really one misconfiguration seen from twelve hosts. Nothing that required a human to notice it.§8(i): “Solely tools-based testing should be discouraged as tool-based audits may focus primarily on automated processes and may overlook non-automated or manual components of the IT infrastructure. This limitation can result in an incomplete view of the overall security.” §16.1(ii) requires the manual process to be reported alongside the tools.Engineering time. Your developers re-derive, finding by finding, what a tester would have written down once — and the authorisation and business-logic defects a scanner cannot produce are still in the product.At the first sprint that tries to fix something, when nobody can locate the defect.Which findings came from manual testing? Show me one that no scanner could have produced.
The methodology is a list of ten thingsA methodology section that says “OWASP Top 10” and stops. Sometimes “OWASP Top 10 and SANS Top 25”. The report is then structured as ten headings with findings sorted into them.§8(ii) is unusually direct: “The limited lists such as OWASP Top 10, SANS Top 25 and similar, should not be considered as standards or references for audits.” The same clause names what does count, including the OWASP Web Security Testing Guide, OWASP ASVS, OWASP MSTG, OSSTMM3, the CSA Cloud Controls Matrix and the Cyber Security Audit Baseline Requirements.A coverage argument you cannot make. When a customer or a reviewing authority asks what was tested, the honest answer is “ten categories of risk”, which is not an answer.At a customer’s vendor-risk review, or at the next tender that asks for the standard by name.Which testing guide did you work through, at which version, and which of its checks did you not run?
No evidence, or evidence that proves nothingA screenshot of a scanner dashboard instead of a screenshot of your application. An image with the URL bar cropped out. “Evidence available on request.” A high-severity finding with one line of description and no reproduction path.§18(iii) requires all observations to be well supported with objective evidence, compiled carefully and correctly with the report, and presented so that decision makers can use them in credible risk-based decisions. §18(i) lets you seek the working notes and evidence as an appendix.Every finding becomes arguable and none of it becomes closable. Retest evidence has nothing to be compared against, so closure is asserted rather than shown.At retest, and again at the next audit cycle when the same observation reappears.Send the evidence appendix and the working notes. For finding 4, send the request and the response.
Remediation text that could have been written before the test“Implement input validation.” “Apply the latest vendor patch.” “Follow the principle of least privilege.” Correct, generic, and identical to the text under the same finding in every other report that firm has issued.§16.3(i) requires recommendations to be practical and implementable, and §16.4 requires a recommended practical solution to accompany a high-risk finding. Generic advice fails both, because it is not implementable by anyone who did not already know the answer.Engineering time again, spent reconstructing the tester’s reasoning. The fix that ships is the one the developer guessed at, which is how a finding gets closed without being fixed.At the retest, when the fix does not hold.Which file, which parameter, which configuration key? What would you change first if this were your system?
A scope that quietly excludes the interesting systemsThe scope names the marketing site and the public API, and says nothing about the admin console, the partner portal, the payment callback, the internal network or the mobile app. Nothing is misstated. The exclusions are invisible because they are absences.§13.1.1(a) puts the entire cyber infrastructure in scope — web and mobile applications, APIs, network, OT and ICS, cloud, databases, hosting infrastructure, code review and incident-response testing — and §13.1.1(c) requires the scope to be derived from the consolidated and updated asset inventory. §16.1(iii) requires every asset given in scope to be named in the report.A second engagement and a second procurement for the systems that were left out, and a committed date that moves with them.At the hosting gate or the customer review — whoever reads the asset list against reality first.Put the asset inventory next to the scope and mark every asset that was not tested, with the reason.
The environment is not stated, or staging is presented as productionNo environment section at all. A test URL of localhost, or an internal IP, with a conclusion written about the live service. A certificate that names a production hostname while the testing URL in the report names something else.§15.2.3(i) requires the environment — Test, Development, UAT, Pre-Production, Production — to be specified. §15.2.3(ii) requires testing on the staging or testing environment provided by the hosting service provider before the audit certificate is issued, with hash values and version numbers obtained from the auditee and included in the report. §16.3(v) requires an explicit statement where the scope was limited to staging.A conclusion that is true about a system nobody is running. On a go-live path it is the defect an evaluator finds rather than you.At the hosting gate, or at the first production incident that staging never reproduced.Which environment was tested, and is the build identical to what is in production today?
No version, build or hashAn application name and nothing else. Or a hash value with no algorithm named, so nobody can recompute it.§9.5(i) and §16.1(v) require hash values, versions and timestamps to be prominently featured in the certificate and the reports. §9.5(i) also asks the developer to avoid code changes after the certificate is issued — which is only enforceable if the report says what was tested.A fresh audit. Build identity cannot be retrofitted onto testing that has already happened, so there is no way to prove afterwards what was examined.The first time somebody asks whether the certificate still describes what is deployed.Give me the hash, the algorithm and the artefact it was computed over.
Unknowns are not marked as unknownsA report that reads as if everything was examined. No account of what could not be reached, what was inconclusive, what was accepted from the developer without verification, or where testing was passive because availability mattered more.Annexure I to the empanelment terms sets out what an auditee is entitled to expect from an auditor. Item 20: “Reports include all unknowns clearly marked as unknowns.” Item 21 adds that reports state all states of security found, not only the failed measures.False assurance, which is the most expensive product on this list because nothing about it looks wrong. Untested roles and unreachable systems are recorded as clean.At the incident, in the part of the estate the report never reached.What did you not manage to test, and what did you take on trust?
No closure timelines by severitySeverities assigned, and nothing said about how quickly each must be fixed. The timeline arrives later, in an email, usually as whatever the auditee proposes.§16.3(iii) requires the report to state closure timelines according to severity. The 2018 auditor guidelines say the same. It belongs in the document because it is the auditor’s judgement, not the auditee’s preference.The urgency judgement passes from the auditor to whoever has the least capacity to act on it, and remediation slips to whatever the delivery backlog allows.Immediately, and quietly — it shows up as a critical still open in month four.Add the severity-wise closure timelines to the report before it is finalised.
Severity with no vector, no likelihood and no mappingA column headed High, Medium, Low, with no CVSS vector string behind it, no EPSS where a CVE exists, and no CWE on any finding. The ratings cannot be argued with because there is nothing to argue with.§16.2(ii) requires CVSS for severity, EPSS for real-world exploitation likelihood, and states that “Every reported observation / vulnerability shall be mapped with Common Weakness Enumeration (CWE) and Common Vulnerabilities and Exposures (CVE) number.” Annexure I item 22 to the empanelment terms adds that metrics should be based on a mathematical formula “and not on feelings of the auditor”.A queue you cannot re-order. Without vectors you cannot re-rate for your own environment, and without CWEs you cannot see that thirty findings are one mistake.At the first prioritisation meeting, where the argument is about ranking and there is nothing to rank with.Send the CVSS vector for every finding, and the CWE for every finding.
The report is final, but nothing was retestedA document labelled Final, issued days after the test ended, with every finding open. Sometimes accompanied by a certificate.§16.3(v): “The Final audit report should be issued after the closure of vulnerabilities & completion of follow-up audit of the application hosted on production environment.” §16.3(iv) requires the follow-up audit to verify closure.A document a reviewing authority can reject on its face, because §16.3(v) puts the final report after closure and the follow-up audit. Where a certificate was issued against it, the certificate goes with it.At the hosting gate or the certificate check, before anybody reads a finding.Is this the draft? What is the retest date, and what does the retest cover?
A second-year report with no repeat observationsA clean-looking report that never mentions the previous cycle. Either everything was genuinely fixed — which the report would say — or the previous findings were never revalidated.§15.2.1(iii) requires the auditing organisation to revalidate observations from the previous audit cycle and to record unresolved issues as repeat observations in the current cycle.A governance gap rather than a technical one: nobody can say whether last year’s risk was fixed, accepted or forgotten, and an accepted risk nobody authorised is still yours.At the third cycle, when the same observation appears as though it were new.Show me last cycle’s findings with their current status, one by one.
Nobody is named, and nobody signedA logo, a date, and an unsigned PDF. Or one signature where there should be three. Or names that do not appear in the organisation’s declared manpower.§16.1(vi) and §9.5(iii) set the three-signature chain. §10.2(vi) and §12.3(iii) require only manpower declared to CERT-In in the snapshot information form to be deployed, and §12.2(iii) states that auditing organisations should not field freelancers, interns, freshers, moonlighters, third-party consultants or employees serving notice — and that the auditee should verify compliance.The report cannot be relied on by anyone downstream, and where the auditor is empanelled the §9.5(iii) chain is broken — a defect visible before a single finding is read.At the first external review: the customer, the regulator or the hosting gate.Who tested, who reviewed, who authorised? Are all three on your declared manpower?

A pattern worth naming, because it explains most of the table at once. A thin test produces a report that is long in the middle and empty at both ends: lots of findings, because findings are what a tool produces in volume, and very little scope, environment, method, effort, evidence, limitation or closure detail, because all of those describe work rather than output. When you pick up a report and the first three pages are thin while the finding section runs to eighty, you already know the shape of what happened, before you have read a single vulnerability. A test that was genuinely performed is easier to describe than to summarise.

Objections

What will my auditor say, and what do I say back?

Sending a tell back rarely produces a document. It produces a sentence, usually on a call, usually one of these six. The rule behind each answer is set out in full further up the page. What follows is the reply.

“We can’t share the evidence, it’s confidential.”

Confidential from whom? It is your estate. §18(i) puts the working notes and the evidence appendix within the auditee’s reach — the auditee is to seek the working notes on completion, with a provision for it in the audit contract, and to ask for the evidence collected during the assessment to be submitted as an appendix to the final report. The rules that do restrict this material are about how it travels, not whether you get it: §16.5 requires official email IDs, delivery to the named point of contact and password protection or encryption, and §5.3.3 of the 2014 data-handling policy says the audit report should not be shared or hosted on online internet file services, online sharing platforms or cloud services unless the service is under the auditing organisation’s technical and administrative control or the auditee specifically authorises it. Ask for the appendix over the channel those clauses describe, and if the contract has no working-notes provision, that is a gap to close in the next engagement letter rather than a reason you cannot have the evidence.

“Our tool doesn’t output a CVSS vector.”

Then the severity column has no stated basis, and that is the finding. §16.2(ii) requires observations to be categorised on CVSS for severity and supplemented with EPSS, and Annexure I item 22 of the empanelment terms expects qualitative metrics derived from a mathematical formula rather than from the auditor’s judgement alone. A vector is not an output of a scanner. It is a judgement an assessor records, in a notation that lets somebody else disagree with it precisely. Ask for the vectors to be added before the report is finalised — that is an afternoon’s work for a tester who actually assessed the findings.

“Those are all false positives.”

Some of them may be, and they will not all be the same kind. A true false positive does not survive reproduction and should be withdrawn in writing and removed from the counts. A finding against infrastructure your hosting provider operates is real and gets re-owned under §13.1.5, not deleted. One misconfiguration counted once per host is one finding with an affected-asset list. A correct finding whose severity ignores your environment is a re-rating, recorded with both numbers. Lumping the four together is how a remediation programme loses credibility in both directions at once — real findings dismissed as noise, and noise argued about for a fortnight.

“The report is final. The retest is a separate purchase order.”

Both halves of that are wrong under the guidelines. §16.3(v) says the final audit report should be issued after the closure of vulnerabilities and completion of the follow-up audit on production — so a document marked Final with every finding open is a draft that has been mislabelled. And §9.3(iv) says follow-up audits should be included within the scope or the RFP proposal and must be conducted after closure. If the retest was not priced, the scope of work was incomplete, and that is a conversation about the work order, not about whether you are entitled to a retest.

“Our methodology is proprietary.”

The methodology is a required content item, not a trade secret. §16.1(ii) requires the report to include the methodologies and standards used, the tools, and the manual process. §8(ii) then narrows what counts as a standard — naming ISO/IEC standards, the Cyber Security Audit Baseline Requirements, the CSA Cloud Controls Matrix, OSSTMM3, the OWASP Web Security Testing Guide, ASVS, MSTG and the DevSecOps Maturity Model, and stating that limited lists such as the OWASP Top 10 and SANS Top 25 should not be treated as standards or references for audits. Nobody is asking for the firm’s internal playbook. They are asking which published guide was worked through, at which version.

“We tested staging. It’s identical to production.”

Then say that in the report, and prove it with the hash. §15.2.3(ii) requires testing on the staging or testing environment provided by the hosting service provider before the audit certificate is issued, with hash values and version numbers obtained from the auditee and included in the report — and §16.3(v) requires the report to state explicitly that the audit was not conducted on the production environment where the scope was limited to staging. “Identical” is a claim with an artefact hash behind it or it is not a claim. Ask for the hash of the tested build and the hash of what is deployed, computed the same way, and compare them yourself.

The read-through

How do you read a VAPT report? Eight steps, worst problems first

About half an hour for a first pass on a report of ordinary length. It runs against the running order set out above, and that is the point of it: steps one to four cover the front matter that most readers skim, step five is a single finding, and the findings section that occupies most of the page count gets four minutes. If you are new to the vocabulary, start with what VAPT is and the types of VAPT, since half of what makes a report hard to read is not knowing which kind of test it was supposed to be.

Read the scope and the asset list before you read a single finding

Do not start with the executive summary. Start with the list of what was tested and put your own asset inventory next to it. Every asset in your inventory that is not in that list is an untested asset, whatever the severity chart says. §13.1.1(c) requires the scope to be derived from the consolidated and updated asset inventory precisely so that this comparison is possible, and §16.1(iii) requires every in-scope asset to be named in the report.

Confirm the environment and the build

Find the sentence that names the environment, and the version, build and hash of what was tested. If the environment is staging, §16.3(v) requires the report to say so explicitly. If the hash has no algorithm beside it, ask for the algorithm and the artefact — published specimen certificates read side by side differ on exactly this point, one printing a bare sixty-four-character hash and the other naming its algorithm outright — and a hash you cannot recompute is decoration.

Check three dates, not one

The test window, the date of this report version, and the date to which the asset inventory behind the scope was current. §16.1(iv) requires draft and final versions to be dated, and §13.2.3(ii)(b) requires the inventory as-of date to be reflected in the report. A test window that predates your last two releases tells you what the report is worth today.

Read the methodology and the effort together

Which testing guide, at which version. Which tools, and what was done by hand. How many man-hours, over how many calendar days, by how many named people. §16.1(ii) requires all of it, and §13.2.2(ii) requires the test plan to carry both calendar time and man-hours. Effort and estate size have to be plausible against each other before the findings mean anything.

Read one finding end to end, and pick a medium

Not the critical — the critical is where the effort went. Take a medium-severity finding and see whether it has a location, a reproduction path, evidence you could act on, a CWE, a CVSS vector, and remediation guidance specific to your stack. How a firm writes up a medium is how it writes up everything it was not being watched on.

Re-rate the top findings for your own environment

Take the CVSS vector, not the number, and set the Environmental metrics for the system it actually sits on: how the affected service is really reached, what stands in front of it, and how much the confidentiality, integrity and availability of that particular asset are worth to you. Where a CVE exists, pull the EPSS score fresh rather than reading the one printed in the report. Expect the order to change — the worked box above shows a finding dropping a band and changing places with a lower-rated one. This is the step that converts an auditor’s severity list into your remediation queue.

Look for what is missing

Read the limitations, the exemptions and the inaccessible assets. Then look for the things that should be there and are not: unknowns marked as unknowns, states of security found rather than only failures, repeat observations from the previous cycle, severity-wise closure timelines. Absences do not announce themselves, which is why they are read for deliberately and last.

Check the signatures, then decide what the retest must cover

Three signatures in the order §16.1(vi) sets out. Then write the retest scope yourself, from the findings you intend to fix, before the remediation work starts — so that the follow-up audit required by §16.3(iv) verifies closure against a list that already exists rather than one assembled afterwards.

Step five is the one people are most tempted to skip, and it is the highest-yield minute in the exercise. Criticals get attention: they are written up carefully because everyone knows they will be read aloud in a meeting. A medium is where the firm’s actual standard lives. If the mediums have locations, evidence and specific remediation, the report is sound all the way down. If they collapse into one-line descriptions with a generic fix, the top of the report is a display case.

Worked example

What does reading a real report turn up? Forty-one pages, twelve observations

An illustrative composite, not a client engagement, and labelled as such for the same reason the finding comparison further up this page is: the counts exist to show the shape of the arithmetic, not to describe anyone. What is not illustrative is the clause beside each row. This is the read-through above, run once, on one document, with the notes somebody actually took.

Page 2 · Scope annexure33 assets named. The asset inventory the organisation maintains has 41.Eight assets are untested and the report does not say so. §13.1.1(c) requires the scope to be derived from the consolidated and updated asset inventory and §16.1(iii) requires every in-scope asset to be named in the report — so either the eight were never in scope, in which case somebody scoped them out and it is not written down, or they were in scope and §10.1(ii) required them named with reasons. The severity chart on page 4 is a chart about 33 things.
Page 2 · Inventory as-of dateAbsent.§13.2.3(ii)(b) requires the date to which the scope and asset inventory were updated to be reflected in the audit reports. Without it there is no way to tell whether the 33 were current at the time of testing or a list inherited from a previous cycle. This is the field that would have explained the gap in the row above.
Page 3 · EnvironmentOne line: “as provided”.§15.2.3(i) requires the environment — Test, Development, UAT, Pre-Production or Production — to be specified. “As provided” specifies nothing. If it was staging, §16.3(v) required the report to say explicitly that the audit was not conducted on the production environment. Everything downstream of this line is now unanchored.
Page 3 · Build identityApplication name and a release month. No version string, no build identifier, no hash, no algorithm.§9.5(i) and §16.1(v) require hash values, versions and timestamps to be prominently featured in the certificate and the reports, and §13.2.3(ii)(c) requires version-specific detail in both scope and report. Build identity cannot be reconstructed after the fact, so this one cannot be fixed by a revised report — it can only be fixed by testing again.
Page 3 · Methodology“OWASP Top 10”. No testing guide, no version, no baseline, no manual process described.§8(ii) states that limited lists such as the OWASP Top 10 and SANS Top 25 should not be considered standards or references for audits. §16.1(ii) requires the methodologies and standards used, the tools and the manual process. What this line describes is a category scheme for sorting output, not a method for producing it.
Page 3 · Effort6 man-days across the 33 named assets, 2 named testers, 4 calendar days.Not a judgement about the firm — arithmetic. §13.2.2(ii) requires the test plan to carry both calendar time and man-hours and §16.1(ii) requires duration and manpower in the report, precisely so this comparison can be made. Six man-days against 33 named assets including authenticated web roles and an API tier is roughly an hour and a half per asset, inclusive of reporting.
Pages 5–38 · Findings47 findings. Sorted by remediation action, 31 of them resolve to one misconfiguration in a shared container base image.One finding with 31 affected assets, not 31 findings. The report is 47 lines long and 17 problems deep. §16.2(ii)’s CWE mapping is what makes this collapse visible in one sort — which is part of why the mapping is required rather than optional.
Pages 5–38 · Classification11 of the 47 carry no CWE. None of the 47 carries an EPSS value. 9 carry a CVE.§16.2(ii) requires every reported observation to be mapped with a CWE and a CVE number, and requires CVSS to be supplemented with EPSS for real-world exploitation likelihood. Nine findings have a CVE, so nine EPSS values existed and could have been pulled. The eleven with no CWE cannot be counted against anything, this cycle or next.
Pages 5–38 · EvidenceScreenshots of the scanner console for 40 findings. Request-and-response pairs for 3. Nothing for the remaining 4.§18(iii) requires observations to be well supported with objective evidence, compiled carefully and correctly with the report and presented so decision makers can use it in credible risk-based decisions. A picture of a tool saying something is not evidence that the thing is true. It is evidence that the tool said it.
Page 39 · LimitationsTwo sentences, both about the testing window.The section that should carry the eight missing assets, the unprovisioned roles, anything accepted on the developer’s description and anything left passive for availability under §15.2.2(iv). §16.1(ii) requires exemptions, limitations and other constraints, and Annexure I item 20 of the empanelment terms expects unknowns marked as unknowns. Two sentences is the length this section reaches when there is nothing anybody is willing to write down.
Page 40 · Repeat observationsNo such section. This is the organisation’s second annual cycle with the same firm.§15.2.1(iii) requires the auditing organisation to revalidate observations from the previous audit cycle and to record anything unresolved as a repeat observation in the current cycle. Its absence does not mean last year’s findings were closed. It means nobody looked. Last year’s report had 29 findings.
Page 41 · ClosureNo timelines by severity. One signature. Document marked “Final”, dated four days after the test window closed.§16.3(iii) requires closure timelines by severity. §16.1(vi) and §9.5(iii) require three signatures — the auditors, an independent mid-management reviewer, and the head of the auditing organisation. And §16.3(v) puts the final report after the closure of vulnerabilities and the completion of the follow-up audit, which cannot have happened in four days with 47 findings open. This is a draft with the wrong word on the cover.

Twelve observations, none of which required access to the testing, the testers or the tooling. They produced six questions. The answers are where the exercise stops being an audit of the document and starts being a conversation about the engagement.

Which eight assets were not tested, and who decided that?

Answer received: six were out of scope by agreement in a call that was never minuted, and two were assumed to be covered by the network range. §14.2 requires scope revisions in writing with justification, assessed for impact, approved by authorised representatives and documented as an addendum to the engagement letter. None of that exists, so the scope on paper and the scope tested are different documents.

Which environment was tested, and is that build what is running now?

Answer received: staging, and staging was rebuilt from production “a few weeks before”. Without a hash on either side that is an assertion, not a fact. The engagement cannot produce one retrospectively, which makes this the finding that costs a fresh pass rather than a revised report.

Which testing guide did you work through, and which of its checks did you not run?

Answer received: the OWASP Web Security Testing Guide “informally”. That is a usable answer if it comes with the section list and the checks not run, but it is not a usable answer on its own. §16.1(ii) wants the methodology and the manual process both stated, which is the difference between the two.

Send the CVSS vector for every finding and the CWE for the eleven that have none.

Answer received in nine working days: vectors for 44 of 47, CWEs for all 47. Re-sorting by CWE is what turned 47 findings into 17. The three findings for which no vector could be produced were three of the four with no evidence, which is not a coincidence.

Send the evidence appendix and the working notes.

Answer received: an evidence pack for 12 findings and a statement that working notes are internal. §18(i) puts both within the auditee’s reach and expects the contract to provide for the working notes. This contract did not, which is a clause for the next engagement letter rather than an argument to win now.

Show me last cycle’s 29 findings with their current status.

Answer received after two weeks: 11 closed, 6 still open and appearing in this report as new findings, 12 never revalidated. The six that reappeared as new are the single most useful number the read produced — they are repeat observations under §15.2.1(iii), and presenting them as new findings understates the age of the risk by a year.

What the read was worth. Not the 47 findings. The read turned 47 into 17 by sorting on a field the report was required to carry and did not, surfaced six risks that were a year older than the document admitted, and identified one defect — the missing build identity — that no revised report can repair, which is the difference between a conversation about this engagement and a decision about the next one. It took an afternoon, and every question in it quoted a clause rather than an opinion. That is the whole method.

Reading someone else’s report

How do I review a vendor’s VAPT report? For the team on the receiving end

A report that arrives during a procurement is a different object from one you commissioned. You did not set the scope, you cannot re-test anything, and the people who can answer your questions work for the counterparty. Six questions do most of the work, and the answers are narrower than the document’s cover page suggests.

Does this report tell me the vendor is secure?No, and nothing can. §10.1(i) puts the limit in the auditor’s own instrument: the auditor “is not responsible for managing or maintaining the organization’s security measures directly or indirectly; their responsibility is limited to reviewing and reporting on the state of security at the point in time of the audit.” A report is a statement about named assets, in a named environment, in a named window. Everything outside those three is not addressed.
Does a certificate tell me more than the report?Less, and not by a little. A certificate carries a conclusion. The report carries the four things that decide whether the conclusion means anything — what was in scope, in which environment and at which build, how it was tested, and what was still open when it was signed. None of those fits on a certificate and none of them can be inferred from one. Ask for the report, or at minimum for the scope statement, the environment and build line, the methodology section and the closure summary.
What can I conclude if the scope excludes the system I care about?That the system you care about has not been tested. This is the failure mode this section is written for, because nothing in the document looks wrong when it happens: the report is genuine, the auditor is real, the findings are sound, and the product you are buying is simply not among the assets named. Read the asset list against the thing you are procuring before you read anything else.
Is the auditor actually empanelled, and does that matter here?It matters where the engagement requires it, or where a contract specifies it. For an Indian government website, web application, portal or mobile app, GIGW guideline 5.3.1 requires an audit clearance certificate before hosting in production, and names four issuers: NIC, STQC, an STQC-empanelled laboratory, or a CERT-In empanelled laboratory. CERT-In empanelment is one of those four, not the whole requirement. The check itself is against the signing legal entity, by registered name, on CERT-In’s published list of empanelled information security auditing organisations — and note what that list is: its own header describes it as the up-to-date valid list, kept current as changes occur. It carries no history and no per-entry validity dates, so it answers “are they empanelled now”, not “were they empanelled then”. For the engagement dates, ask the auditing organisation for the empanelment letter or reference covering that period. Clause 1.1 of the empanelment terms makes the status valid for a stated block period subject to annual review and renewal, and clause 9.3 requires an organisation to stop claiming it on termination. A reading of the directory rather than a rule in any instrument, but worth stating: the list names legal entities, so a parent or sibling company appearing on it does not put the signing entity on it.
Why will the vendor not just send me the whole report?Often for a reason that is in their auditor’s rulebook rather than in their sales policy. §16.5 requires reports to go to the specified point of contact, over official email, with password protection or encryption and end-to-end confidential channels, and §13.2.5 requires a distribution list of official email IDs before distribution. The auditor’s own data-handling policy goes further and says the audit report should not be shared or hosted on online internet file services, online sharing platforms or cloud services unless under the auditing organisation’s technical and administrative control or specifically authorised by the auditee. Those rules bind the auditor, not you — but they explain why a genuine report arrives password-protected from a named person rather than as an open link, and why a vendor who mails one round casually is worth a second look.
What should I accept instead of the full report?A scoped extract is a reasonable compromise and easy to specify: the cover page, the scope and asset list, the environment statement, the methodology, the severity summary, the closure timelines, the limitations, and the retest confirmation — with the finding detail and evidence redacted. That extract answers every question in this table. A one-page certificate answers none of them.

Where the engagement is one that requires an independent issuer — an Indian government website, web application, portal or mobile app going into production, most obviously — read the requirement as GIGW writes it. Guideline 5.3.1, at guidelines.india.gov.in, requires an audit clearance certificate issued by NIC, STQC, an STQC-empanelled laboratory or a CERT-In empanelled laboratory before hosting in the production environment. Four issuers, one of which is CERT-In empanelment. Where the requirement is specifically a CERT-In empanelled organisation — because a tender, a regulator or a customer contract says so — the empanelment check has its own method and its own failure modes, set out on how to verify a CERT-In audit certificate. What empanelment is, and what it is not, is on CERT-In empanelment explained. The agency itself is described on what CERT-In is. And if what you have been handed is a certificate rather than a report, the distinction and what each one carries is covered on what a safe-to-host certificate is and safe-to-host versus a security audit certificate.

One caution about claims made around the document rather than in it. An empanelled auditor is permitted exactly one sentence about its relationship with CERT-In — that the organisation is empanelled by CERT-In for providing information security auditing service — and no other words without CERT-In’s prior written permission, with the logo prohibited on publicity or promotional material on the same terms. A cover page carrying the CERT-In emblem, or a covering email describing the firm as “CERT-In certified”, tells you how that organisation treats claims generally, before you have read a single finding. Claims about the newer audit monitoring platform are worth the same scepticism, and are set out on AMBAK.

The request

What should I ask my VAPT auditor for? Eleven lines to send back

Every item below is something an instrument already requires or entitles you to, so none of it is an imposition on a competent auditor and all of it is quick for one who did the work. An organisation that cannot produce most of this within a few days has told you something about the engagement that the report did not.

  • 01 The scope and asset list as tested, set against our asset inventory, with the as-of date of that inventory.
  • 02 The environment tested, named explicitly, and confirmation of whether the tested build is the build now in production.
  • 03 The application version, the build identifier, the hash value and the hash algorithm.
  • 04 The testing guide or standard followed, at its version, and the list of tools used alongside the manual testing.
  • 05 The test plan as delivered, with calendar time and man-hours, and the names of the personnel who performed the work.
  • 06 The CVSS vector string for every finding, the CWE for every finding, and the CVE and EPSS score where one exists.
  • 07 The evidence appendix and the working notes.
  • 08 The severity-wise closure timelines.
  • 09 The list of in-scope assets that could not be tested, with the reason in each case.
  • 10 The previous cycle’s findings with their current status, marked as repeat observations where still open.
  • 11 The retest scope and date, and confirmation of whether this report version is draft or final.

Send it to the point of contact named in the engagement, over the channel the engagement uses. §16.5 requires reports to be communicated through official email IDs only, to the specified point of contact, with password protection or encryption and end-to-end confidential delivery channels, and §13.2.5 requires a distribution list of official email IDs — plus a mobile number for sharing report passwords — to be obtained before distribution. If you are the auditee, keep the request and the reply with the report. They are part of the record of what you were told, and they are the first thing anyone will ask for if a finding that was closed on paper turns out not to have been.

What if the auditor will not fix the report?

Most of the time the eleven lines are answered, because a firm that did the work has the material to hand. When they are not, there is a ladder, and it is worth knowing that it ends somewhere. Work down it in order and stop when the problem is fixed.

  • 01 Put the request in writing with a date on it, under §18(v). That clause is the mechanism and it is worth naming: the auditee may request clarifications on the audit report, and the auditor responds within a mutually agreed timeframe. “Mutually agreed” means you propose one. An email citing §18(v) and §16.1(ii) gets a different answer from an email saying the report feels thin.
  • 02 Ask separately for the artefacts you are already entitled to and have not seen. The evidence appendix and the working notes under §18(i), the tool list with its IPR and licence confirmation under §13.2.2(iii), and the date each critical and high finding was first identified — which §16.3(ii) required to be notified to you as and when found, so the dates exist. A firm that ran the engagement properly can produce all four inside a day.
  • 03 Use the review meeting the engagement already provides for, rather than inventing a new forum. §15.2.7 expects regular review meetings with the auditee’s points of contact, and §13.2.6 expects a defined escalation matrix on both sides. Hold one, with minutes, and put the outstanding items in them.
  • 04 Ask for the specific remedy, not for general improvement: a corrective action note with dates, a revised report, or a §14.2 addendum where the problem is that the scope moved. Naming which of the three you want is what makes the answer comparable to something.
  • 05 Escalate to the head of the auditing organisation. That is not a rhetorical step — under §9.5(iii) the head of the organisation is the person who has to authorise and sign the report, and is therefore the person with a direct interest in it being defensible. Send them the clause list.
  • 06 Hold back only the phase that has not been delivered, and only that. §7 requires payments not to be contingent upon the outcome of the audit, favourable or unfavourable, nor tied to the submission or approval of any closure report — so withholding against findings is the thing you must not do, and declining to accept an undelivered phase is the thing you may. Where the engagement cannot be repaired at all, §12.4(ii) contemplates a contract clause letting the auditee stop and appoint another organisation.
  • 07 Give CERT-In feedback afterwards, whatever the outcome. §11(iii) describes auditee feedback as both a right and a duty, says feedback and complaints are kept confidential and acted on promptly, and points auditees at empanelment@cert-in.org.in for the form. §19 sets out what that feedback can trigger — adverse feedback on technical competency sits at the top of the suspension row. This step costs nothing and has no deadline, which is why it is the one that never gets done.

One thing that is not on the ladder, deliberately. Do not renegotiate the fee against the findings, in either direction. §7 of the audit policy guidelines puts independence first among the basic principles and states that payments to the auditing organisation should not be contingent upon the outcome of the audit — whether favourable or unfavourable — nor tied to the submission or approval of any closure report, and that fees should be based on predefined scopes, deliverables and timelines. A discount negotiated because the report was disappointing creates exactly the incentive the clause exists to prevent, on the next engagement rather than this one.

Where we fit

We deliver CERT-In audits

We deliver CERT-In audits, end to end, with our CERT-In empanelled partners. See how a CERT-In audit runs with us, or read more about our security testing services.

References

Every claim on this page, and the document behind it

Each row is a document read directly, with the clauses this page relies on and a link to the official copy. Where any of them disagrees with anything written here, it wins.

  • Comprehensive Cyber Security Audit Policy Guidelines · CERT-In, Ministry of Electronics and Information Technology — Version 1.0, 25 July 2025. The instrument most of this page rests on. §2 the binding formula and §4 who it applies to. §5 the definitions relied on here — CVE at (xviii), CWE at (xix), vulnerability assessment at (xxi), penetration testing at (xxii), and the severity-classification entry at (xxiv) that names CVSS and EPSS. §8 applicable standards and the discouragement of solely tools-based testing. §9.5(i) hash, version and timestamp. §9.5(iii) the signature chain. §10.1 the point-in-time limit and inaccessible assets. §13.1.1 scope. §13.2.2(ii) calendar time and man-hours. §13.2.3(ii) inventory date and version-specific detail. §13.2.5 report distribution. §15.2.1(iii) repeat observations. §15.2.3 environment and staging. §16.1 report contents and versions. §16.2 executive summary, CVSS, EPSS, CWE and CVE. §16.3 closure timelines, follow-up and the final report. §16.4 high-risk findings. §16.5 and §16.6 delivery and disclosure. §18 evidence and working notes. cert-in.org.in/PDF/Comprehensive_Cyber_Security_Audit_Policy_Guidelines.pdf
  • Empanelment of Information Security Auditing Organisations — Terms and Conditions for Empanelment · CERT-In — Version 7.2, April 2024. Annexure I, “Expectations of an Auditee organisation from an Auditor”, 24 numbered items — item 10 (calendar time and man-hours), item 12 (tools understood and tested before use), item 16 (high-risk findings reported immediately with a practical solution), item 19 (notification of changes to the plan and of high-risk findings), items 20 to 22 (unknowns marked as unknowns, all states of security found, metrics on a mathematical formula), item 23 (delivery confirmed). Annexure II, the audit report content format. Clause 2.1: CERT-In is not a party to your contract. Clause 3.2.2: the five-day submission of report and metadata to CERT-In. cert-in.org.in/PDF/termscon.pdf
  • Guidelines for CERT-In Empanelled Information Security Auditing Organizations · CERT-In — Version 3.0, May 2018. The earlier statement of the same rules, useful where a report predates the 2025 guidelines: observations supported by objective evidence and compiled with the report, timelines for closure of vulnerabilities according to severity, the environment in which the application was tested stated clearly, a verification team reviewing the audit team, and the discouragement of solely tools-based testing. cert-in.org.in/PDF/Auditor_Guidelines.pdf
  • Policy Guidelines for Handling Audit related Data · CERT-In — Version 1.0, June 2014. §5.3.3, on how an audit report may and may not be circulated, and the storage, access, retention and destruction rules that sit behind a password-protected delivery. cert-in.org.in/PDF/Policy_Guidelines_Handling.pdf
  • Directions under sub-section (6) of section 70B of the Information Technology Act, 2000 · CERT-In, No. 20(3)/2022-CERT-In, 28 April 2022. The six-hour incident reporting duty and the twenty mandatorily reportable incident types at Annexure I — the obligation that starts running if a test turns up evidence of a live compromise. cert-in.org.in/PDF/CERT-In_Directions_70B_28.04.2022.pdf
  • Empanelled information security auditing organisations, with snapshot information · CERT-In. The published directory and the per-organisation snapshot of skills, competence, audits performed and technical manpower — the document any empanelment check is performed against. cert-in.org.in/PDF/Empanel_org.pdf
  • Cyber Security Audit Baseline Requirements · National Security Council Secretariat — Publication NSCS-46-16 Rev 1.0, October 2020, published on CERT-In’s website. Named at §8(iii) and §13.1.8(i) of the audit policy guidelines as a document auditees and auditing organisations should use to build their audit programme. Its own abstract describes it as the minimum-security assurance baseline expected across the cyber information infrastructure of organisations. cert-in.org.in/PDF/CyberSecurityAuditbaseline.pdf
  • Common Vulnerability Scoring System version 4.0: Specification Document · FIRST.Org, Inc. — Document Version 1.2. The four metric groups (Base, Threat, Environmental and Supplemental), the statement that the Base Score assumes the reasonable worst-case impact across different deployed environments, and the instruction that consumers should enrich the Base metrics with Threat and Environmental values specific to their use of the vulnerable system. first.org/cvss/v4.0/specification-document
  • Common Vulnerability Scoring System v3.1: Specification Document · FIRST.Org, Inc.. The version most reports in circulation still use, and the comparison this page draws: three metric groups rather than four (Base, Temporal and Environmental), a base group carrying Attack Vector, Attack Complexity, Privileges Required, User Interaction, Scope and single Confidentiality, Integrity and Availability impacts, and a Temporal group of three metrics (Exploit Code Maturity, Remediation Level and Report Confidence) where v4.0 has one. first.org/cvss/v3.1/specification-document
  • CVSS version 4.0 calculator · FIRST.Org, Inc.. The tool this page tells the reader to use, and the source of the scores in the worked re-rating: 7.1 for the base vector, 6.9 with a modified attack vector of Adjacent, 5.5 with a Confidentiality Requirement of Medium as well, and 8.7 where modified privileges required drop to None. first.org/cvss/calculator/4.0
  • Exploit Prediction Scoring System (EPSS) · FIRST.Org, Inc.. The definition relied on here: a data-driven machine-learning model estimating the probability that a published CVE will be exploited in the wild in the next 30 days, published daily as a 0–1 probability with ranking percentiles. first.org/epss
  • EPSS Frequently Asked Questions · FIRST.Org, Inc.. The operational detail the landing page does not carry: that the probability is an absolute measure and the percentile a relative ranking, that because the distribution is skewed towards zero a probability of 0.10 currently sits around the 95th percentile, that scores are recomputed and republished daily for every scored vulnerability, that EPSS is not a complete risk score (measuring neither impact nor environment nor compensating controls), and that EPSS defines no severity bands and endorses no threshold. first.org/epss/faq
  • About CWE · MITRE. The definition of the enumeration and of a weakness: a condition in a software, firmware, hardware or service component that, under certain circumstances, could contribute to the introduction of vulnerabilities. cwe.mitre.org/about
  • OWASP Application Security Verification Standard · OWASP — current stable version 5.0.0. Named at §8(ii) of the audit policy guidelines as a standard an audit may be built from, and named in GIGW’s cybersecurity chapter. Relied on here for the level structure as ASVS 5.0.0 states it: Level 1 as the minimum starting set at around twenty per cent of the requirements, described as “not necessarily penetration testable by an external tester without internal access to documentation or code”, Level 2 as the level “most applications should be striving to achieve”, and Level 3 for applications demonstrating the highest level of security. The level definitions were reorganised between 4.0.3 and 5.0.0, which is why a scope of work must name the version as well as the level. owasp.org/projects/asvs
  • Application Security Guidelines · CERT-In, Ministry of Electronics and Information Technology. CERT-In’s own secure design and development guidance, named at §8(vii) of the audit policy guidelines and relied on here for §8(viii) — that an application developed without any secure design and development practices should not be considered for assessment and audit, and that the auditee should be told in writing with a copy marked to CERT-In. cert-in.org.in/PDF/Application_Security_Guidelines.pdf
  • Guidelines for Indian Government Websites — security guidelines and attributes · National Informatics Centre, STQC and CERT-In, published by MeitY at guidelines.india.gov.in. Guideline 5.3.1, quoted here for the issuer question: the website, web application, web portal or mobile app must have been security audited and an audit clearance certificate issued by NIC, STQC, an STQC-empanelled laboratory or a CERT-In empanelled laboratory before hosting in the production environment. Four issuers, of which CERT-In empanelment is one. guidelines.india.gov.in/security-guidelines-and-attributes

Sources last checked 22 September 2026. Two notes on citation. First, section references on this page without another document named are to the Comprehensive Cyber Security Audit Policy Guidelines of 25 July 2025, and references to Annexure I and Annexure II are to the empanelment terms of April 2024, not to the Annexures of the 2022 Directions, which are a different list entirely. Second, where the requirement for government systems is the operative question, the audit clearance rule sits in GIGW guideline 5.3.1 at guidelines.india.gov.in, and the route to a certificate is set out on how to get a safe-to-host certificate with the common failure modes on why applications fail safe-to-host. Where a penetration test is being read as part of a SOC 2 programme rather than an Indian audit, the different expectations are covered on SOC 2 and penetration testing.

Frequently Asked Questions

What is a VAPT report?
A VAPT report is the written deliverable of a vulnerability assessment and penetration testing engagement. It records what was tested — named asset by asset — in which environment, at which application version and build, over which dates, by which method and with how much effort, together with every finding, the evidence supporting it, its severity, the remediation guidance and the timeline for closure by severity. CERT-In’s Comprehensive Cyber Security Audit Policy Guidelines (v1.0, 25 July 2025) set out the contents at §16.1(ii): the audit process, detailed scope, duration of audit, methodologies and standards used, tools, manual process, findings, prioritization, sampling decisions, manpower involved, exemptions, limitations and other constraints. It is a different document from an audit certificate, which carries only the conclusion.
What does VAPT stand for?
Vulnerability Assessment and Penetration Testing. CERT-In renders it without the conjunction: §13.2.3(i)(a) of the Comprehensive Cyber Security Audit Policy Guidelines lists the types of audit that must be communicated to an auditee before an assignment starts and opens that list with “VAPT (Vulnerability Assessment Penetration Testing)”, alongside EAPT (External Attack Penetration Testing), DLA (Device Level Audit), configuration audit, process audit, mobile application security audit, web application security audit, API security audit and compliance audit. The list ends with “etc.”, so it is not a closed set. VAPT is a defined abbreviation in an Indian instrument rather than an international term of art, so a buyer or a customer outside India may need the two halves spelled out before the report makes sense to them.
What is EAPT, and how is it different from VAPT?
EAPT is External Attack Penetration Testing. It appears in exactly one place in CERT-In’s Comprehensive Cyber Security Audit Policy Guidelines: §13.2.3(i)(a) lists the types of audit an auditor must communicate to the auditee before an assignment starts, and names EAPT alongside VAPT, DLA (Device Level Audit), configuration audit, process audit, mobile application security audit, web application security audit, API security audit and compliance audit. The guidelines expand the abbreviation and do not define it further, so anything beyond the expansion is the engagement’s to settle. The practical consequence is the one that matters: because the list is of distinct named types, the audit type has to be agreed before work starts, and “VAPT” and “EAPT” in a proposal are not interchangeable words for the same scope. Ask what the scope actually covers — internet-facing perimeter only, or authenticated application testing as well — and write the answer into the engagement letter rather than relying on the abbreviation.
What is the difference between a vulnerability assessment and a penetration test?
They are separate activities and the guidelines define both. A vulnerability assessment is the examination of an information system or product to determine the adequacy of security measures, identify security deficiencies, provide data from which to predict the effectiveness of proposed security measures, and confirm the adequacy of such measures after implementation. Penetration testing is a security testing methodology in which individual components or the application as a whole are actively tested to identify and exploit potential vulnerabilities — the objective being to determine whether those vulnerabilities can be exploited to compromise the application, access sensitive data, or affect the underlying infrastructure and environment. Assessment answers “what weaknesses are present”, while penetration testing answers “what can somebody actually do with them”. A report that only enumerates is a vulnerability assessment report, whatever the cover page says.
What should a VAPT report contain?
Fifteen things, in practice: (1) the scope and asset list, (2) the environment tested, (3) the application version, build and hash, (4) the test window, the report version dates and the as-of date of the asset inventory, (5) the methodology, standards and tools with the manual process alongside them, (6) the manpower and effort, (7) an executive summary written for the board, (8) the findings, (9) the evidence, (10) remediation guidance, (11) closure timelines by severity, (12) exemptions, limitations and constraints, (13) repeat observations from the previous cycle, (14) the retest and closure record, and (15) three signatures. §16.1(ii) lists most of these directly, §16.1(iii) to (vi) add the asset list, the draft and final versioning, the hash and version detail and the signature chain, §16.2 adds the executive summary and the CVSS, EPSS, CWE and CVE requirements, §16.3 adds closure timelines and follow-up, and §18 adds evidence and working notes.
What is the VAPT report format?
CERT-In does not publish a page-by-page template, but it does prescribe contents. Clause 3.1.12 of the empanelment terms requires the report to be submitted to the auditee as per the format at Annexure II, and §16.1(ii) of the 2025 guidelines sets out a longer list. Between them and the requirements scattered through §§13, 15 and 18, the running order a competent report follows is: (1) cover page, (2) document control and version history, (3) distribution list, (4) executive summary, (5) scope and asset annexure, (6) environment, build and hash, (7) dates, plan and effort, (8) methodology, standards and tool list, (9) severity summary and rating basis, (10) detailed findings, (11) exemptions, limitations and unknowns, (12) repeat observations, (13) closure timelines, retest and follow-up, (14) the signature block, and (15) the annexures carrying evidence, working notes, the asset list and the tool record. The first content list is §16.1(ii) of the audit policy guidelines. The second is Annexure II to the empanelment terms (v7.2, April 2024), an “Audit Report content format” of ten items — auditee identification with address and contact information, dates and locations, terms of reference including the standard for audit, the audit plan, explicit reference to key auditee documents by date or version, other applicable standards or regulations, a summary of findings including tests and tools used and results, analysis of vulnerabilities, recommendations for action and follow-up audits, and the personnel involved including identification of any trainees. §16.1(i) says the format is to be mutually agreed and finalised before the audit commences, which makes it a procurement decision rather than a delivery surprise.
Is there a VAPT report sample we can look at?
Not a genuine one, and be wary of anyone circulating one. A real VAPT report is a description of how to compromise a named organisation, which is why §16.5 restricts delivery to official email IDs, a specified point of contact and password-protected or encrypted channels, why §13.2.5 requires a distribution list to be agreed before the report is sent, and why §5.3.3 of CERT-In’s Policy Guidelines for Handling Audit related Data says it should not be shared or hosted on online internet file services, online sharing platforms or cloud services unless the service is under the auditing organisation’s technical and administrative control or the auditee specifically authorises it. What is publicly available is the structure rather than the contents, which is what this page supplies: the fifteen-part anatomy, the running order and the two content lists. If what you actually need is to evaluate a supplier’s reporting quality before you buy, ask for a redacted specimen of their own template — cover page, scope statement, methodology section, one finding with the customer detail removed, and the limitations section — rather than a complete report about somebody else. And if you are the one being asked, the scoped extract described in the vendor-risk section above is the version to send.
What do P1, P2 and P3 mean in a VAPT report?
They are the report’s own severity bands, and no CERT-In instrument defines them. Some firms use P1 to P4 or P5, some use Critical, High, Medium, Low and Informational, and the two do not map onto each other reliably — a P1 in one firm’s scheme is not necessarily a Critical in another’s. What the guidelines do require is the basis rather than the labels: §16.2(ii) requires observations to be categorised on CVSS for severity, supplemented with EPSS for exploitation likelihood, and mapped to CWE and CVE. So the test of a severity scheme is whether the report defines its own bands and shows the CVSS vector behind each rating. Two practical cautions. First, ask for the score ranges each band covers, because a firm that cannot state them is labelling by judgement. Second, look hard at any Informational band: it carries no remediation obligation and no timeline, which makes it the place where volume accumulates without anybody having to account for it.
Our VAPT report has 200 findings. Is that bad?
The count is the wrong axis, and the first thing to do is deflate it. Sort the findings by CWE and then by remediation action: where forty entries resolve to one change to one container base image, that is one finding with forty affected assets, and §16.2(ii)’s CWE mapping exists partly to make that collapse visible in a single sort. A 200-line report frequently turns out to be twenty or thirty distinct problems seen from many hosts. Once it is deflated, read what is left three ways — how many are in first-party code rather than third-party components, how many carry evidence you could act on, and how many would change band once you apply Environmental metrics for where they actually sit. A high count after deflation is a real signal, and §8(viii) names what it usually means: an application developed without secure design and development practices should not be considered for assessment and audit at all, and the auditee should be told so in writing with a copy marked to CERT-In. That is a build-process conversation, not a remediation backlog.
Does a VAPT report have to come from a CERT-In empanelled auditor?
It depends on why the test is happening, and the answer is narrower than it is usually stated. For an Indian government website, web application, portal or mobile app going into production, GIGW guideline 5.3.1 requires an audit clearance certificate issued by NIC, STQC, an STQC-empanelled laboratory or a CERT-In empanelled laboratory — four issuers, of which CERT-In empanelment is one. Beyond that, empanelment is required where a contract, a tender or a customer says so. For a private company with no such requirement, no instrument compels it: §4 of the audit policy guidelines describes auditee organisations as those in the public and private sectors “that are required to or are seeking to evaluate their cyber security posture”, which is a description rather than a mandate. What empanelment does change, where it applies, is that the guidelines then bind your auditor under §2 — including the report contents, the evidence duty and the three-signature chain this page is built on. The rulebook table near the top of this page sets out the four cases.
How do I know if a VAPT report is any good?
Read the first three pages and one medium-severity finding. The first three pages tell you whether there was a real engagement: a scope derived from an asset inventory with the inventory’s as-of date, the environment stated explicitly, the version and hash, the testing guide named at its version rather than “OWASP Top 10”, and the effort given in both calendar time and man-hours as §13.2.2(ii) requires. Then pick a medium rather than a critical, because criticals get written up carefully whatever the firm’s standard is, and check it against seven things: (1) a named location, down to the endpoint or the host, (2) numbered reproduction steps you could hand to an engineer, (3) evidence that is a request and a response rather than a picture of a tool, (4) a CWE, (5) a CVSS vector, not just a word, (6) remediation naming the file, parameter or configuration key in your stack, and (7) a closure timeline tied to the report’s severity schedule. Seven out of seven and the report is sound all the way down. Two out of seven and only the top of it was written for you.
Is a CVSS score a risk rating?
No, and the specification that defines CVSS says so. The FIRST CVSS v4.0 specification states that the Base Score “reflects the severity of a vulnerability according to its intrinsic characteristics which are constant over time and assumes the reasonable worst-case impact across different deployed environments”, and instructs that consumers “should enrich the Base metrics with Threat and Environmental metric values specific to their use of the vulnerable system to produce a score that provides a more comprehensive input to risk assessment specific to their organization”. It also notes that Threat and Environmental information is available only to the end consumer — so your auditor cannot complete the rating even in principle. The specification further lists factors that are outside the scope of CVSS altogether, including regulatory requirements, number of customers impacted, monetary losses, life or property threatened and reputational impact. A base score ranks weaknesses. Risk is what that weakness means where it actually sits.
What is the difference between CVSS and EPSS?
CVSS measures how severe a vulnerability is, while EPSS estimates how likely it is to be exploited. EPSS — the Exploit Prediction Scoring System, also from FIRST — is a data-driven machine-learning model that estimates the probability a published CVE will be exploited in the wild in the next 30 days, published daily as a 0–1 probability with a ranking percentile. §16.2(ii) of the audit policy guidelines requires them together: CVSS for severity and EPSS for real-world exploitation likelihood. Used together they separate the four cases that matter — severe and being exploited, severe but quiet, modest but being exploited at scale, and modest and quiet — which is a far better remediation queue than a single column of High, Medium and Low.
Why does a finding in my report have no CVE number?
Because a CVE identifier is assigned to a publicly disclosed vulnerability in a released product. §5(xviii) of the audit policy guidelines defines CVE as a standardised list of unique identifiers assigned to known cyber security vulnerabilities, each with a description and references. A defect written by your own developers is not on that list and cannot be — broken authorisation on an endpoint, a tenant-isolation failure, a business-logic flaw in a refund path. And because EPSS is published per CVE, a finding with no CVE has no EPSS score either. §16.2(ii) requires every reported observation to be mapped with a CWE and a CVE number, and the practical reading is that the CWE always applies while the CVE applies where one exists. The right treatment in a report is to say so explicitly rather than leave the field blank. It follows that a report in which every finding carries a CVE is a report about third-party components, which is a different exercise from testing your application.
What counts as a false positive in a VAPT report, and how do I get one removed?
A true false positive is a finding that does not hold when reproduced — typically a tool matching a version banner, a signature or a response pattern that nobody verified. Ask for the reproduction path and run it on your own system. A real finding survives that. If it does not, ask the auditor to withdraw it in writing with a sentence explaining why the original observation did not hold, and expect it to disappear from the counts rather than sit in the report as “closed”. §18(v) of the audit policy guidelines is the mechanism: the auditee may request clarifications on the report and the auditor responds within a mutually agreed timeframe. Three other things are often called false positives and are not: a real finding against infrastructure a third party operates, one misconfiguration counted once per host, and a correct finding with a severity that ignores your environment. Each of those needs a different disposal.
How long do we have to fix the findings in a VAPT report?
The report should tell you — and the numbers in it come from your engagement, not from CERT-In. §16.3(iii) makes stating the timelines mandatory and fixes no day count for any severity band, and the 2018 auditor guidelines carried the same rule in the same open form. So a page that tells you criticals must be fixed in exactly seven days is inventing a rule: the bands belong in the audit engagement letter §14.1(ii) requires both sides to sign, and they should be in the letter before they are in the report. Critical and high findings should also have reached you before the report did: §16.3(ii) requires them to be notified during the course of the audit on an as-and-when-found basis, and §16.4 requires high-risk vulnerabilities — discovered breaches, vulnerabilities with known high exploitation rates, unmonitored or untraceable access, or anything posing an immediate risk to life — to be reported immediately on discovery with a recommendation for a practical solution. Fixing is your responsibility under §9.3(iii), while verifying closure is the auditor’s, through the follow-up audit required by §9.3(iv) and §16.3(iv), which should have been in the scope of work from the start.
Does our auditor send our VAPT report to CERT-In?
If the auditor is CERT-In empanelled, yes. Clause 3.2.2 of the Terms and Conditions for Empanelment (v7.2, April 2024) makes it mandatory to share the audit report and audit metadata with CERT-In within five days of completion of the audit, and separately to report critical vulnerabilities, with auditee details, that were identified during the audit but not fixed even during follow-up audits. §10.6 of the 2025 audit policy guidelines repeats the five-day duty and states that the audit data submitted will be kept confidential. §13.2.1(iii) requires the auditor to inform the auditee of this requirement before the assignment begins. Clause 3.1.7 of the empanelment terms also provides that empanelled organisations shall provide audit reports and data to CERT-In without the explicit permission of the auditee. Because §13.2.1(iii) puts the disclosure before the assignment rather than in the report, it is a duty many auditees first meet when they read the empanelment terms — and it changes the stakes of leaving a critical open.
Is a VAPT report the same as a safe-to-host certificate?
No. The report is the evidence, and the certificate is the conclusion. A safe-to-host certificate — the audit clearance certificate required by GIGW guideline 5.3.1 before an Indian government website, web application, portal or mobile app is hosted in a production environment — names an application, a version or build, an environment and a date, and states that the audit concluded satisfactorily. The report contains the scope, the method, the findings, the evidence, the limitations and the closure record. If you are given only a certificate you have been handed the last page of an argument. §9.5(i) requires hash values, versions and timestamps to appear prominently in both, which is the field that lets you check that the two documents describe the same thing.
Can we share our VAPT report with a customer?
The report is yours and the decision is yours, but handle the distribution deliberately. A scoped extract usually answers a customer’s questions without circulating finding detail: the cover page, the scope and asset list, the environment statement, the methodology, the severity summary, the closure timelines, the limitations and the retest confirmation, with findings and evidence redacted. It is worth knowing what binds your auditor here, because it explains how reports are delivered: §16.5 requires official email IDs, delivery to the specified point of contact, password protection or encryption and end-to-end confidential channels. §13.2.5 requires a distribution list to be obtained first, and CERT-In’s Policy Guidelines for Handling Audit related Data (v1.0, June 2014) state at §5.3.3 that the audit report should not be shared or hosted on online internet file services, online sharing platforms or cloud services unless under the auditing organisation’s technical and administrative control or specifically authorised by the auditee.
How long is a VAPT report valid?
A report is not an instrument with a validity period — it is a record of what was found in a named environment, at a named build, over a named window, and §10.1(i) puts the limit plainly: the auditor’s responsibility is limited to reviewing and reporting on the state of security at the point in time of the audit. Two related rules are often confused with report validity and should be kept apart. The first is audit cadence: §13.1.2(i) states that the cyber security audit should be conducted at least once in a year, describes that as a minimum, and §13.1.2(iii) and (iv) require an audit after every major change — classified by risk, as high-risk and impactful to security, and required before implementation rather than after. The second is certificate validity, which is a statement the issuing body makes on the certificate itself and varies between issuers. Neither is a rule about how long a report stays true.
Does a clean VAPT report mean we are secure?
No, and the guidelines say so in two places. §10.1(i) limits the auditor’s responsibility to reviewing and reporting on the state of security at the point in time of the audit, and §9.1(ii) states that the responsibility for maintaining an efficient and robust cyber security posture ultimately rests with the auditee organisation, not the auditor. A report covers named assets, in a named environment, over a named window, using a named method with declared sampling. Everything outside those boundaries is unaddressed — which is exactly why the scope, the limitations and the unknowns are the parts worth reading hardest, and why Annexure I item 20 of the empanelment terms expects reports to include all unknowns clearly marked as unknowns.
Who signs a VAPT report?
Three people, in a defined order, where the auditing organisation is CERT-In empanelled. §9.5(iii), repeated verbatim at §10.3(ix) and §16.1(vi), requires the report to be signed by the auditors who conducted the audit, then reviewed and signed by a designated reviewer who is not part of the audit team and is from mid-management, then authorised and signed by the head of the auditing organisation — a director, partner or chief executive. The audit certificate, where one is issued, must be signed by both the lead auditor of the empanelled auditing organisation and the head of that same organisation. The same clause chain requires reports to be signed only by manpower declared to CERT-In in the organisation’s snapshot information, and §12.2(iii) adds that auditing organisations should not field freelancers, interns, freshers, moonlighters, third-party consultants or employees serving their notice period — and that the auditee should verify compliance.
Is the OWASP Top 10 an acceptable methodology for a VAPT?
Not on its own, and CERT-In says so directly. §8(ii) of the Comprehensive Cyber Security Audit Policy Guidelines states that “The limited lists such as OWASP Top 10, SANS Top 25 and similar, should not be considered as standards or references for audits.” The same clause names what does serve: ISO/IEC standards, the Cyber Security Audit Baseline Requirements, the CSA Cloud Controls Matrix for cloud security, OSSTMM3, the OWASP Web Security Testing Guide, the OWASP Application Security Verification Standard, the OWASP Mobile Security Testing Guide and the OWASP DevSecOps Maturity Model. The Top 10 is an awareness document about categories of risk, the Web Security Testing Guide is a testing methodology, and ASVS is a set of verifiable requirements arranged in three levels. Name the ASVS version as well as the level, because the levels were reorganised at the last major release: in the current stable version, ASVS 5.0.0, Level 1 is the minimum set — around twenty per cent of the requirements — and the standard states that it is not necessarily penetration testable by an external tester without internal access to documentation or code. Level 2 is the level most applications should be striving to achieve. Level 3 is for applications demonstrating the highest level of security.

Written By Expert Auditors

Surendra Pal SinghChief Information Security Officer & Data Protection OfficerCISODPOCISAMCSEITILISO 27001 Lead AuditorISO 27701 Lead AuditorISO 42001 Lead Auditor
Saundhi ChauhanLead AuditorISO 27001 Lead AuditorISO 27701 Lead AuditorISO 42001 Lead Auditor
Last reviewed: September 2026 • Content verified by certified lead auditors

Get in touch

Book a free consultation or send us your requirements. We respond within 24 hours.

Send us your requirement.

01Your details
02What is it about?
VAPT
03Send
Asking about: VAPT