SOC2

SOC 2 Vulnerability Management: Scanning and Remediation Programs

Priya Raman found out how expensive a stale spreadsheet could be on a Tuesday afternoon in March, four weeks before her company's SOC 2 Type II fieldwork was scheduled to close.

SOC 2 Vulnerability Management: Scanning and Remediation Programs
Loading advertisement...
35

Priya Raman found out how expensive a stale spreadsheet could be on a Tuesday afternoon in March, four weeks before her company's SOC 2 Type II fieldwork was scheduled to close. Priya was VP of Security Engineering at Kestrel Health Analytics, a 210-person SaaS company that helped hospital systems reconcile claims data. Kestrel was three weeks from signing a $3.1 million, four-year contract with Alden Health System, a regional hospital network that had made a clean SOC 2 report a non-negotiable condition of the deal. Alden's procurement team had specifically flagged vulnerability management as an area their security reviewers would scrutinize line by line, because a peer hospital network had been breached the year before through an unpatched, internet-facing file transfer appliance.

The auditor's sample request looked routine: pull the vulnerability scan results from the last six months, show the remediation tickets for every critical and high finding, and demonstrate that fixes landed inside Kestrel's documented service level agreements. Priya's team ran the query and found the gap immediately. Kestrel had a scanning tool. It ran scans. But the "remediation SLA" lived in a policy document nobody had updated in fourteen months, scan results were emailed to a distribution list and then largely ignored, and one internet-facing API gateway had been carrying a critical-severity vulnerability, unpatched, for 141 days. There was no ticket, no owner, and no exception approval. It was exactly the kind of finding that turns an unqualified opinion into a qualified one — and exactly the kind of finding a hospital system's third-party risk team is trained to look for before they sign an eight-figure multi-year deal.

Priya's team fixed it. They rebuilt the program in five weeks flat, closed the finding before fieldwork, and the report shipped clean. Alden signed. But the fire drill was avoidable, and I've now watched a version of it play out at more than sixty companies over fifteen years of security consulting. Vulnerability management is one of the most commonly under-built control areas in SOC 2 programs — not because it's technically hard, but because it requires sustained operational discipline rather than a one-time project. This article is the blueprint I wish Priya's team had six months earlier.

Who This Is For and What You'll Walk Away With

This is written for security engineers, IT leaders, and compliance managers building or maturing a SOC 2 vulnerability management program — whether you're preparing for your first Type II audit or fixing recurring findings from your last one. You'll walk away with a working definition of what CC7.1 actually requires, a defensible scanning and penetration testing cadence, a CVSS-based prioritization model that auditors and engineers can both live with, remediation SLA benchmarks by severity, an exception and risk-acceptance workflow, and the exact evidence set your auditor is going to sample. Nothing here requires a specific vendor — the principles hold whether you're running an open-source scanner or an enterprise platform.

Why Vulnerability Management Is the Backbone of CC7.1

Every SOC 2 report built on the Common Criteria has to demonstrate that the organization identifies, evaluates, and remediates vulnerabilities in its environment on an ongoing basis. That's the plain-English version of CC7.1, and it's one of the criteria auditors test with the most tangible, checkable evidence — scan reports either exist or they don't, tickets either close inside SLA or they don't, exceptions either have documented approval or they don't. There's very little room for a narrative explanation to substitute for artifacts.

That's precisely why vulnerability management trips up so many otherwise mature security programs. Teams invest heavily in access control, encryption, and incident response — all necessary — and treat scanning as a checkbox tool purchase rather than an operating program with owners, SLAs, and a verification loop. An auditor doesn't care that you own a scanner license. They care whether the scanner ran on schedule, whether someone looked at the results, whether findings were triaged by severity, and whether the fixes actually happened inside a defined and consistently followed timeframe. The program is the control; the tool is just an input.

"I've sat across the table from a dozen companies that bought a six-figure vulnerability scanning platform and then couldn't produce a single closed remediation ticket tied to a scan finding. The tool wasn't the gap. The workflow around the tool was the gap." — Derek Iwu, Director of Security Assurance, Marrow Cyber Advisory

Inside CC7.1 and CC7.2: What the Criteria Actually Require

CC7.1 sits inside the System Operations component of the Common Criteria and asks the organization to identify and evaluate changes and vulnerabilities that could affect its ability to meet its security commitments — using vulnerability scanning tools, external threat intelligence sources, and defined evaluation processes. CC7.2 extends that into detection: the entity monitors system components, including the operation of controls, for anomalies indicative of malicious acts, natural disasters, and errors that could affect the organization's ability to meet its objectives, and evaluates those anomalies to determine whether they represent a security incident.

Read together, CC7.1 is the "find it" criterion and CC7.2 is closely tied to the "watch for it in real time" criterion. A vulnerability management program primarily satisfies CC7.1, but it also feeds CC7.2 — a critical vulnerability under active exploitation in the wild is exactly the kind of signal that should trigger heightened monitoring, not just a routine remediation ticket. The two criteria are meant to work as a pair: periodic and continuous vulnerability identification (CC7.1) combined with real-time anomaly detection (CC7.2) gives an auditor confidence that the organization isn't just scanning quarterly and hoping nothing bad happens between scans.

Both criteria trace back to COSO's System Operations and Monitoring Activities components, and both are required in every SOC 2 report because they're part of the Common Criteria — there's no opting out, regardless of which optional Trust Services Categories are in scope.

Table 1: CC7.1 and CC7.2 — What Each Criterion Requires and How Vulnerability Management Satisfies It

Criterion

Plain-Language Requirement

