Property PrismDev Hub

Vulnerability Management

How vulnerabilities are detected, triaged, patched, and tracked for Project Prism.

Updated Apr 3, 2026

Owner: Backend Lead Last Edited: April 2, 2026 Last Reviewed: April 2, 2026


1. Intake Sources

SourceWhat it coversWho reviews
GitHub Dependabot alertsVulnerable Go modules and npm packagesBackend Lead (weekly)
GitHub dependency reviewNew vulnerable deps introduced in PRsEnforced in CI — blocks merge on high/critical
GitHub CodeQLSAST — code-level vulnerabilities in Go and TypeScriptBackend Lead (weekly, or on PR alerts)
GitHub secret scanningAccidentally committed secretsImmediate — push protection blocks at commit time
Manual security reviewArchitecture, auth model, new feature riskPer major feature or quarterly
External reportReported by user, partner, or researcherIncident response (see docs/security/incident-response.md)

Automated scanning is configured in .github/workflows/codeql.yml, .github/workflows/dependency-review.yml, and .github/dependabot.yml.


2. Severity Definitions

Use GitHub's CVE CVSS score as the baseline for dep vulnerabilities. For code findings, use the CodeQL severity label.

SeverityCVSS rangeDescription
Critical9.0–10.0Remotely exploitable with no authentication; direct data exposure or RCE
High7.0–8.9Exploitable with limited preconditions; significant impact
Medium4.0–6.9Requires specific conditions; moderate impact
Low0.1–3.9Limited exploitability or impact

3. Patch SLAs

SeveritySLA from detection
Critical24 hours
High7 days
Medium30 days
LowNext scheduled sprint

SLAs apply to production-reachable vulnerabilities. If a vulnerable code path is confirmed unreachable in production (e.g. a dep used only in tests), the SLA applies to the next tier down.


4. Triage Process

When a Dependabot alert or CodeQL finding appears:

  1. Read the advisory. Understand what the vulnerability is and what conditions trigger it.
  2. Assess reachability. Is the vulnerable code path actually called in production? Is the vulnerable version actually in use?
  3. Assign severity using the table above or the advisory CVSS score.
  4. Check for a fix. Is a patched version of the dep available?
  5. Act per SLA. Open a fix PR, or document an exception with justification if no patch exists.
  6. Log it in the vulnerability log below.

5. Exception Process

If a vulnerability cannot be patched within the SLA (no fix available, breaking change):

  1. Document the exception: vulnerability ID, reason for exception, compensating controls, expected resolution date.
  2. Get sign-off from Backend Lead.
  3. Re-review at the next sprint to check for an available fix.

Store exceptions in docs/audit/vuln-exceptions/.


6. Vulnerability Log

Track all confirmed findings and their resolution here.

Date foundSourceCVE / Finding IDSeverityAffected dep/fileStatusResolved dateNotes

7. Security Review Schedule

ActivityFrequencyOwner
Dependabot alert reviewWeeklyBackend Lead
CodeQL finding reviewWeekly (or on alert)Backend Lead
Access reviewMonthlyAdmin
Manual code security reviewPer major featureBackend Lead
External penetration testAnnually (target)Backend Lead — deferred until SOC 2 prep or first enterprise customer requires it

  • .github/dependabot.yml — automated dep update config
  • .github/workflows/codeql.yml — SAST scanning
  • .github/workflows/dependency-review.yml — PR dep review enforcement
  • docs/security/incident-response.md — for critical/actively exploited vulns
  • docs/security/secrets-management.md — for secret exposure findings