Vulnerability finding intake
a structured front door, not a shared inbox
Internal security, AppSec, and vulnerability management teams take findings from many sources: external scans, authenticated DAST, code scanning, manual pentest entry, third-party reports, bug bounty submissions, security advisories, and ad-hoc developer escalations. Most programmes accept all of it through a shared inbox, a triage spreadsheet, and three Slack channels. Findings land with inconsistent severities, ambiguous asset bindings, and no owner of record; the first triage cycle re-keys what the source already said; duplicates compound. Run vulnerability finding intake as a structured workflow on the workspace so every inbound finding lands with normalised metadata, a named owner at the door, deduplication against the existing catalogue, and an activity log entry that survives into remediation, retest, and audit.
No credit card required. Free plan available forever.
Make the front door of vulnerability management a structured workflow
Internal security, AppSec, and vulnerability management teams take findings from at least eight recurring sources during a typical operating week: continuous external scans on a verified domain estate, authenticated DAST against the application surface, SAST and SCA on connected repositories, bulk imports of legacy scanner output or prior pentest reports, manual entries from in-flight pentest or red team work, third-party penetration test reports from external vendors, vulnerability disclosure programme submissions, and ad-hoc escalations from developers or operators outside the security team. Most programmes accept all of it through a shared inbox, a triage spreadsheet, and three Slack channels. The downstream queue inherits the mess: severities are inconsistent, asset bindings are ambiguous, owners of record are unset, duplicates compound, and the first triage cycle re-keys what the source already said. The intake workflow fixes the upstream by making every inbound finding land with normalised severity, a named asset, a named owner of record, a dedup check, an exception register check, and an activity log entry that survives into remediation, retest, and audit.
The workflow composes with the rest of the vulnerability management operating model. The downstream scanner result triage workflow validates and calibrates what the intake delivered. The vulnerability prioritisation workflow reads the normalised intake queue to decide what gets worked first. The backlog management workflow reads the intake rate against remediation capacity to keep the long tail bounded. The exception management workflow is the register the intake checks against so accepted risks do not re-litigate. The intake workflow sits upstream of all of these as the discipline that decides what enters the queue and on what terms.
Eight intake sources every internal programme has to accept on documented terms
Most enterprise vulnerability programmes accept findings from the same recurring set of sources. Each source has its own capture cadence, its own native metadata, and its own intake treatment. The register makes the sources explicit so the intake check verifies the finding came from an accepted source rather than from a freeform channel the operating record does not know about.
| Intake source | What the source captures | How the workflow handles it |
|---|---|---|
| External vulnerability scanning | Findings produced by the external scanning surface across the 16 modules (TLS configuration, security headers, exposed ports, technology fingerprinting, subdomain enumeration, DNS misconfiguration, mail authentication, and the rest). Scheduled scans land continuously (daily, weekly, biweekly, monthly); ad-hoc scans land on operator demand. | Findings auto-populate against the verified domain and the engagement record with the scan ID, the module that produced the finding, the source severity, the auto-calculated CVSS 3.1 vector where applicable, and the evidence body. Dedup runs against the open queue for the same target and the same finding template. Repeat findings inherit the existing record rather than reopening a parallel one. The named asset owner on the workspace inherits the routing. |
| Authenticated DAST | Findings produced by authenticated dynamic application security testing where the scanner runs behind a cookie, bearer token, basic auth, or form login. The encrypted credential vault holds the authentication material; the scanner mounts the credentials for the scoped target and exercises the application surface under the authenticated context. | Findings land against the authenticated engagement record with the scan target, the authentication method, the scan ID, the source severity, the CVSS 3.1 vector, and the evidence (request, response, observed behaviour). The intake check verifies that the scan target was reachable under authentication (the scan guard codes flag DOMAIN_NOT_VERIFIED, CREDENTIAL_DOMAIN_MISMATCH, or AUTH_NOT_ALLOWED at the boundary) so the queue does not absorb findings from a scan that quietly fell back to unauthenticated coverage. |
| Code scanning (SAST and SCA) | Findings produced by Semgrep SAST runs against connected repositories and dependency analysis runs against the package manifests. Repository connections via GitHub, GitLab, or Bitbucket OAuth provide the source code access; scans run on a defined cadence or on a branch event. | Findings land against the repository, the commit SHA, the file path, the line number, the rule identifier, and the auto-calculated severity. Dedup runs against open findings for the same rule against the same file path so a long-lived issue does not reopen on every scan cycle. The asset binding pairs to the repository and to the application service that the repository builds so downstream prioritisation reads against the application criticality rather than against the repository name in isolation. |
| Bulk import from prior scanners or pentest reports | Findings imported in bulk from Nessus (.nessus), Burp Suite (.xml), or any CSV: a legacy backlog migrating from a spreadsheet, a prior pentest report from an external vendor, or a periodic dump from a tool that has no live integration. | Bulk finding import maps source columns to the workspace fields (title, description, severity, CVSS vector, asset, CWE, status) and saves the mapping as a reusable template. Imports run against the existing catalogue so duplicates flag before they land. The original source file, the source tool, the scan or report ID, and the import timestamp are logged on the engagement so the audit trail starts at the file rather than at the finding. Imported findings start as unvalidated until a triager reproduces and confirms. |
| Manual finding entry from pentest or red team work | Findings written by hand against the 300+ remediation templates during a manual penetration test, a red team operation, a code review, or a security architecture review. The tester selects the template, attaches the evidence, calibrates severity against the environment, and writes the bespoke description that the report needs. | Manual entries land against the engagement record with the chosen template, the tester-assigned severity, the calibrated CVSS vector, the attached evidence (request/response, payload, screenshot), and the named tester. The intake check verifies that the engagement scope and rules of engagement permitted the work that produced the finding so an out-of-scope writeup does not enter the queue without explicit acceptance. Manual findings inherit the same dedup and exception filter the automated sources run through. |
| Third-party penetration test report intake | Findings from a penetration test commissioned with an external firm whose report arrives as a PDF, an Excel sheet, or a structured CSV. The internal team needs to bring those findings into the operational record rather than letting them live in a folder no remediation queue reads. | The third-party penetration test report intake workflow opens an engagement for the external assessment, captures the report metadata (vendor, period, methodology, scope), and lands the findings with their tester-assigned severity, the CVSS vector where supplied, and the evidence references against the report sections. The intake records the source attribution explicitly so the audit reads that the finding came from the named external firm rather than from internal testing. |
| Vulnerability disclosure programme submissions | Findings submitted by external researchers, customers, or partners through the workspace vulnerability disclosure programme inbox. Each submission carries the reporter identity (or pseudonym), the reproduction steps, the affected target, and the requested handling treatment. | VDP submissions land against the vulnerability-disclosure-program-management engagement with the reporter reference, the submission timestamp, the suggested severity, the reproduction steps, and the requested credit handling. The intake triages duplicates against the existing catalogue and against prior disclosures for the same researcher. Accepted submissions promote to the open queue with the named owner and the agreed disclosure clock; rejected submissions close with the documented reason that the reporter response cites. |
| Developer escalation and ad-hoc internal report | Findings raised by an engineer, a product manager, a customer success agent, or an operator outside the security team who noticed a security-relevant issue and escalated it. The escalation often arrives as a short Slack message, a Jira comment, or a customer ticket forwarded to security. | The escalation lands as a manual entry against the relevant engagement (or against a standing security-advisory-request workflow) with the named reporter, the affected asset where derivable, the description, and the suggested severity. The intake check verifies the report is a security issue rather than a feature request and that the asset binding is correct before the finding opens on the queue. The reporter receives an acknowledgement notification with the assigned reference so the chain of communication has a structured starting point. |
Six failure modes that quietly break vulnerability intake
Most intake failures look like sensible defaults: take findings from anywhere, sort them out at triage, deduplicate when somebody notices. The cost arrives weeks later as a queue the team cannot prioritise, a retest schedule that carries ghost work, and an audit that cannot reconstruct the chronology from intake to closure.
Findings land with inconsistent severity and no normalisation discipline
The Nessus result lands as High because Nessus said so; the Burp finding lands as Medium because the tester said so; the developer escalation lands without a severity at all because nobody asked. Three weeks later the triage queue cannot be sorted by risk because the severity column is a mix of incompatible scales. The fix is normalising severity at intake against the workspace severity policy: source severity is recorded, CVSS 3.1 is auto-calculated from the vector string, and any override carries the named reason so the next reader reads the calibration rather than re-deriving it.
Asset binding is missing or wrong and the owner of record is ambiguous
A finding lands against a vague target ("the marketing site") with no IP, no hostname, and no repository reference. The triager spends thirty minutes hunting down the asset; the named owner is never set; the finding stalls for two cycles because nobody is on the hook. The fix is requiring the asset binding and the named owner of record at intake before the finding opens on the queue, with RBAC routing rules that read the asset tier and the source to push the new record to the right named person rather than to the room.
Duplicates accumulate because intake does not deduplicate against the catalogue
The same vulnerability lands once from an external scan, once from an authenticated scan a week later, and once again from a manual writeup during a pentest. The queue carries three records for one issue; the retest is scheduled three times; the close-out evidence has to be cross-referenced before anyone can mark anything closed. The fix is deduplicating at the door: bulk import flags duplicates before findings land, manual entries check open findings for the same asset and CWE before opening a new record, and the activity log captures the merge decision so the audit chronology reads as one finding rather than three parallel ones.
Active exceptions are re-litigated because intake does not check the register
A finding the programme accepted as a risk last quarter with a documented expiry lands again from the next scan cycle, opens on the queue as a new record, and the team re-debates whether to accept it. The exception register is invisible to the intake path. The fix is checking the workspace exception register at intake so findings that match an active acceptance, deferral, or false-positive suppression inherit the existing record and the existing expiry rather than producing a new ticket the team has to dismiss.
Manual entries enter without scope verification and the queue absorbs out-of-scope work
A tester finds an issue while exploring beyond the engagement scope, writes it up, and lands it on the queue without an explicit acceptance decision. The engagement scope and the rules of engagement get questioned later; the finding sits in an awkward state because nobody agreed to receive it. The fix is the intake check that verifies the engagement scope and ROE permitted the work that produced the finding, and the explicit decision path for out-of-scope discoveries (accept as a new engagement, defer, or close with rationale) so the queue does not absorb undirected work silently.
Activity log starts at first remediation note rather than at intake
The first event captured on the finding is when a remediation owner left a comment three days after intake. The chain of custody from scan to finding to owner is missing; the auditor reads the finding without knowing how it got onto the queue, who decided the severity, or which scan ID it came from. The fix is stamping the activity log at intake with the source, the actor, the source severity, the normalised severity, the asset binding, the dedup decision, and any exception match, so the chronology is continuous from the first record through remediation and retest.
Six fields every intake record has to capture
A defensible intake is six concrete fields on the finding record, not a free-text title and a vague severity. The fields make the next triage cycle, the next remediation owner, the next retest, and the next audit reconstructable from the record rather than from email.
Source attribution and capture metadata
The named source (external scan module, authenticated scan, code scan rule, bulk import file, manual entry from named engagement, third-party report from named vendor, VDP submission, internal escalation), the capture timestamp, the source identifier (scan ID, repository and commit SHA, import file name, report reference, submission ID), and the source severity as recorded before any normalisation. The source attribution survives into remediation and audit so the chain of custody is reconstructable rather than reconstructed from email.
Asset binding and ownership
The engagement reference, the target asset (hostname, IP, repository, application service, mobile app, API endpoint), and the named owner of record under the workspace RBAC. The owner of record is the person on the hook for the finding through remediation; the engagement reference is the planning context the finding sits inside. Both are captured at intake so the finding does not stall waiting for a routing decision.
Severity normalisation against the workspace policy
The source severity (vendor-rated, CVSS base, tester-assigned, qualitative, or absent), the normalised severity that the workspace operates against, the CVSS 3.1 vector and base score auto-calculated where the source provides a vector, and the named reason for any override of the auto-calculated severity. The normalisation policy is a workspace decision; the override reason makes the decision auditable.
Evidence body and provenance
The evidence the next reader needs to triage and remediate: the scanner request and response or module output, the code snippet and rule identifier for SAST findings, the package and version for SCA findings, the manual writeup and screenshot for tester-entered findings, the external report excerpt for third-party intake, and the disclosure submission body for VDP intake. Document management holds the original artefacts as versioned attachments cited by the finding rather than re-authored on the record.
Dedup decision and exception match
The result of the dedup check against the open catalogue (new record, merged into existing finding ID, suppressed against an active workspace suppression), the result of the exception match against the workspace register (no match, matches accepted risk reference, matches deferral reference, matches false-positive suppression), and the named actor and timestamp for each decision. The intake decisions are queryable so the next operator does not re-litigate them.
Routing and notification
The named recipient on the workspace who receives the intake notification (the owner of record, the engagement lead, the secondary on-call where the asset tier requires it), the notification channel (in-product, email, both), and the acknowledgement timestamp. The routing is part of the finding record rather than a separate Slack message so a missed notification surfaces on the queue rather than in nobody-noticed inbox limbo.
Eight queues the intake workflow runs in parallel during the operating week
Live intake runs eight queues concurrently. Each queue has a named owner, a documented cadence, and an escalation rule so routing, severity overrides, dedup decisions, and exception matches do not silently fall behind between morning standups.
- New intake queue with each finding captured in the last twenty-four hours, the source, the normalised severity, the asset binding, and the named owner of record. The view the on-call security operator reads against the morning standup.
- Unbound intake queue with each finding awaiting an asset binding or an owner-of-record assignment. The view the intake operator reads to close out routing within the documented acknowledgement window.
- Severity-override queue with each intake where the calibrated severity differs from the source severity by more than one band, the named reason, and the approver. The view the security operations leader reads to confirm the workspace policy is being applied consistently.
- Dedup-decision queue with each intake where the dedup check flagged a likely existing record, the candidate match, and the named resolver. The view that prevents the catalogue from drifting into parallel records for the same issue.
- Exception-match queue with each intake that matches an active acceptance, deferral, or suppression, the existing reference, and the inherited expiry. The view that confirms re-litigation is not happening silently.
- Out-of-scope manual entry queue with each manual finding that landed outside the engagement scope or ROE, the named decision owner, and the acceptance or rejection rationale. The view that keeps scope-creep auditable.
- Acknowledgement-pending queue with each intake whose named owner has not acknowledged within the documented window, the elapsed time, and the escalation path. The view that catches dropped routing before the finding ages on the queue.
- Intake-source health queue with each source against its expected capture cadence and a flag where a source has gone quiet beyond the documented tolerance. The view that catches a scanner that stopped running or an import pipeline that broke before the silence becomes a coverage gap.
How vulnerability finding intake runs in SecPortal
The intake workflow rides on the feature surfaces the security programme already uses. Each source pushes findings against the engagement record, findings management normalises the severity and binds the asset, team management routes the owner of record under RBAC, the activity log captures every intake decision, and notifications push the new record to the named recipient. No bespoke integration is required for the workflow itself; the platform capabilities below are enough.
Findings management as the queue
Findings management is the canonical record every intake source lands against, with auto-calculated CVSS 3.1, the workspace severity policy, the 300+ remediation templates for manual entry, and the activity log of every change.
Bulk import for backlogs and reports
Bulk finding import maps Nessus, Burp Suite, and CSV exports onto the engagement with column-mapping templates, dedup against the catalogue, and the source provenance stamped on the activity log.
Continuous scan output
External scanning and authenticated scanning push findings against verified targets on the scheduled cadence with the scan ID, module, and evidence body attached to the intake record.
Code scanning for SAST and SCA
Code scanning via Semgrep produces SAST and SCA findings against connected repositories with the repository, commit SHA, file path, and rule identifier on every intake.
RBAC for owner-of-record routing
Team management role-based access control assigns the named owner of record at intake and grants the access scope the owner needs to triage and remediate the finding.
Document management for source files
Document management holds the source scan exports, the third-party report PDFs, the disclosure submission bodies, and the evidence attachments as versioned artefacts the finding cites rather than duplicating.
Notifications to the owner of record
Notifications and alerts push the new intake record to the named owner of record on the workspace so the routing decision lands in front of the right person rather than in nobody-noticed inbox limbo.
Activity log for the chain of custody
Activity log with CSV export captures the source, the actor, the source severity, the normalised severity, the dedup decision, and the exception match at intake so the audit reads the chronology rather than reconstructing it.
Compliance tracking on intake
Compliance tracking maps each intake to ISO 27001 Annex A 8.8, SOC 2 CC4.1 and CC7.1, PCI DSS 6.3.1 and 11.3, NIST 800-53 RA-5, and the CIS Controls v8.1 control 7 so the audit chain reads continuous from intake through closure.
Audit frameworks that read against the intake workflow
Most enterprise audit and certification cycles ask for evidence that the vulnerability management programme captures every detected vulnerability with traceable provenance, normalised severity, named ownership, and a documented response cadence. The intake workflow produces the evidence those audits read against.
ISO 27001:2022
Annex A 8.8 (management of technical vulnerabilities) reads against the intake workflow as the discipline that captures every vulnerability finding the programme is aware of, normalises it against a defined severity policy, binds it to an asset, and routes it to a named owner with a documented timeline. The structured intake register, the source attribution, the normalisation reason, the dedup decision, and the activity log of every state transition are the ISO 27001 evidence chain for technical vulnerability management. Clause 9 (performance evaluation) reads against the intake-source health view to confirm scanner coverage and import cadences are operating as planned.
SOC 2 Trust Services Criteria
CC4.1 (monitoring activities) and CC7.1 (system operations and monitoring) read against the workflow as the discipline that channels detected vulnerabilities into a tracked register with the named owner and the documented response cadence. CC8.1 (change management) reads against the intake from code scanning so vulnerabilities discovered in a build land on the engagement record rather than in a Slack channel. CC9.1 (risk mitigation) reads against the exception match decision so accepted risks have a documented acceptance and an expiry.
PCI DSS v4.0
Requirement 6.3.1 (security vulnerabilities are identified and managed) and Requirement 11.3 (vulnerabilities are identified and addressed) read against the intake workflow as the gateway that captures, normalises, deduplicates, and routes vulnerabilities from internal and external scans, manual testing, and third-party reports. Requirement 12 (information security policy) reads against the documented intake policy that defines accepted sources, severity normalisation rules, and the routing matrix.
NIST SP 800-53 Rev. 5
RA-5 (vulnerability monitoring and scanning) reads against the intake from external, authenticated, and code scanning as the consolidated record of detected vulnerabilities. SI-2 (flaw remediation) reads against the routing and named owner discipline that converts intake into remediation work. PM-9 (risk management strategy) and PM-15 (security and privacy groups and associations) read against the intake from VDP submissions and external advisories so external signals do not bypass the operating record.
NIST SP 800-115
The technical guide to information security testing and assessment reads against the intake workflow as the operational discipline that turns testing output (active scans, passive scans, target identification and analysis, target vulnerability validation) into a tracked register with traceable provenance. The intake-source register, the bulk-import provenance, and the manual-entry scope check support the assessment lifecycle the guide describes.
CIS Controls v8.1
Control 7 (continuous vulnerability management) reads against the intake workflow as the operational discipline that delivers a continuous, complete, and prioritised view of vulnerabilities across the estate. Control 16 (application software security) reads against the intake from SAST/SCA code scanning and manual application reviews. Control 17 (incident response management) reads against the VDP intake as the structured channel that turns external reports into tracked work.
Where the intake workflow fits in the wider operating model
Intake is upstream of every downstream vulnerability management discipline. The references below trace how the structured intake record carries into the rest of the programme. Each adjacent workflow reads against the same finding record rather than rebuilding a parallel register.
Scanner result triage
The scanner result triage workflow validates the intake, reproduces evidence, calibrates severity for the environment, and promotes confirmed findings into the report and the remediation queue.
Asset criticality scoring
The asset criticality scoring workflow provides the asset tier the intake binds against so the routing rule at intake reads the criticality multiplier rather than treating every asset as equal.
Asset ownership mapping
The asset ownership mapping workflow provides the named owner of record the intake routing rule reads, so a finding does not stall waiting for the owner-discovery process the morning standup runs by hand.
Dependency vulnerability triage
The dependency vulnerability triage workflow is the SCA-specific downstream of intake from code scanning, with reachability assessment and the upgrade-path decision applied to the open queue the intake delivered.
Third-party report intake
The third-party penetration test report intake workflow is the engagement-scaffolded path for external vendor reports landing on the operating record with explicit source attribution.
Backlog management
The backlog management workflow reads the intake rate against remediation capacity so the leading indicator surfaces before the queue silently overruns.
Exception management
The acceptance and exception management workflow is the register the intake checks against so previously accepted risks do not produce new tickets the team has to dismiss.
Prioritisation
The prioritisation workflow reads the normalised intake queue with the asset criticality multiplier to decide what the team works first rather than letting source order drive the schedule.
Scanner to ticket handoff
The scanner to ticket handoff governance workflow is the downstream discipline that keeps the security finding canonical while engineering teams work the engineering ticket without the records drifting apart.
Fix verification at closure
The security finding fix verification workflow is the closing discipline that runs against the same finding record at the end of the cycle, so the intake provenance, the variant register, and the proof-of-fix evidence travel together on one continuous record.
State lifecycle
The vulnerability finding state lifecycle workflow is the spine the intake record rides for the rest of its life: open through in_progress, resolved, verified, occasionally reopened, eventually closed, or dismissed as false positive with documented rationale.
Buyer audiences for the intake workflow
The intake workflow serves the operators and leaders responsible for the upstream discipline that decides what enters the vulnerability management queue and on what terms. Each audience reads the workflow with a slightly different lens.
Internal security teams
Internal security teams running the in-house vulnerability programme read intake as the front-door discipline that keeps the queue defensible across many concurrent sources.
AppSec teams
AppSec teams read intake as the channel that pulls SAST, SCA, authenticated DAST, manual review findings, and developer escalations into a single application-anchored record.
Vulnerability management teams
Vulnerability management teams read intake as the upstream of the queue they triage, prioritise, and burn down across the operating week.
Security operations leaders
Security operations leaders read intake as the operating discipline that determines whether the morning standup is staffed against a queryable queue or a shared inbox.
GRC and compliance teams
GRC and compliance teams read intake as the upstream evidence chain ISO 27001, SOC 2, PCI DSS, and NIST audits cite for technical vulnerability management.
CISOs and security leaders
CISOs read intake as the leading indicator of whether the vulnerability programme is operating against a documented policy or absorbing whatever lands in a shared inbox.
Frequently asked questions
What is vulnerability finding intake?
Vulnerability finding intake is the structured workflow that captures every inbound vulnerability finding (from external scans, authenticated scans, code scans, manual pentest entries, bulk imports, third-party reports, vulnerability disclosure submissions, and internal escalations) and lands it on the operating record with normalised severity, an asset binding, a named owner of record, a dedup check against the existing catalogue, an exception register check, and an activity log entry. The intake workflow is the front door of vulnerability management; without it, findings arrive as a mix of inconsistent records that the first triage cycle has to re-key.
How is this different from scanner result triage?
Scanner result triage is the downstream discipline that takes raw scanner output, validates each finding (true positive, false positive, accepted), calibrates severity against the environment, deduplicates across tools, and promotes confirmed findings into the report. Intake is the upstream discipline that captures findings from many sources (not only scanners) with normalised metadata, named owners, and dedup at the door before the triage queue grows. Run them together: intake decides what enters the queue and on what terms; triage decides what stays on the queue and at what severity.
How is this different from bulk finding import?
Bulk finding import is the mechanical pipeline that maps source columns to workspace fields and lands a backlog of findings from Nessus, Burp Suite, prior pentest reports, or CSVs onto an engagement record. Intake is the broader workflow that covers bulk import as one of many sources, alongside live scan output, manual entries, third-party reports, VDP submissions, and internal escalations. Bulk import is a tool inside the intake workflow; intake is the discipline that decides how each source lands, with what metadata, and routed to whom.
How does the workflow handle deduplication at intake?
Every inbound finding checks against the open catalogue for the same asset, the same finding template, and the same CWE before it lands as a new record. Bulk finding import flags duplicates against the existing engagement and the workspace history. Live scanner output dedups against open findings for the same target and module. Manual entries trigger a check against open findings for the same asset and CWE before opening a new record. The dedup decision (new record, merged into an existing finding, suppressed against an active workspace suppression) is captured on the activity log with the actor and the timestamp so the audit chronology reads as one finding rather than three parallel ones.
How does the workflow handle severity normalisation?
Findings from different sources arrive with different severity languages: scanners provide vendor-rated or CVSS-based severities, pentest reports carry tester-assigned severities, bug bounty submissions carry payout-band severities, and developer escalations often carry no severity at all. Findings management auto-calculates the CVSS 3.1 base score from the vector string at creation; the workspace severity policy decides how non-CVSS inputs translate to the four-band workspace severity (critical, high, medium, low). The source severity is recorded alongside the normalised severity, and any override of the auto-calculated severity carries a named reason on the record so the next reader reads the calibration rather than re-deriving it.
How does the workflow handle exceptions and accepted risks at intake?
Each new finding checks against the workspace exception register (accepted risks with active expiries, deferrals against scheduled remediation windows, workspace-wide false-positive suppressions for known scanner patterns) before it lands on the open queue. A finding that matches an active exception inherits the existing reference and the existing expiry rather than opening as a new record the team has to dismiss. The exception match is recorded on the activity log so the audit reads that the programme already decided this case rather than re-litigating it. Findings that do not match any active exception land on the open queue with the named owner.
How does the workflow handle manual entries that land outside the engagement scope?
Manual entries against the 300+ remediation templates pass an intake check that verifies the engagement scope and the rules of engagement permitted the work that produced the finding. Findings that fall within scope land on the queue normally. Findings that fall outside the documented scope land in an out-of-scope queue with a named decision owner who chooses one of the explicit paths: accept the finding by opening a new engagement that covers the out-of-scope work, defer the finding with a documented rationale, or close the finding with the named reason. The audit reads the explicit decision rather than discovering that the queue silently absorbed undirected work.
How does the workflow handle third-party penetration test reports?
The third-party penetration test report intake workflow opens an engagement against the external assessment with the vendor, the period, the methodology, and the scope captured on the engagement record. Findings from the report land with the tester-assigned severity, the CVSS vector where the report provided one, the evidence references against the report sections, and the explicit source attribution that the named external firm produced the finding. The third-party findings inherit the same dedup, exception filter, and ownership routing the internal sources run through so the report does not live in a separate folder no remediation queue reads.
How does the workflow handle vulnerability disclosure programme submissions?
VDP submissions land against the vulnerability-disclosure-program-management engagement with the reporter reference, the submission timestamp, the suggested severity, the reproduction steps, and the requested credit handling. The intake triages duplicates against the existing catalogue and against prior submissions for the same researcher. Accepted submissions promote to the open queue with the named owner and the agreed disclosure clock that the disclosure policy defines. Rejected submissions close with a documented reason that the reporter response cites. The submission and the response chain live on the engagement so the disclosure relationship has an auditable history.
Does the workflow require integrations with ticketing systems or SIEM platforms?
No. The intake workflow operates on the workspace record itself. Findings land on the engagement, the activity log captures the chronology, notifications and alerts surface the new records to the named owner of record, and the audit trail lives on the platform. Teams that route findings to engineering ticketing or to a SIEM run those handoffs as separate disciplines downstream of intake; SecPortal does not ship native Jira, ServiceNow, or SIEM integrations, and the workflow does not depend on them.
How it works in SecPortal
A streamlined workflow from start to finish.
Declare every intake source and its accepted format
A defensible intake workflow starts with a register of accepted sources: external scanning across the 16 modules, authenticated DAST with cookie or bearer or basic or form authentication, code scanning via Semgrep with GitHub or GitLab or Bitbucket repository connections, bulk import of Nessus and Burp Suite and prior pentest CSVs, manual entry against the 300+ remediation templates, third-party penetration test report intake, the vulnerability disclosure programme inbox, and developer-side escalations. Each source declares its required fields and its capture cadence. Sources outside the register do not land on the queue without an explicit acceptance decision.
Normalise severity at intake against a single workspace policy
Different sources speak different severity languages. Scanners output their own severity flag (CVSS base, vendor-rated, qualitative); pentest reports carry a tester-assigned severity; bug bounty submissions carry the bounty payout band; developer escalations often carry no severity at all. Findings management auto-calculates CVSS 3.1 from the vector string at creation, and the workspace severity policy decides how non-CVSS inputs translate. Intake records the source severity, the normalised severity, and the named reason for any override so the next reader does not re-derive the calibration from scratch.
Bind every finding to a named asset and a named owner of record
A finding without an asset binding is a ticket waiting to be lost; a finding without an owner of record is a ticket waiting to be dropped. At intake, every finding pairs to the engagement, the target host or repository or application, and the team or named individual responsible under the workspace RBAC. The owner of record is captured on the finding itself, not in an email chain. Routing rules at intake read the asset tier and the source so security-critical findings reach the named on-call rather than the morning standup.
Deduplicate at the door, not three weeks later
The same vulnerability lands two or three times across a programme: a Nessus result, a follow-up authenticated DAST hit, and a manual pentest writeup against the same asset. Bulk finding import flags duplicates against the existing catalogue before the finding becomes a tracked record. Manual entry checks against open findings on the same asset and the same CWE before opening a new entry. Deduping at intake stops the count from drifting and stops the retest queue from carrying ghost work.
Capture evidence and provenance on the source record
Each intake source carries the evidence the next reader needs: the scan ID and module for external and authenticated scans, the repository and commit SHA for code scans, the source file and import timestamp for bulk import, the pentest engagement reference and tester for manual entry, the third-party report reference for intake from external assessments, and the disclosure submission identifier for VDP inbound. Document management holds the original artefacts as versioned attachments; the finding cites the source rather than re-authoring a summary the auditor reads against.
Apply the workspace exception filter before the queue grows
Some inbound findings are already on the exception register: an accepted risk with a defined expiry, a deferred remediation against a scheduled window, a workspace-wide false-positive suppression for a known scanner pattern. Intake checks each new finding against the exception register before it lands on the open queue so the team does not re-litigate a decision the programme already made. Findings that fall outside an existing exception land on the open queue with the named owner; findings that match an active exception inherit the existing record and the existing expiry.
Notify the named owner and stamp the activity log
When a finding lands, the notifications and alerts surface push the new record to the named owner of record, the secondary on-call where the asset tier requires it, and the engagement lead for cross-cutting issues. The activity log captures the intake source, the actor, the timestamp, the source severity, the normalised severity, the asset binding, the deduplication decision, and any exception match. The audit trail starts at intake rather than at the first remediation note so the chronology survives across remediation, retest, and audit.
Features that power this workflow
Vulnerability management software that tracks every finding
Bulk finding import bring your scanner data with you
Orchestrate every security engagement from start to finish
Vulnerability scanning tools that map your attack surface
Test web apps behind the login
Find vulnerabilities before they ship
Collaborate across your entire team
Every action recorded across the workspace
Notifications and alerts for the people who carry the work
Document management for every security engagement
Compliance tracking without a full GRC platform
Run finding intake as a structured workflow, not a shared inbox
Normalised severity, named owners at the door, deduplication at intake, and an audit trail that survives into remediation and audit. Start free.
No credit card required. Free plan available forever.