How a Vulnerability Management Program Satisfies It

Primary Evidence Type

CC7.1

Identify and evaluate vulnerabilities and changes that could affect security commitments

Scheduled vulnerability scanning, external threat intel monitoring, CVE/advisory tracking

Scan reports, scan schedule/config, threat intel feed logs

CC7.1 (extended)

Use vulnerability scanning tools appropriately configured for the environment

Authenticated and unauthenticated scans across all in-scope asset classes

Scan tool configuration, asset coverage reports

CC7.2

Monitor system components for anomalies indicating malicious activity or errors

Continuous monitoring layered on top of periodic scanning; alerting on newly disclosed critical CVEs affecting deployed software

Monitoring/alerting configuration, escalation records

CC7.2 (extended)

Evaluate detected anomalies to determine if they are security incidents

Defined triage process linking vulnerability findings to incident response when exploitation is suspected

Triage logs, incident tickets referencing vulnerability findings

Vulnerability management doesn't stand alone in the Common Criteria — it's most effective when it's visibly wired into SOC 2 Security Monitoring: SIEM and Log Management for detection context, and into SOC 2 Change Management: System and Application Updates for the actual patch deployment mechanics. Auditors increasingly ask for that thread to be visible end-to-end: a finding discovered by a scanner, evaluated for severity, ticketed, patched through a controlled change process, and verified closed.

The Prerequisite Nobody Wants to Do First: Asset Inventory

I'll say this as bluntly as I can after fifteen years of watching companies skip it: you cannot run a defensible vulnerability management program without an accurate asset inventory, and most companies try anyway. Scanning tools can only find what they're pointed at. If your asset inventory is stale, incomplete, or scattered across three spreadsheets and a cloud console nobody fully trusts, your scan coverage has holes you can't even see, let alone report on. Auditors have gotten sharper about testing this — a common sample request now is "show me your asset inventory, then show me how you know your scan coverage matches it."

An asset inventory for vulnerability management purposes needs to cover more than server hostnames. It needs to include cloud compute instances (and the accounts/subscriptions they live in), containers and the registries that hold their images, SaaS platforms with meaningful data exposure, network devices, endpoints, and — critically — a criticality rating and a data sensitivity tag for each asset, because that criticality rating is what feeds your prioritization model later. An asset with no owner and no criticality tag is an asset that gets a generic 30-day SLA regardless of whether it's a dev sandbox or the production database holding PHI.

Table 2: Asset Inventory Fields Required to Support Vulnerability Management

Field

Purpose

Example Value

Asset ID / hostname

Unique identifier for tracking and dedup

prod-api-gw-03

Asset type

Determines applicable scan type

Cloud compute / container / SaaS / network device

Environment

Distinguishes production risk from non-production

Production / staging / dev

Business owner

Accountable party for remediation decisions

Engineering — Platform team

Data classification

Feeds risk-based prioritization

Confidential — contains PHI

Criticality rating

Weights severity scoring

Tier 1 (business-critical)

Internet-facing?

Drives exposure-based SLA tightening

Yes

Last scan date

Coverage verification

2026-07-02

Decommission status

Prevents scanning/patching dead assets

Active

Asset inventory maturity is also where vulnerability management overlaps hardest with access governance — a device or account nobody remembers exists is usually also a device or account with access nobody's reviewed, which is why I always tell clients to run their asset inventory refresh alongside their access recertification cycle described in SOC 2 Access Controls: User Management and Privilege Administration. The two exercises catch each other's blind spots.

Building the Vulnerability Management Program: Core Components

A vulnerability management program that survives an audit — and, more importantly, actually reduces risk — has six moving parts operating on a continuous cycle: asset inventory (covered above), scanning, prioritization, remediation, exception handling, and verification. Skip any one of them and the program degrades into what I call "scan theater" — activity that produces reports nobody acts on.

The program also needs a written policy that an auditor can read cover to cover and match against what actually happened. That policy should state scanning scope and frequency, the severity scale used, remediation SLA targets by severity, the exception process, and who owns each stage. Vague policies ("vulnerabilities will be remediated in a timely manner") are a top-five recurring finding I see in Type II reports, because "timely" isn't testable. Auditors need a number.

Table 3: Core Building Blocks of a SOC 2-Ready Vulnerability Management Program

Component

What It Covers

Owner (typical)

Audit Artifact

Asset inventory

Complete, current list of in-scope assets with criticality tags

IT Asset Management / Security

Asset register export, coverage report

Scanning

Scheduled, authenticated scans across infrastructure, apps, cloud, containers

Security Engineering

Scan reports, scan configuration

Penetration testing

Manual testing beyond automated scan coverage

Security Engineering + external firm

Pen test report, scope letter, retest report

Prioritization

CVSS + business context scoring model

Security Engineering

Prioritization matrix/rubric, ticket severity fields

Remediation

Patching/fixing tracked against SLA

Engineering/IT Ops, tracked by Security

Ticketing system export, SLA compliance report

Exception handling

Documented, approved, time-bound risk acceptance

Risk owner + Security leadership

Exception register with approvals

Verification

Confirming fixes actually closed the finding

Security Engineering

Rescan results, closed-ticket evidence

Vulnerability Scanning: Types, Tools, and Cadence

"Vulnerability scanning" is not one activity — it's a family of scan types, each covering a different slice of the attack surface. A program that only runs one type (commonly, external network scans) leaves enormous gaps that internal pen testers and, eventually, real attackers find first. A defensible SOC 2 program layers several scan types against different asset classes on different cadences, driven by risk and exposure rather than a single arbitrary "monthly for everything" rule.

