Table of Contents

Reach SOC 2 Compliance in 6 Weeks or Less.

  /

  / How to Verify a SOC 2 Report: A Practical Guide

How to Verify a SOC 2 Report: A Practical Guide

SOC 2 compliance is a critical trust signal for organizations handling sensitive data. Unlike ISO standards, SOC 2 reports are private attestations issued by licensed CPA firms, making verification essential. 

To verify a SOC 2 report, you need to review the auditor’s opinion, audit period, report type, scope, and any control exceptions, then confirm the auditor’s AICPA registration and request a bridge letter if the report is outdated.

In today’s cybersecurity-driven business environment, SOC 2 compliance has become one of the most recognized trust signals in the industry. Whether you are a SaaS provider handling customer data or an enterprise evaluating third-party vendors, a SOC 2 report plays a central role in proving that security controls are properly designed and operating effectively.

Verifying a SOC 2 report, however, is not as simple as checking a public registry.

Unlike ISO 27001, SOC 2 is not a public certification. Despite being regulated by the AICPA, there is no central database or government portal where you can confirm a company’s compliance status. Instead, SOC 2 is a private attestation report, issued by an independent CPA firm. That makes verification a matter of careful review and disciplined due diligence. If you want to understand how SOC 2 stacks up against other frameworks, our breakdown of ISO 27001 vs SOC 2 is a good place to start.

This guide explains how to properly verify a SOC 2 report, what to watch for, and how expert partners like Axipro help organizations achieve and maintain SOC 2 compliance so their reports hold up to real scrutiny.

Why Verifying a SOC 2 Report Matters

SOC 2 reports are widely used across vendor risk management, enterprise procurement decisions, security questionnaires, and customer trust and sales cycles. Because SOC 2 reports are private and shareable only under NDA, verification responsibility falls entirely on the recipient. Accepting an outdated, poorly scoped, or improperly audited SOC 2 report can expose your organization to serious security and compliance risks.

According to IBM’s Cost of a Data Breach Report, the average cost of a data breach continues to climb year over year, and third-party vendor relationships remain one of the most common attack vectors. Treating SOC 2 verification as a formality is not just sloppy governance; it is a liability.

Knowing how to verify a SOC 2 report, and working with the right compliance experts, is not optional. It is essential.

Step 1: Thoroughly Review the SOC 2 Report Key Sections

Once a company provides its SOC 2 report (typically under a Non-Disclosure Agreement), your first step is a structured internal review. There are five areas you must examine closely.

The Auditor’s Opinion is the single most critical section of the report. The opinion should be Unqualified (also called Unmodified). A Qualified, Adverse, or Disclaimer opinion is a major red flag and should immediately prompt further questions. An unqualified opinion means the auditor found no material issues with how controls were designed or operated during the audit period.

The Report Period and Date tell you whether the report is still relevant. SOC 2 reports are generally considered valid for 12 months. Confirm the exact audit period, for example, October 1, 2024 to September 30, 2025, and flag anything older than that as potentially unreliable without additional assurance documentation.

The Report Type is equally important. A SOC 2 Type I assesses whether controls were properly designed at a single point in time. A SOC 2 Type II evaluates whether those controls actually operated effectively over a defined period, typically six to twelve months. For most enterprise customers, SOC 2 Type II is the expected standard, and anything less should be treated with appropriate skepticism.

The Scope of Services, found in the System Description section, must explicitly include the product or service you are evaluating. A SOC 2 report that does not cover the relevant system offers limited assurance, regardless of how clean the auditor’s opinion is.

Exceptions and Control Failures in the testing results section deserve careful attention. Look for exceptions, failed controls, or deviations from expected behavior. Not all exceptions are disqualifying, but you need to assess whether they represent a material risk to your data or operations. If the report contains a significant number of exceptions or a pattern of failures in critical areas, that is a conversation worth having with the vendor before proceeding.

If you want a structured checklist to guide this review process internally, we have put one together here.

Reach SOC 2 Compliance in 6 Weeks or Less

Schedule Your Free SOC 2 Assessment Today

