Datasheet

Vulnerability Finding Lifecycle

3 min read

Get the document

Tell us where to send it. The PDF lands in your inbox in under a minute.

About

About this datasheet

Drive every vulnerability from discovery to verified closure: governed, deduplicated, and auditable at enterprise scale.

A finding in PMAP is a single vulnerability observed on a single asset, whether it arrived from a scanner or was authored by a pentester. The finding domain owns its entire life: creation, deduplication, triage, assignment, the status state machine, SLA, re-testing, evidence, ticketing, and reporting export.

PMAP makes the lifecycle explicit and enforced. Status changes obey a state machine rather than analyst convention. Severity carries both the scanner value and the effective value so nothing is silently overwritten. Duplicates are rejected at the door. Risk-acceptance passes through a second reviewer. Every transition is recorded.

Evidence travels with the finding: structured steps plus live vendor artefacts.
Evidence travels with the finding: structured steps plus live vendor artefacts.

The design problem at enterprise scale is not storing findings. It is governing hundreds of thousands of them without the process degrading into a spreadsheet of free text.

At a glance

  • Backend domain: internal/finding (Go modular monolith, ~50 REST endpoints)
  • Status model: Nine-state machine, three terminal states, audit-logged transitions
  • Deduplication: Fingerprint-based, scoped per company, force override on create
  • Severity: Effective severity tracked separately from preserved original_severity
  • Approval gate: Four-eyes review on accepted_risk, false_positive, and closed
  • Evidence: Structured steps plus live SAST/SCA/DAST vendor artefacts
  • Multi-tenancy: ScopeFilter on every list, export, and facet path

How it works

One finding model, one enforced lifecycle. Scanner-imported and analyst-authored vulnerabilities triage, govern, and close exactly the same way, with every transition recorded.

Deduplication is the first line of defence against volume; evidence and a second reviewer are the discipline on the way out. A recurring vulnerability becomes one governed finding, and a closure is backed by proof and a four-eyes decision.

Every active finding carries a severity-based SLA deadline, governed taxonomy, and polymorphic ownership, all inside a tenant boundary that is enforced in code rather than left to convention.

Key capabilities

  • Severity governance. original_severity preserves the scanner value; the effective severity may be raised or lowered by a rule or analyst, with a rule_override_message explaining any change.
  • Taxonomy enrichment. Canonical effects, root_causes, and remediation_techniques arrays, plus cve_ids, cvss, and mitre_technique_ids, backfilled by VulnDB Smart Match.
  • Multi-assignee and attribution. Ownership and discovery are polymorphic across users and teams; legacy single fields stay populated for back-compatibility.
  • Wave visibility. reopen_count, seen_in_scans_count, and last_wave_at travel with each finding so persistence is visible at a glance.

Use cases

  • Triage a scanner import. A vulnerability manager imports a weekly scan. Correlation deduplicates recurrences, new items land in open, and the analyst bulk-assigns by owner and bulk-sets status, clearing thousands of rows in minutes.
  • Author and prove a finding. A pentester records structured steps to reproduce, tools, accounts, and exploit status, attributes discovery to their team, and links a VulnDB template that backfills CWE, MITRE, and taxonomy.
  • Verify and close with proof. A remediation owner reports a fix. The analyst runs a re-test producing a timestamped FindingRetest record; a pass closes the finding, a failure reopens it and bumps the reopen count.

One enforced lifecycle from discovery to verified, audited closure.

See it live

Ready to see PMAP in action?

Talk to our team or jump straight into a guided tour of the platform.

We use your email only to set up your guided tour. No marketing drip, no third-party tracking.