Cadence should scale with exposure. Internet-facing infrastructure — the assets an attacker can reach without any internal foothold — should be scanned more frequently than internal-only systems. Cloud configuration and container image scanning increasingly need to happen continuously (as part of the CI/CD pipeline) rather than on a periodic batch schedule, because a misconfigured storage bucket or a vulnerable base image can go from "committed" to "exploited in production" in hours.

Table 4: Vulnerability Scan Types and Recommended Cadence

Scan Type

Covers

Typical Minimum Cadence

Notes

External network scan

Internet-facing IPs, ports, services

Weekly to monthly

Highest-exposure surface; most auditors expect at least monthly

Internal network scan

Internal hosts, servers, network devices

Monthly to quarterly

Assumes attacker already has a foothold

Web application scan (DAST)

Running web apps, APIs

Monthly, plus on major release

Complements code-level scanning

Static/dependency scan (SAST/SCA)

Source code, open-source libraries

Every build / continuous (CI/CD)

Catches issues before deployment

Cloud configuration scan (CSPM)

Cloud account/service misconfigurations

Continuous

Configuration drift is the dominant cloud risk

Container image scan

Base images, layers, dependencies

Every build + registry-wide weekly

Blocks vulnerable images pre-deployment

Authenticated host scan

OS-level patch and configuration state

Monthly

Requires credentials; far more accurate than unauthenticated

Table 5: Vulnerability Scanning Tool Categories

Category

Function

Common Deployment Point

Network vulnerability scanner

Identifies known CVEs on hosts/services

Scheduled batch, internal and external

Web application scanner (DAST)

Tests running applications for exploitable flaws

Staging/production, scheduled or on-demand

Static application security testing (SAST)

Analyzes source code for insecure patterns

CI/CD pipeline, every commit or PR

Software composition analysis (SCA)

Flags known vulnerabilities in open-source dependencies

CI/CD pipeline, continuous

Cloud security posture management (CSPM)

Detects cloud misconfigurations against benchmarks

Continuous, cloud API-integrated

Container/image scanner

Scans container layers for known vulnerabilities

Build pipeline + registry

Endpoint agent-based scanner

Continuous host-level vulnerability and patch state

Always-on agent

Authenticated vs. Unauthenticated Scanning

One distinction I have to explain to nearly every client I work with: an unauthenticated scan looks at a system the way an outside attacker with no credentials would — open ports, exposed services, banner information, and known vulnerabilities visible from the network. An authenticated scan logs into the system with valid (typically read-only, least-privilege) credentials and inspects the actual patch level, installed software inventory, and configuration state from the inside. The difference in accuracy is enormous. Unauthenticated scans routinely miss 30–60% of real findings on a given host because they can only infer versions from network fingerprinting, and they generate more false positives as a result.

Auditors have caught on to this. A program that only runs unauthenticated scans and calls it complete is increasingly flagged, because it can't actually demonstrate patch-level accuracy for internal systems. My standing recommendation is authenticated scanning as the default for anything you own credentials for, with unauthenticated external scans reserved for validating what an actual outside attacker sees — which is a genuinely different and useful data point, not a substitute.

"The finding that keeps showing up in readiness assessments isn't 'you don't scan.' It's 'you scan unauthenticated and call it done.' Authenticated scanning is where the real patch gaps live." — Sana Okafor, Principal Consultant, Okafor Security Partners

Penetration Testing: What Auditors Expect Beyond Scanning

Scanning finds known vulnerabilities with known signatures. Penetration testing finds the things a scanner structurally cannot: business logic flaws, chained exploits across multiple low-severity findings, privilege escalation paths, and misconfigurations that only reveal themselves to a human actively trying to break in. SOC 2 doesn't mandate a specific pen test frequency in the criteria text itself, but in practice, annual external penetration testing has become the de facto market expectation, and most auditors will ask for it as supporting evidence for CC7.1 even though it isn't a literal line-item requirement.

Scope matters as much as frequency. A pen test scoped only to a marketing website tells you almost nothing about the risk to the production system holding customer data. I push every client toward scoping pen tests around the actual SOC 2 system boundary — the same boundary defined in SOC 2 Scope Definition: Determining What's In and Out — so the test results and the audit scope line up cleanly when the auditor asks to see them side by side.

Table 6: Penetration Testing Types and Typical Frequency

Test Type

Focus

Typical Frequency

Performed By

External network pen test

Internet-facing infrastructure

Annual

Independent third-party firm

Internal network pen test

Post-foothold lateral movement, privilege escalation

Annual

Independent third-party firm

Web/API application pen test

Business logic, authz/authn flaws, injection

Annual, plus on major architecture change

Independent third-party firm

Social engineering test

Phishing susceptibility, physical/pretexting

Annual (optional but increasingly expected)

Independent third-party firm

Cloud configuration review

IAM, storage, network architecture in cloud environment

Annual or with major cloud changes

Independent third-party firm or specialized team

Table 7: Vulnerability Scanning vs. Penetration Testing

Dimension

Vulnerability Scanning

Penetration Testing

Method

Automated, signature/CVE-based

Manual, human-driven exploitation attempts

Frequency

Continuous to monthly

Typically annual

Finds

Known vulnerabilities with published signatures

Known + unknown flaws, chained exploits, logic errors

Cost per cycle

Low (tool-driven)

Higher (skilled labor)

Output

Findings list with severity scores

Narrative report with exploited paths and business impact

SOC 2 role

Directly required under CC7.1

Strong supporting evidence for CC7.1; market expectation