Step 2: Verify the Auditor’s Credibility

A SOC 2 report is only as trustworthy as the CPA firm that issued it. This step is non-negotiable.

The auditor must be a licensed CPA firm authorized to perform SOC engagements under the standards set by the American Institute of Certified Public Accountants (AICPA). The AICPA is the governing body for SOC reporting, and any firm issuing these reports must be formally registered with them.

Beyond registration, AICPA requires CPA firms to undergo periodic peer reviews to ensure quality and professional standards are maintained. You can check a firm’s peer review standing directly through the AICPA peer review database or verify their status through the relevant state board of accountancy. This is a free, publicly accessible check that takes minutes, and skipping it is a mistake.

An unlicensed or non-peer-reviewed firm issuing a SOC 2 report is not just a compliance risk, it is a sign the report may not be worth the paper it is written on.

Axipro works closely with reputable, AICPA-registered audit firms, helping clients select the right auditor and ensuring the engagement meets all professional and regulatory expectations from the start.

Step 3: Request a Bridge Letter When There Is a Coverage Gap

SOC 2 reports cover a defined period. If the most recent report ended several months ago and the next audit is still in progress, you are operating in a coverage gap, a window of time where you have no formal attestation of current control effectiveness.

In this situation, you should request a Bridge Letter, sometimes called a Comfort Letter. This is a document signed by company management that provides interim assurance, confirming no material changes have been made to the organization’s security controls since the end of the last audited period. It does not carry the same weight as a full audit report, but it demonstrates transparency and gives you something concrete to document in your vendor risk file.

Axipro supports clients through this process by drafting clear and accurate bridge letter language and validating that all statements align with how controls are actually operating in practice, reducing the risk of misrepresentation or compliance exposure on either side.

How Axipro Helps Organizations Achieve SOC 2 Compliance

Verification matters, but you also need to think about your own SOC 2 posture. If your organization is working toward SOC 2 certification, or maintaining it after an initial audit, the process involves significantly more than just passing a one-time review.

Axipro provides end-to-end SOC 2 compliance support. That starts with a thorough gap analysis to identify where your current controls fall short of the Trust Services Criteria, followed by control design and implementation, policy and procedure development, evidence collection and mapping, and full audit coordination with trusted CPA firms. On the tooling side, Axipro enables compliance platforms like Drata to automate evidence collection and continuous control monitoring, a major factor in speeding up the path to audit readiness. For a detailed comparison of leading tools in this space, see our Drata vs Vanta comparison.

With Axipro’s Achievement Plan, many organizations reach SOC 2 readiness in as little as six weeks, without cutting corners on quality or audit integrity. And once you are certified, Axipro’s ongoing compliance support keeps you audit-ready as your business scales, managing renewals, evidence updates, and control changes so nothing slips through the cracks.

SOC 2 Verification Requires Expertise and Discipline

Verifying a SOC 2 report is not a one-size-fits-all exercise. It requires careful document review, auditor validation, awareness of coverage gaps, and ongoing oversight. Organizations that accept outdated or poorly reviewed SOC 2 reports expose themselves to entirely avoidable risks, and, increasingly, enterprise procurement teams and regulators are holding companies accountable for such oversight failures.

Is SOC 2 compliance publicly verifiable?

No. SOC 2 reports are private documents shared under NDA. There is no public registry, which means verification relies entirely on reviewing the report itself and validating the auditor’s credentials independently.

A legitimate SOC 2 report is issued by a licensed CPA firm and includes an unqualified auditor’s opinion, a clearly defined audit period, and detailed testing results. Always verify the auditor’s AICPA registration and peer review standing before relying on the report for vendor risk or procurement decisions.

Most SOC 2 reports are considered valid for 12 months from the end of the audit period. If the report is older than that, request either a new SOC 2 report or a bridge letter to cover the gap in assurance.

Most SOC 2 reports are considered valid for 12 months from the end of the audit period. If the report is older than that, request either a new SOC 2 report or a bridge letter to cover the gap in assurance.