A pen test report is only useful to an auditor — and to you — if the findings feed the same remediation and SLA process as scan findings. I've seen companies keep pen test reports in a PDF that nobody ever converts into tickets. That's a finding waiting to happen; the report needs to feed the same tracked, SLA-bound remediation pipeline as everything else.

CVSS and the Language of Severity

Prioritization has to start from a common severity language, and for most vulnerability management programs that's the Common Vulnerability Scoring System (CVSS). CVSS produces a base score from 0.0 to 10.0 reflecting the technical severity of a vulnerability — factors like attack vector, complexity, privileges required, and impact to confidentiality, integrity, and availability. It's illustrative and technical, not a full risk assessment, but it gives everyone — engineers, security, and auditors — a consistent starting point before business context gets layered on.

Table 8: CVSS Severity Bands

CVSS Base Score Range

Severity Label

Typical Program Treatment

9.0 – 10.0

Critical

Fastest SLA, often triggers emergency change process

7.0 – 8.9

High

Expedited SLA, standard change process

4.0 – 6.9

Medium

Standard SLA, batched with regular patch cycles

0.1 – 3.9

Low

Longest SLA, often batched quarterly

0.0

None/Informational

Tracked, no mandatory remediation timeline

CVSS scores alone are a starting point, not an ending point, and this is where I see the second most common program failure: teams treat the raw CVSS score as the entire prioritization decision and end up burning remediation capacity on a critical-scored vulnerability sitting on an isolated, non-internet-facing dev box while a medium-scored vulnerability on the internet-facing payment API waits its turn. An auditor testing your program for effectiveness — not just existence — will ask you to justify why remediation order matched your stated methodology, and "we just went in CVSS order" doesn't hold up when the order clearly ignored exposure and data sensitivity.

Beyond CVSS: Risk-Based Prioritization

The prioritization model that actually holds up under audit and under real attacker behavior combines the CVSS base score with business context: is the asset internet-facing, does it hold sensitive data, is the vulnerability being actively exploited in the wild, and how critical is the asset to the business. Several programs now also weigh exploit likelihood using something like an exploit prediction score, which estimates the probability a given vulnerability will actually be exploited in the next 30 days based on observed attacker activity — a genuinely different signal from CVSS, which only measures theoretical severity.

Table 9: Risk-Based Prioritization Factors

Factor

Why It Matters

Effect on Priority

CVSS base score

Technical severity baseline

Higher score → higher starting priority

Exploit likelihood/prediction signal

Real-world attacker activity targeting the CVE

Active exploitation → escalate regardless of CVSS band

Internet-facing exposure

Reachability without internal foothold

Internet-facing → tighter SLA

Data sensitivity of the asset

Regulatory and breach-impact consequences

PHI/PII/financial data → tighter SLA

Asset criticality tier

Business impact of downtime or compromise

Tier 1 assets → tighter SLA

Compensating controls present

Existing mitigations reduce effective risk

Strong compensating control → may justify longer SLA with documented rationale

Ease of exploitation

Complexity of the attack path

Low complexity + public exploit code → escalate

A well-run program documents this rubric in writing and applies it consistently — the auditor isn't grading whether your model is theoretically perfect, they're grading whether you followed your own documented model. Consistency, not sophistication, is what gets tested.

"Auditors don't expect you to have a PhD-level risk model. They expect you to do what you said you'd do, every time, and show your work." — Marcus Feldt, CISO, Northbridge Data Systems

Patch and Remediation SLAs by Severity

This is the table every reviewer, every prospect's security questionnaire, and every SOC 2 auditor eventually asks to see. Remediation SLAs need to be specific, written down, and — this is the part programs most often get wrong — actually achievable given your engineering team's real patch deployment capacity. An SLA nobody can hit isn't a control; it's a guaranteed finding.

Benchmarks vary somewhat by industry and risk tolerance, but the ranges below reflect what I've seen hold up consistently across audits without becoming either an operational fire drill or an obvious rubber stamp.

Table 10: Illustrative Remediation SLA Benchmarks by Severity

Severity

Internet-Facing / Production Assets

Internal / Non-Production Assets

Typical Trigger for Escalation

Critical (9.0–10.0)

7 days (24–72 hrs if actively exploited)

14 days

Active exploitation, public exploit code available

High (7.0–8.9)

30 days

45 days

Internet-facing + sensitive data exposure

Medium (4.0–6.9)

60–90 days

90 days

Batched with regular patch cycle

Low (0.1–3.9)

180 days or next major release

Best effort / next refresh cycle

Rarely escalated unless combined with other findings

These numbers should be treated as a starting framework, not a universal law — a fintech company processing card data will often run tighter SLAs than a marketing analytics platform, and that's a defensible business decision as long as it's documented and consistently applied. What auditors actually test is whether your remediation tickets show closure dates inside whatever SLA you committed to in writing, not whether your SLA matches an industry benchmark exactly.

Where SLAs Come From: Setting Realistic Timeframes

I get asked constantly whether SLAs should be set by the security team unilaterally or negotiated with engineering leadership. The honest answer is both, in sequence. Security should propose SLAs based on risk tolerance and regulatory exposure, but engineering leadership needs to sign off on feasibility, because an SLA that ignores deployment cadence, change freeze windows, and testing requirements will get missed constantly — and a program with a 40% SLA miss rate looks worse to an auditor than a program with a slightly longer but consistently met SLA.

The negotiation should also account for patch dependencies. A critical vulnerability in a shared library used across twelve services doesn't get fixed in one ticket — it needs a coordinated rollout, and that rollout needs to move through the change management process described in SOC 2 Change Management: System and Application Updates without the change board becoming a bottleneck that blows the SLA. I recommend building a pre-approved "expedited security patch" change category specifically so critical fixes don't get stuck behind a two-week change advisory board cycle.

Emergency Patching and Zero-Days

Standard SLAs assume a normal disclosure-to-patch timeline. Zero-day vulnerabilities and actively exploited critical CVEs need a separate, faster track — one that most mature programs formalize as an emergency patching procedure rather than leaving it to ad hoc judgment calls under pressure. That procedure should define who can authorize an out-of-cycle emergency change, what testing (if any) can be abbreviated under time pressure, and how the emergency deployment still gets documented after the fact for audit purposes, even if it happened faster than the normal process allows.

A good emergency patching procedure also defines interim compensating controls for cases where a patch isn't immediately available — this is common with zero-days, where a vendor advisory might precede a fix by days or weeks. Network-level mitigations, network segmentation, disabling a vulnerable feature, or tightening access control to the affected system are all legitimate interim measures, provided they're documented and time-bound rather than becoming a permanent substitute for the actual patch.

Exceptions and Risk Acceptance

Not every vulnerability gets fixed on time, and pretending otherwise produces a program that either lies in its own tickets or burns out its engineering team chasing an impossible 100% SLA compliance rate. The honest, auditable answer is a formal exception process: when a finding can't be remediated inside its SLA, someone with appropriate authority documents why, what compensating controls are in place, and when the exception will be reviewed again.

The mistake I see constantly is an exception process that exists on paper but functions as a rubber stamp — findings get marked "risk accepted" by the same engineer who owns the unpatched system, with no independent review and no expiration date. Auditors sample exception registers specifically looking for this pattern, and it's one of the fastest ways to turn a clean CC7.1 test into a qualified finding.

Table 11: Exception and Risk Acceptance Workflow

Step

Action

Owner

1. Request

Document the finding, why SLA can't be met, proposed compensating control

Asset/system owner

2. Risk scoring

Assess residual risk with the compensating control applied

Security team

3. Independent review

Approve or reject — cannot be the same person as the requester

Security leadership / risk owner

4. Time-bound approval

Set an explicit expiration date, never indefinite

Security leadership

5. Logging

Record in a central exception register with all supporting detail

Security/GRC team

6. Periodic re-review

Reassess before expiration — extend, escalate, or close

Security leadership

Every exception should map to a documented risk treatment decision — you're formally choosing to accept residual risk rather than mitigate it further, and that decision needs the same rigor as any other entry in your organization's risk assessment process. An exception register with no expiration dates, no named approver distinct from the requester, and no periodic review is functionally indistinguishable from just not fixing things — and auditors treat it that way.

Verification: Closing the Loop

A remediation ticket marked "closed" is not the same thing as a vulnerability that's actually fixed. I have personally watched an engineer close a ticket because a patch was deployed to the wrong environment, because a config change didn't survive a redeploy, and — my personal favorite war story — because a "fix" was applied to a load-balanced instance that got replaced by an unpatched image the next auto-scaling cycle. Verification is the step that catches all of that, and it's also the step programs skip most often because it feels redundant.

Verification means rescanning the specific asset and confirming the specific finding is gone — not just confirming that a general scan came back cleaner than last time. For higher-severity findings, I recommend targeted rescans within days of the claimed fix, rather than waiting for the next scheduled scan cycle to confirm it.

Table 12: Verification Methods by Finding Type

Finding Type

Verification Method

Timing

Missing OS/software patch

Authenticated rescan confirming patched version

Within 3–5 days of claimed fix

Cloud misconfiguration

CSPM rescan confirming configuration state

Within 24–48 hours (automatable)

Application vulnerability (code fix)

Targeted retest, ideally by original discoverer

Before next release, or within SLA

Pen test finding

Formal retest by the testing firm

As part of contracted retest window

Container image vulnerability

Rescan of rebuilt image before deployment

Pre-deployment gate

The Evidence Auditors Actually Test

Everything above exists to produce a specific, sample-able body of evidence. When an auditor tests CC7.1 for a Type II report, they're not reading your policy and taking your word for it — they're pulling a sample of time periods across the audit window and a sample of findings, and checking whether the artifacts match the policy consistently across that whole window, not just at one point in time.

Table 13: Evidence Auditors Commonly Sample for Vulnerability Management

Evidence Item

What It Proves

Sampling Approach

Vulnerability management policy

Defined scope, cadence, SLAs, roles

Full document review

Scan schedule/configuration

Scans actually run on the defined cadence

Compared against scan history logs

Scan reports (multiple periods)

Coverage and findings across the audit window

Sample of months across the period

Asset inventory vs. scan coverage

Nothing in scope was missed

Cross-reference sample

Remediation tickets

Findings tracked, assigned, dated

Sample of critical/high findings

SLA compliance report/metric

Program consistently meets stated SLAs

Full-period aggregate + sample detail

Exception register

Deviations documented, approved, time-bound

Full register review + sample deep-dive

Pen test report(s) and retest results

Independent validation, findings remediated

Full report review

Rescan/verification evidence

Fixes actually closed the finding

Sample tied to remediation tickets

Change tickets linked to patches

Patches followed change management

Cross-reference sample

This is also the evidence set I recommend organizing before the audit even starts — not scrambled together during fieldwork, the way Priya's team had to. A readiness assessment that specifically tests this evidence chain, from scan to ticket to patch to verification, catches gaps like Kestrel's 141-day-old finding months before an external auditor does.

Roles and Responsibilities: Building a RACI