Most SOC 2 reports are considered valid for 12 months from the end of the audit period. If the report is older than that, request either a new SOC 2 report or a bridge letter to cover the gap in assurance.

Axipro Author

Picture of Pedro Dias

Pedro Dias

Pedro has been writing online for over 10 years. With experience in all things programming, cyber security, and compliance, he is our editor-in-chief at Axipro.

Blog Highlights

Explore More Articles

For the past two years, enterprise AI risk conversations have centered on a familiar set of concerns: model bias, hallucination, data privacy, and dependency on third-party models. These are real risks, and most organizations now run some version of a governance program to manage them. But something has shifted. Organizations are no longer just deploying AI that generates content for a human to review. They’re deploying AI that acts. Agents now plan multi-step tasks, call APIs, move data between systems, execute transactions, and coordinate with other agents, often with no human checkpoint in the loop. That shift deserves more than a footnote in the existing AI risk category. It deserves its own line in the risk register: Agentic Autonomy Risk. What Is Agentic AI Risk Management? Agentic AI risk management is the practice of identifying, assessing, and controlling the risks created when AI systems take autonomous action on an organization’s behalf. Where traditional AI governance evaluates outputs (accuracy, bias, privacy), agentic AI risk management governs what agents actually do: the tools they call, the permissions they inherit, and the downstream consequences of their actions. That distinction is the reason existing risk registers struggle with agents, and it’s worth unpacking properly. What Agentic AI Actually Changes Traditional AI systems, even generative ones, are advisory. They produce an output such as a summary, a prediction, a draft email, or a classification, and a human remains the last checkpoint before anything happens in the real world. Agentic AI removes that checkpoint. An agentic system doesn’t just produce an answer. It pursues a goal. It decides which tools to call and in what order, then executes those actions directly against live systems: submitting a purchase order, modifying a database record, sending an external communication, or orchestrating a set of sub-agents to complete a broader workflow. Agentic autonomy is the degree to which a system can plan and execute actions without a human explicitly authorizing each step. It’s a spectrum rather than a binary. At one end, the AI drafts and a human approves every action. At the other, the AI operates within broad guardrails and only escalates exceptions. The further an organization moves along that spectrum, the less its exposure looks like software risk and the more it looks like delegated authority risk, the kind normally reserved for employees, contractors, and automated financial systems. Why Existing Risk Registers Miss Agentic AI Risks Most enterprise risk registers were built on a reasonably safe assumption: a human initiates consequential actions, and the technology around that human behaves deterministically. Agentic AI breaks both halves of that assumption at once. A few specific gaps show up quickly when organizations try to map agentic deployments onto existing categories. Operational risk registers assume process failures come from human error or system outages, not from a system independently choosing an unanticipated path to a stated goal. Cybersecurity risk registers are built around unauthorized external access, while an agent problem usually involves an authorized system taking unauthorized internal actions with its own legitimate credentials. Model risk frameworks, borrowed largely from financial services, evaluate output accuracy rather than action consequences, which matters most when those actions can’t be reversed. And third-party risk assessments treat vendors as static entities, not as autonomous agents that might invoke other vendors’ agents on your behalf. See our guide to the NIST AI Risk Management Framework for how output-focused frameworks are structured. The result is a governance blind spot. An organization can be compliant against its AI policy, its cybersecurity policy, and its vendor risk policy, and still have nobody accountable for the specific risk of a system initiating a harmful sequence of actions before anyone notices. Defining Agentic Autonomy Risk Agentic Autonomy Risk is the risk that an AI system, operating with delegated decision-making and execution authority, takes actions that are harmful, non-compliant, or misaligned with organizational intent before adequate human oversight can intervene. Those actions might happen independently or in coordination with other agents. It deserves standing as a named category alongside cybersecurity, operational, legal, financial, and third-party risk because the loss event itself is different. The harm is a completed action in a live system, and it may be difficult or impossible to reverse. The accountability structure is different too: when an orchestrating agent delegates to sub-agents, responsibility for the outcome gets distributed in ways existing ownership models don’t cleanly capture. So is the detection window. Traditional controls assume a human is positioned to catch an error before it compounds, but an agent can execute dozens of dependent actions faster than any human review cycle. 7 Agentic AI Risk Scenarios to Put on Your Register 1. Unauthorized autonomous decision-making. An agent takes an action within its technical permissions but outside its intended business mandate. It adjusts pricing, approves a refund, or modifies a customer record, and no policy ever explicitly authorized that scenario. 2. Goal misalignment. The agent optimizes for a literal interpretation of its objective in a way that diverges from actual business intent, particularly under ambiguous or adversarial inputs. 3. Multi-agent interactions and cascading failures. One agent’s flawed output becomes another agent’s trusted input. A single error can propagate across a chain of agents faster than anyone can detect it, amplifying the original mistake instead of containing it. 4. Excessive tool or system permissions. Agents get provisioned with broad, standing access “to be safe” rather than scoped, least-privilege access tied to specific tasks. A productivity tool quietly becomes a privilege-escalation path. 5. Regulatory non-compliance. Autonomous actions trigger obligations under data protection, financial services, employment, or sector-specific regulation, and they execute without the compliance review a human-initiated process would normally receive. 6. Explainability and accountability gaps. An autonomous action causes harm and the organization can’t clearly reconstruct why the agent chose that path, or establish whether the business owner, the AI governance function, or the vendor is accountable for the outcome. 7. Autonomous third-party actions. A vendor’s agent, integrated into your environment, takes action on your behalf, or your agent acts against a