Vulnerability management fails more often from unclear ownership than from missing tools. Someone needs to own scanning execution, someone needs to own triage and prioritization, someone needs to own the actual patching (usually not the same person or team as security), and someone needs the authority to approve exceptions. Without an explicit RACI, findings drift between teams, and "I thought that was your ticket" becomes the de facto SLA-breaking excuse.

Table 14: Vulnerability Management RACI (Illustrative)

Activity

Security Engineering

IT/Engineering Ops

Asset/System Owner

Security Leadership

Run scans

R/A

I

I

I

Triage and score findings

R/A

C

C

I

Remediate (patch/fix)

C

R/A

R

I

Approve exceptions

C

I

R

A

Verify remediation

R/A

C

I

I

Report SLA metrics

R/A

I

I

A

(R = Responsible, A = Accountable, C = Consulted, I = Informed)

A RACI like this one is exactly the kind of artifact worth formalizing early — it's also a natural fit for a SOC 2 Control Matrix / RACI Template if you'd rather start from a structured baseline than build one from scratch under audit pressure.

Metrics That Matter

Auditors want to see SLA compliance data, but the metrics that actually improve a program go a bit further than a single compliance percentage. Mean time to remediate by severity tells you whether your process is getting faster or slower over time. Scan coverage percentage tells you whether your asset inventory and scanning scope are actually staying in sync. Exception volume and aging tell you whether your program is quietly accumulating risk debt behind a wall of "approved" exceptions.

Table 15: Core Vulnerability Management KPIs

Metric

Definition

Healthy Target (illustrative)

SLA compliance rate

% of findings remediated inside defined SLA, by severity

90%+ for Critical/High

Mean time to remediate (MTTR)

Average time from finding to verified fix, by severity

Trending down quarter over quarter

Scan coverage

% of inventoried assets scanned in the period

98%+

Open critical findings age

Age of oldest open critical/high finding

No critical finding older than SLA + grace period

Exception volume

Number of active exceptions at a point in time

Stable or declining, not growing unchecked

Rescan verification rate

% of closed findings with confirmed rescan evidence

100% for Critical/High

Pen test finding recurrence

% of pen test findings repeated from prior test

Trending toward 0%

Mean time to remediate in particular is worth tracking as a trend line rather than a single snapshot — a program with a 45-day average MTTR that's been steadily dropping from 90 days over the last year tells a much better story to both engineering leadership and an auditor than a static number ever could.

Vulnerability Management and Change Management: The Overlap

Every patch is a change, and every change carries its own risk of breaking something. This is where vulnerability management and change management have to interlock cleanly rather than operate as two disconnected processes fighting over the same deployment window. A finding that's been triaged, prioritized, and assigned an SLA still needs to move through a controlled deployment — testing, approval, rollback plan — before it ships to production, and that entire mechanism belongs to your change management program, not your vulnerability management one.

Table 16: Where Vulnerability Management Hands Off to Change Management

Stage

Vulnerability Management Owns

Change Management Owns

Discovery & scoring

Finding identified, CVSS/business risk scored

—

SLA assignment

Remediation deadline set by severity

—

Fix packaging

—

Patch tested, change ticket created

Approval

—

Change reviewed/approved (expedited path for critical)

Deployment

—

Patch deployed, rollback plan in place

Verification

Rescan confirms finding resolved

Post-deployment validation confirms no regression

The friction point most programs hit is the standard change advisory board cadence being too slow for a 7-day critical SLA. The fix isn't to bypass change management — it's to build an expedited, pre-approved change path specifically for security patches, documented as part of SOC 2 Change Management: System and Application Updates, so speed and control aren't in tension.

Cloud and Container Vulnerability Management

Cloud-native environments change the shape of this problem. Infrastructure that used to be a fixed set of servers is now ephemeral compute, container images rebuilt dozens of times a day, and managed services where the vendor — not you — patches the underlying OS. Vulnerability management has to adapt: scanning a running instance that gets replaced every deployment cycle is close to meaningless if the vulnerable base image is still being used to spin up the next one.

Table 17: Cloud and Container-Specific Vulnerability Management Considerations

Consideration

Traditional Infrastructure

Cloud/Container Environment

Scan target

Persistent servers

Base images, IaC templates, running config

Fix mechanism

Patch installed on the host

New image built and redeployed

Scan timing

Periodic batch

Continuous, gated in CI/CD pipeline

Configuration risk

Lower relative weight

Dominant risk category (CSPM findings)

Shared responsibility

N/A

Vendor patches infrastructure layer; you patch app/config layer

Verification

Rescan the host

Rescan the rebuilt image before it deploys

The single highest-leverage move I recommend to cloud-native clients is gating the CI/CD pipeline so a container image with an unremediated critical or high vulnerability simply cannot be promoted to production — turning verification from a follow-up activity into a hard technical control. It also produces exactly the kind of clean, automatic evidence trail auditors like: a pipeline log showing the gate fired and blocked, rather than a manual attestation that someone checked.

Third-Party and Vendor Vulnerabilities

Your vulnerability surface doesn't stop at your own code and infrastructure. Open-source dependencies, third-party APIs, and infrastructure vendors all introduce vulnerabilities you don't control the disclosure timeline for. A dependency scanning tool catching a critical CVE in a widely used open-source library is a now-routine event — the 2021 Log4Shell disclosure remains the reference point most engineering teams still measure their emergency-patch response speed against, precisely because it exposed how many organizations had no fast path for an urgent third-party dependency fix.

The practical response is twofold: continuous software composition analysis so you know your dependency exposure before an advisory drops, not after, and a defined process for evaluating vendor security advisories for products you don't directly control (SaaS tools, managed infrastructure) to determine whether they affect your environment and whether the vendor's own patch timeline is fast enough to meet your risk tolerance. Where it isn't, that becomes an input into your vendor risk management process rather than something your own patch SLA can fix directly.

Common Audit Findings and How to Avoid Them

After enough of these audits, the same handful of findings show up again and again. None of them are exotic. Nearly all of them are avoidable with modest process discipline applied consistently over the audit period, rather than assembled in the final weeks before fieldwork.

Table 18: Common CC7.1 Audit Findings and How to Prevent Them

Common Finding

Root Cause

Prevention

Scans didn't run on the stated cadence for part of the period

No monitoring of the scanning schedule itself

Alert on missed/failed scheduled scans

Critical findings remediated outside SLA with no exception

No SLA tracking dashboard, findings fall through cracks

Automated SLA aging reports, weekly triage review

Scan coverage doesn't match asset inventory

Inventory and scanning scope maintained separately

Reconcile inventory-to-coverage monthly

Exceptions with no expiration date or independent approver

Exception process exists on paper only

Enforce mandatory fields in exception register

No evidence of remediation verification

Tickets closed without rescanning

Require rescan evidence attached before ticket closure

Pen test findings not fed into the same remediation tracking

Pen test report treated as a one-off deliverable

Convert every pen test finding into a tracked ticket

Unauthenticated-only scanning presented as full coverage

Authenticated scanning never configured

Roll out authenticated scanning as the default

Program Maturity: From Ad Hoc to Optimized

Not every company needs (or can afford) the most sophisticated version of this program on day one, and auditors don't expect a five-person startup to have the same tooling stack as a 2,000-person enterprise. What they do expect is that whatever maturity level you're operating at is documented honestly and applied consistently. I use a simple four-stage model with clients to set realistic near-term goals rather than trying to boil the ocean in one quarter.

Table 19: Vulnerability Management Program Maturity Model

Maturity Stage

Characteristics

Typical Gaps

Ad hoc

Scanning happens irregularly, no formal SLAs, findings tracked in spreadsheets or not at all

No consistent evidence trail; fails audit sampling

Defined

Written policy, scheduled scans, SLAs assigned, tickets tracked in a system

SLA compliance inconsistent, verification often skipped

Managed

Authenticated scanning standard, RACI clear, exceptions formally reviewed, metrics tracked

Manual reconciliation between systems still time-consuming

Optimized

Continuous scanning integrated into CI/CD, automated SLA aging and alerting, verification automated

Ongoing tuning of prioritization model and false-positive rates

Most companies I work with entering their first SOC 2 Type II should be aiming for "Managed," not "Optimized" — trying to fully automate everything before you've proven the manual process works consistently often produces automation around a broken workflow, which is worse than a disciplined manual one.

Program Lifecycle at a Glance

The full cycle — from asset inventory through verification and back into continuous scanning — is easiest to internalize as a loop, not a linear checklist. This is the version I sketch on a whiteboard in almost every kickoff meeting.

Case Study: Kestrel Health Analytics, Five Weeks to Clean

Returning to Priya's story with the specifics: Kestrel's remediation, once the gap was identified, took five weeks and touched every part of the program described above. They formalized SLAs (7 days critical, 30 days high, on internet-facing production assets), stood up authenticated scanning across their AWS environment, built an exception register with mandatory expiration dates, and — critically — added a weekly 30-minute triage meeting between security and engineering leads that had simply never existed before. The 141-day critical finding was patched in six days once it had an owner and a deadline. The $3.1 million Alden Health System contract closed on schedule, and the following year's Type II report showed a 94% SLA compliance rate on critical and high findings, up from an untracked and effectively unmeasured baseline.

Case Study: A Fintech's False-Positive Fatigue

A payments infrastructure client I'll call Verdant Pay — a fictional composite drawn from patterns I've seen across several similar engagements — had the opposite problem from Kestrel. Their scanning program was aggressive and technically sound, but their engineering team had stopped trusting the findings after months of chasing what turned out to be a high volume of false positives from an over-broad, poorly tuned scanner configuration. SLA compliance had quietly dropped to around 60% because tickets were being deprioritized on the assumption they were probably noise. We spent three weeks tuning scan profiles, validating a sample of historical findings to rebuild trust in the data, and introducing a lightweight secondary validation step for anything scored above CVSS 8.0 before it hit an engineer's queue. SLA compliance climbed back above 90% within two quarters, not because engineers worked harder, but because they stopped ignoring the alerts.

Case Study: A Healthtech Startup's First Pen Test

A 40-person digital health startup — another fictional composite reflecting a common early-stage pattern — went into its first SOC 2 Type II readiness assessment having never commissioned a third-party penetration test. The scan-only program looked reasonable on paper, but the readiness assessment flagged the missing pen test as a near-certain auditor request given the sensitivity of the data in scope. We scoped and scheduled an external network and web application test six weeks ahead of the observation period start, which surfaced two high-severity authorization flaws that no automated scanner had caught. Both were fixed and independently retested before fieldwork began, converting a likely audit gap into a genuine strength the sales team later used in customer conversations.

"The pen test wasn't a checkbox for us anymore after that. It became the thing that actually found what the scanners couldn't." — Jonah Reyes, Head of Engineering, a healthtech startup client

"What changed everything for our program wasn't a new tool. It was putting a number and a name on every single finding — a deadline and an owner. Findings that used to sit for months started closing in days." — Priya Raman, VP of Security Engineering, Kestrel Health Analytics