A SOC 2 penetration test costs between $1,000 and $30,000 for most companies. A typical SaaS scope, meaning one web application, its API layer, and the cloud infrastructure behind it, usually lands between $2,000 and $20,000. Early-stage startups with a narrow scope can get an auditor-accepted test for $1,000 to $8,000, while enterprises with multiple products and hybrid infrastructure regularly spend $20,000 to $50,000 or more. The spread is wide because “penetration test” covers everything from an automated scan with a cover page to weeks of manual testing by senior engineers. Auditors know the difference, and so do the enterprise customers who asked for your SOC 2 report in the first place. This guide breaks down what drives the price, where the hidden costs sit, and how to buy a test that holds up in fieldwork without overpaying for it. What Is SOC 2 Penetration Testing?​ A SOC 2 penetration test is a simulated attack on your systems, performed by a qualified security professional, scoped to the environment covered by your SOC 2 report. The tester tries to exploit real weaknesses the way an attacker would: broken access controls, injection flaws, misconfigured cloud services, exposed credentials. The output is a report your auditor reads as evidence that your security controls work in practice, not only on paper. That last part matters. A pentest bought for SOC 2 has a second audience beyond your security team. If the report doesn’t map findings to your audit scope, document its methodology, and show remediation, it fails the job you bought it for. We cover the full deliverable in our guide to what a SOC 2-ready VAPT report includes. How Penetration Testing Fits Into SOC 2 Compliance​ SOC 2 is built on the AICPA’s Trust Services Criteria, and the Security category (the Common Criteria) applies to every report. Penetration testing is the standard way to satisfy CC7.1, which expects you to detect and monitor for new vulnerabilities, and it supports CC4.1, which covers ongoing evaluations of whether controls actually function. The AICPA’s points of focus explicitly mention vulnerability scanning and penetration testing as examples of how companies meet these criteria. In practice, the test slots into your audit timeline as an evidence item. Your auditor will ask for the report, check the test date against the audit period, and review how you handled the findings. Remediation is often scrutinized harder than the test itself, because it shows whether your vulnerability management process runs or merely exists. Is Penetration Testing Required for SOC 2?​ Strictly speaking, no. The Trust Services Criteria never use the word “mandatory” about penetration testing. You could theoretically satisfy CC7.1 with vulnerability scanning and strong monitoring alone. In reality, almost every auditor expects one, and skipping it invites two problems. First, your auditor may push back during fieldwork or add exceptions to the report. Second, the enterprise buyers reviewing your SOC 2 report increasingly look for pentest evidence specifically, and a report without it raises questions during procurement. Treat the test as effectively required and budget for it from the start of your SOC 2 compliance checklist. How Much Does SOC 2 Penetration Testing Cost? Typical Price Range for SOC 2 Pen Testing Most companies pay $1,000 to $30,000, with the median engagement for a SaaS business sitting around $12,000 to $15,000. Compliance-focused tests at the lower end of the market start around $1,000 to $5,000. Deep manual testing from established firms runs $10,000 to $30,000. Anything quoted below roughly $3,000 is almost certainly automated scanning packaged as a pentest, which auditors are getting better at spotting. Cost by Company Size (Startup, SMB, Enterprise) Company size is a proxy, not the driver. A 15-person company with three products and a legacy on-prem component will pay more than a 200-person company with one tightly scoped SaaS platform. Testers price effort, and effort follows scope. Cost by Test Type (Network, Web App, API, Cloud, Internal/External) Most SOC 2 engagements bundle two or three of these. The common package for a cloud-native SaaS company is web app plus API plus cloud configuration, which is why the $1,000 to $20,000 band comes up so often. Companies with office networks and internal systems in their audit scope add internal network testing, and the price climbs accordingly. Factors That Influence SOC 2 Penetration Testing Cost Scope and Number of Assets Tested Scope is the single biggest cost driver. Every additional application, API endpoint group, cloud account, or network segment adds testing hours. A pentest priced without a scoping call is a pentest priced on guesswork, and the guess usually favors the vendor. Complexity of Application or Infrastructure​ A simple CRUD app with two user roles tests quickly. A multi-tenant platform with role hierarchies, workflow engines, file processing, and third-party integrations takes far longer, because each of those features creates attack surface a tester has to work through manually. Authentication tiers matter especially: every distinct role needs testing for privilege escalation and cross-tenant data access. Testing Methodology (Black Box, Grey Box, White Box) Black box testing gives the tester nothing but a URL, grey box adds credentials and documentation, and white box adds source code and architecture diagrams. Grey box is the default for SOC 2 and usually the best value, since the tester spends time exploiting rather than discovering. White box costs more upfront but finds deeper issues. Black box sounds rigorous but often wastes paid hours on reconnaissance an attacker would run for free. Depth of Testing and Manual vs. Automated Approaches Automated scanning finds known vulnerability patterns. Manual testing finds business logic flaws, chained exploits, and authorization gaps that no scanner catches, and it’s the part auditors and security-literate customers actually value. The ratio of manual work to automation is the honest explanation for most price differences between two quotes covering the same scope. Tester Credentials and Firm Reputation Senior testers holding OSCP, GPEN, or CREST credentials bill higher rates, and firms with recognized methodologies charge a premium for the credibility their letterhead carries