"I tell every client the same thing: your vulnerability management program is only as credible as your exception register. Show me a register with no expired-but-still-open exceptions, and I'll believe the rest of your evidence." — Aisha Toure, SOC 2 Auditor, Halden & Cross CPAs

Turning Vulnerability Management Into a Business Advantage

It's easy to treat all of this as compliance overhead — a set of tables and SLAs that exist purely to survive an audit. I'd push back on that framing hard. Every element of a mature vulnerability management program is also just good security practice, and increasingly, it's a genuine sales asset. Enterprise buyers, and especially regulated buyers like Alden Health System in Priya's story, are asking harder and more specific vulnerability management questions in security questionnaires every year — not "do you scan," but "what's your critical SLA, and can you show me your last twelve months of compliance against it."

A company that can answer that question with a real number, backed by real evidence, closes deals faster than a competitor who can only offer a vague assurance. I've watched vulnerability management maturity become a genuine differentiator in competitive enterprise sales cycles, not just a line item auditors check. Framed that way, the investment in building this program properly — asset inventory, layered scanning, risk-based prioritization, disciplined SLAs, honest exceptions, and real verification — pays for itself well beyond the audit report it was originally built to support.

If you're building or maturing this program now, don't wait for an auditor's sample request to find your gaps the way Kestrel did. Run a structured SOC 2 Readiness Assessment against your current vulnerability management practices, pressure-test your SLA compliance data against a real evidence sample, and fix what you find before it becomes a qualified opinion instead of a quiet internal fix.

Get PentesterWorld's SOC 2 Vulnerability Management Toolkit

PentesterWorld built a practitioner-grade SOC 2 Policy Pack with a ready-to-adapt vulnerability management policy template, an SOC 2 Gap Analysis Tool to pressure-test your current program against CC7.1 before an auditor does, and a full SOC 2 Readiness Checklist covering scanning, pen testing, SLAs, and exception handling end to end. If you're newer to the framework entirely, our SOC 2 Glossary is a fast way to get your whole team speaking the same language before fieldwork starts. Whether you're five weeks from your first Type II or tuning a program that's already survived three audit cycles, these are built to save you the fire drill Priya's team barely avoided.

Frequently asked questions

Does SOC 2 require a specific vulnerability scanning frequency?

No. The Common Criteria (CC7.1) require that the organization identifies and evaluates vulnerabilities on an ongoing basis, but it doesn't mandate a specific cadence in the criteria text. In practice, auditors expect a documented, risk-based cadence — commonly monthly for internet-facing assets — applied consistently, with the organization's own policy setting the benchmark it's then tested against.

Is penetration testing mandatory for SOC 2?

Not explicitly in the criteria language, but it's become a strong market and auditor expectation, particularly for Type II reports and for companies handling sensitive data. Most organizations commission at least an annual external penetration test as supporting evidence for CC7.1, and many customer security questionnaires ask for it directly regardless of what the audit technically requires.

What CVSS score should trigger an emergency patch?

There's no fixed universal threshold, but critical-severity findings (generally CVSS 9.0+) combined with evidence of active exploitation in the wild are the typical trigger for an emergency, out-of-cycle patching process. CVSS score alone shouldn't be the only input — an internet-facing asset with sensitive data exposure can justify emergency treatment even at a slightly lower score if exploitation is confirmed.

Can we use a spreadsheet to track vulnerability remediation for SOC 2?

Technically yes for a very small environment, but it becomes a liability quickly. Auditors need to see consistent SLA tracking, ownership, and verification evidence across the full audit period, and spreadsheets rarely hold up well to sampling across six or twelve months without gaps, version conflicts, or missing fields. A dedicated ticketing or vulnerability management platform scales far better and produces cleaner evidence.

How many vulnerability findings can we have and still get a clean SOC 2 report?

There's no finding-count threshold. Auditors aren't testing whether you have zero vulnerabilities — that's an unrealistic bar for any real environment. They're testing whether you consistently identify, prioritize, and remediate findings inside your own documented process and SLAs, and whether exceptions are properly approved and time-bound when SLAs aren't met.

What's the difference between a vulnerability scan finding and a pen test finding for audit purposes?

Both should feed the same remediation tracking and SLA process, but they originate differently — scan findings are automated and signature-based, while pen test findings often represent chained or logic-based issues a scanner can't detect. Auditors typically want to see both evidence streams and confirm both are remediated and verified, not just one or the other.

Do we need authenticated scanning, or is unauthenticated scanning enough?

Unauthenticated scanning alone is increasingly viewed as insufficient because it materially undercounts real findings and can't accurately confirm patch levels. Authenticated scanning should be the default wherever you control credentials, with unauthenticated scans used as a supplementary outside-in perspective, not the primary evidence source.

How does vulnerability management differ between SOC 2 and ISO 27001?

The underlying practice is nearly identical, but the frameworks describe it differently. SOC 2's CC7.1 requires ongoing vulnerability identification and evaluation as part of the Common Criteria, while ISO 27001's Annex A includes an explicit control (8.8, Management of Technical Vulnerabilities) in the Technological theme covering the same ground. Organizations pursuing both frameworks, as covered in ISO 27001 vs SOC 2: which one do you need, can typically run a single vulnerability management program that satisfies both sets of requirements with minor documentation adjustments.

35

About the author

Cybersecurity Expert

Satish Kumar writes about cybersecurity, offensive security, and practical defense strategies on PentesterWorld.

Related Articles

Comments (0)

No comments yet. Be the first to share your thoughts!