Two compromised versions of LiteLLM sat on PyPI for roughly 40 minutes on the morning of March 24, 2026. That window was enough to capture secrets from around 434,000 CI/CD pipeline runs across nearly 2,500 organizations, including AWS, Samsung, Cisco, Salesforce, Siemens, and Deloitte. In August, researchers at CloudSEK and Hudson Rock confirmed they had obtained the raw exfiltrated data: a 153GB archive containing 433,909 files of environment variables, cloud keys, Kubernetes secrets, and API tokens harvested live from running pipelines, as covered by Help Net Security’s reporting on the credential archive. If LiteLLM runs anywhere in your stack, or you touch any AI proxy infrastructure at all, you need answers to three things: whether you were exposed, what to rotate first, and whether the rotation you did back in March actually held. That last one matters more than it sounds, because “we rotated everything” has already burned at least one very large company. How the Breach Happened The attack didn’t start with LiteLLM. On March 19, 2026, a threat group called TeamPCP compromised the build pipeline of Trivy, a vulnerability scanner half the industry runs, and pushed a poisoned release. LiteLLM’s own CI pipeline ran Trivy, so the poisoned scanner had legitimate read access to the project’s runner environment. The attackers used that to steal LiteLLM’s PyPI publishing tokens and ship two malicious releases of their own: versions 1.82.7 and 1.82.8. KICS and the Telnyx Python SDK got hit in the same campaign. The payload design is the part worth studying. The malicious package dropped a .pth startup hook into site-packages, so the code ran the moment any Python interpreter started on the machine, whether or not anything imported LiteLLM. From there it harvested environment variables, read local credential files like .aws/credentials and .kube/config, tried to move laterally across Kubernetes clusters, and installed a systemd backdoor dressed up as a generic telemetry service. InfoQ’s coverage of the PyPI compromise put downloads of the compromised release above 40,000. For scale, LiteLLM normally gets downloaded around 3 million times a day. The exfiltration had a nasty fallback, too. According to CloudSEK, stolen data was encrypted and sent to a typosquatted domain, and when that failed, the malware created a public repository inside the victim’s own GitHub account and uploaded the loot as a release asset. Some companies were publishing their own secrets to the open internet and had no idea. Worth Knowing: The malicious code only existed in the PyPI artifacts. The GitHub source repository stayed clean the whole time, so a developer reviewing the code on GitHub saw nothing wrong. Source review isn’t artifact verification. If you don’t check that what the registry serves matches the upstream source, this class of attack is invisible to you. How to Check If You Were Exposed Three checks, from quickest to most involved. 1. Confirm whether the compromised versions ever ran The malicious versions went live on PyPI at 10:39 UTC on March 24, 2026 and got quarantined about 40 minutes later. The project’s advice: treat any install from that day before 16:00 UTC as suspect. Search your lockfiles, pip caches, SBOMs, and container image histories for 1.82.7 and 1.82.8. And check your internal artifact mirrors. An Artifactory or Nexus proxy that cached the bad release in March can keep serving it internally long after PyPI pulled it. Keep the .pth mechanism in mind when you scope this. The question isn’t “which applications import LiteLLM,” it’s “which machines had the package installed at all,” because every Python process on an infected machine triggered the payload. 2. Hunt for persistence Rotation is pointless if the attacker still has a foothold. Check developer machines, CI runners, and containers for unauthorized .pth files in site-packages and for suspicious systemd units, especially anything posing as a system telemetry service. And review activity from March 24 onward, not just the 40-minute window. Persistence is there so the access outlives the infection. Pro Tip: Don’t limit the persistence hunt to live machines. Base container images rebuilt in late March may have baked the payload into every image derived from them since. Scan your image registry for the affected LiteLLM versions and for unexpected .pth files, then trace which running workloads came from flagged images. 3. Check whether your secrets are in the dump Hudson Rock has published a domain lookup tool and is running ethical disclosures for affected organizations, and CloudSEK maintains a high-confidence victim list. Use them, but know their limits. Attribution in this dataset is genuinely hard. One dump with a siriusxm.com committer email actually traced, through its self-hosted GitLab endpoints, to AdsWizz, a SiriusXM subsidiary. And a large share of the dumps are generic pipeline configurations with no identifying domain, email, or server name at all. Absence from a victim list is not evidence of absence. If your pipelines ran the compromised versions, assume exposure no matter what a lookup tool tells you. What to Rotate, in What Order The guidance from both research teams is blunt: treat every secret the LiteLLM environment could reach as compromised. That covers secrets on disk, in memory, injected into CI jobs, and anything retrievable through instance metadata services. Work down by blast radius: Priority Credential type Why it comes first 1 Cloud IAM keys (AWS, GCP, Azure) Direct control of infrastructure, data stores, and billing. This is where attackers monetize fastest. 2 GitHub and GitLab PATs, package publishing tokens These let an attacker poison your releases and turn your company into the next link in the supply chain. 3 Kubernetes service account tokens and kubeconfigs Lateral movement across clusters was built into the payload, not a theoretical risk. 4 Database passwords and third-party API keys Dumped in plain text in the archive, often with no attribution, so nobody will warn you they leaked. 5 AI provider API keys Billing abuse, quota theft, and access to whatever data flows through your LLM routing layer. One word matters more than the rest of this article: revoke, don’t just rotate. That