Table of Contents

Reach SOC 2 Compliance in 6 Weeks or Less.

  /

  / SOC 2 Password Requirements: What Auditors Check

SOC 2 Password Requirements: What Auditors Check

Most teams walk into a SOC 2 audit expecting standard requirements for their password policy: minimum length, 90-day rotation, one uppercase letter, one symbol, and so on.
But there is no such checklist. The AICPA never published a list of mandatory password rules, and the federal guidance that most auditors lean on has thrown out half of what passed for best practice a decade ago. 

Beyond compliance, this is remains a crucial cybersecurity control: Stolen and brute-forced credentials still drive a large share of breaches, and password policies are the main way to mitigate this risk.

This guide covers what SOC 2 expects around passwords, where those expectations come from, and how to build a policy that satisfies an auditor without making your security worse.

SOC 2 Password Requirements

What Are SOC 2 Password Requirements?

SOC 2 password requirements are the access controls that a service organization implements to govern how passwords are created, stored, enforced, and retired, all in service of the Trust Services Criteria. The important word is controls, not rules. SOC 2 does not hand you a specification. It asks whether your controls are suitably designed and operating effectively to keep unauthorized people out of your systems.

 

The Role of Passwords in the SOC 2 Trust Services Criteria

The Trust Services Criteria, developed by the AICPA, are the evaluation standard for every SOC 2 report. Passwords sit inside the Security category, which is mandatory in all SOC 2 engagements, and specifically inside the Common Criteria series CC6, covering logical and physical access. Passwords are one of the most basic logical access controls you have, and one of the most scrutinized, because CC6 is usually the most evidence-intensive part of the entire audit.

Reach SOC 2 Compliance in 6 Weeks or Less

Schedule Your Free SOC 2 Assessment Today

Relevant Common Criteria: CC6.1, CC6.2, and CC6.3

  • CC6.1 covers the controls that restrict logical access to systems, infrastructure, and data, this is where your password policy, MFA enforcement, and account lockout settings live.
  • CC6.2 governs how access is granted, modified, and removed, meaning your provisioning workflows, access reviews, and offboarding processes are all evaluated here.
  • CC6.3 focuses on the removal of access when it is no longer needed and the management of privileged credentials specifically.

Together, these three criteria map to the full lifecycle of a credential: creation, ongoing use, and retirement. An auditor working through CC6 will expect evidence at every stage.

 

Does SOC 2 Mandate Specific Password Rules?

No. The AICPA is explicit that the Trust Services Criteria do not define the controls an organization must have. You identify and implement controls that meet the criteria, and the auditor evaluates them. That means there is no AICPA-mandated minimum length, no required rotation interval, and no prescribed complexity formula. What the auditor checks is whether your stated controls exist, work, and reasonably prevent unauthorized access.

Insider note: Auditors rarely fail you for choosing a 10-character minimum over 12. They fail you when your written policy says one thing and your actual system configuration says another. Consistency between the policy document and the enforced setting matters far more than the specific number.

Why Password Requirements Matter for SOC 2 Compliance

Why Password Requirements Matter for SOC 2 Compliance

Preventing Unauthorized Access

Credentials are the front door. The 2025 Verizon DBIR found that stolen credentials remained the single most common initial access vector, appearing in 22% of breaches, and that brute force attacks against basic web applications nearly tripled year over year. Strong authentication controls are the difference between an attacker hitting a wall and an attacker walking straight in with a valid login.

Reducing Data Breach Risk

Weak or reused passwords feed credential stuffing, where attackers replay username and password pairs harvested from earlier breaches against your login pages. Reuse is rampant: research from Microsoft’s Digital Defense Report routinely finds that the majority of people reuse passwords across services. A single leaked password elsewhere becomes a working key to your environment unless your controls catch it.

Demonstrating Logical Access Controls to Auditors

SOC 2 is an attestation. It is not enough to be secure; you have to prove it with evidence. Well-designed password controls produce exactly the artifacts an auditor wants: configuration screenshots, enforcement logs, MFA reports, and access review records. Good controls and good evidence are two sides of the same coin, and an internal audit process that routinely collects this evidence makes the formal engagement significantly less stressful.

Core SOC 2 Password Requirements

Although SOC 2 prescribes nothing specific, a defensible password policy almost always addresses the same set of controls. These are what auditors expect to see and what your peers in compliance treat as table stakes.

Minimum Password Length

Length is the strongest single lever for password entropy, and modern guidance favors it over everything else. A common defensible baseline is at least 12 characters for standard user accounts, with longer requirements for service and admin accounts. NIST SP 800-63B recommends that verifiers support passwords up to 64 characters so that passphrases and password-manager output are never truncated, an important implementation detail that many teams overlook.

Password Complexity and Blocklists

Old-style complexity rules, one uppercase, one symbol, one number, are fading, and for good reason. They push users toward predictable substitutions without meaningfully raising entropy. The more effective control is a blocklist: screening new passwords against dictionaries of common and previously breached credentials and rejecting matches. Tools like Have I Been Pwned’s Pwned Passwords API make this straightforward to implement. This stops Password1! from sneaking through even though it technically satisfies a legacy complexity rule.

Password Rotation and History

Forced periodic rotation is the control most teams keep out of habit, and it is also the one that modern guidance most clearly discourages. Rotation pushes users toward predictable patterns, Spring2025 becoming Summer2025, without improving security in any measurable way. Password history settings, which prevent the immediate reuse of recent passwords, still have a place, but blind calendar-based expiry should be replaced with event-driven resets: force a change when there is evidence of compromise, not because the calendar says 90 days have passed.

Account Lockout After Failed Login Attempts

An account lockout policy, or rate limiting that throttles repeated failures, is your primary defense against online brute force and password spraying. Lock or delay after a defined number of failed attempts, log every lockout event for evidence, and make sure the threshold is low enough to catch an attack without generating so much friction that helpdesk tickets pile up. A lockout after five to ten attempts is a reasonable starting point for most environments.

Multi-Factor Authentication (MFA)

MFA is the highest-impact control in this list. It blunts credential theft almost entirely, because a stolen password alone no longer grants access. Auditors increasingly treat MFA on critical and externally facing systems as effectively expected, even though SOC 2 does not name it as mandatory. Any organization that cannot demonstrate MFA coverage on email, the identity provider, cloud consoles, and privileged access should expect that gap to surface as a finding.

Pro Tip: Not all MFA is equal.

Not all MFA is equal. Phishing-resistant factors such as FIDO2 or WebAuthn security keys sit at the top tier. SMS and push-notification codes are far better than nothing but remain vulnerable to SIM swapping and push-bombing. Reserve the strongest factors for privileged accounts and anything internet-facing.

Secure Password Storage and Encryption

Passwords must never be stored in plain text. Store them as salted, one-way hashes using a slow, adaptive algorithm such as Argon2, bcrypt, or scrypt, as recommended by the OWASP Password Storage Cheat Sheet. Credentials in transit should be protected with encryption in transit using TLS, and vaulted secrets should be protected with encryption at rest. This is where password hashing stops a stolen database from becoming a usable credential dump, an attacker who exfiltrates properly hashed records gains very little.

Privileged and Admin Password Handling

Privileged accounts deserve stricter treatment under CC6.3. Apply least privilege, enforce MFA without exception, and manage shared or root credentials through a Privileged Access Management (PAM) tool or a secrets vault rather than a spreadsheet or shared document. Rotate privileged credentials on personnel change and after any suspected exposure. The risk associated with a compromised admin account is categorically different from that of a compromised standard user account, and your controls should reflect that.

How SOC 2 Password Requirements Align with NIST Guidelines

NIST SP 800-63B Recommendations

NIST SP 800-63B, the federal Digital Identity Guidelines, is the reference most auditors and security teams default to for password controls. Its fourth revision, finalized in the 2024–2025 window, sets a minimum length of 8 characters, recommends 15 or more when a password is the only authenticator, mandates screening against breached-credential lists, and tells verifiers to support long passphrases. Crucially, it also tells organizations to stop requiring arbitrary periodic rotation and to drop composition rules that don’t demonstrably improve security.

Where SOC 2 and NIST Overlap

SOC 2 does not require NIST compliance, and NIST is guidance rather than law. But the two fit together cleanly. SOC 2 asks whether your access controls are effective; NIST SP 800-63B describes what effective password controls look like in practice. Adopting SP 800-63B gives you a documented, authoritative rationale for every choice in your policy, which is exactly the kind of justification auditors respect. When a control choice is challenged during fieldwork, “we follow NIST SP 800-63B” is a much stronger answer than “we’ve always done it this way.”

Modern vs. Legacy Password Policy Approaches

The gap between legacy habits and current guidance is wide. Forced rotation every 90 days, mandatory complexity characters, and minimum-length requirements of 8 characters were all reasonable assumptions in an era before large-scale breached-credential databases existed. That era is over. The shift in thinking is fundamental: the old model tried to make passwords harder to guess by making them harder to remember, which backfired. The new model makes passwords harder to guess by making them longer and checking them against known compromised values.

Important: If your written SOC 2 password policy still mandates 90-day rotation and four-character-type complexity, you are not just out of date, you are out of step with the very guidance your auditor uses as a benchmark. Update the policy language before the audit, and document the risk-based reasoning behind each change.

Where to Enforce SOC 2 Password Controls

A policy means nothing if it is enforced in one place and ignored in three others. Map your controls to every layer where credentials grant access.

Identity Providers and SSO Systems

Your identity provider and Single Sign-On (SSO) platform are the highest-leverage enforcement point. Configure length, blocklist screening, lockout, and MFA centrally here, and the policy propagates to every connected application automatically. This is also where your cleanest audit evidence lives, a single configuration screenshot from Okta, Google Workspace, or a comparable IdP can cover dozens of downstream systems at once.

Endpoints and Workstations

Laptops and workstations need their own login controls, disk encryption, and screen-lock timeouts. Endpoint security tooling and device management platforms like Microsoft Intune let you enforce and report on these settings across the entire fleet, turning what would otherwise be a manual sampling exercise into a reportable dataset for auditors.

Cloud Applications and SaaS Tools

Every SaaS tool that holds company or customer data is in scope. Wherever possible, route access through SSO so the central policy applies. For tools that cannot federate, enforce MFA and strong passwords directly, and keep a record of the configuration. Auditors will ask about the tools on the periphery, the ones that weren’t connected to SSO because “it wasn’t worth the effort”, and gaps there can widen into findings.

Internal Systems and Databases

Databases, servers, and internal admin panels are prime targets and often the weakest link, because they get provisioned with default credentials and forgotten. Replace defaults immediately, vault service-account secrets, and restrict access by role under CC6.3. A database sitting inside the network perimeter with a default admin password is not a theoretical risk, it is a breach waiting to be discovered.

Building a SOC 2-Compliant Password Policy

Required Elements of a Password Policy

A defensible policy covers minimum length, blocklist screening, lockout thresholds, MFA scope, storage and hashing standards, privileged-account handling, and the conditions that trigger a forced reset. State each control as an enforceable setting, not an aspiration. If you cannot point to where a line is technically enforced in your environment, it does not belong in the policy as a stated control, auditors will look for the evidence, and “we expect users to comply” is not sufficient.

Documenting the Policy

The policy must be a written, version-controlled document with a named owner and a review date. Auditors will ask when it was last reviewed and who approved the current version. Tie each control back to the relevant Common Criteria so the mapping is obvious during fieldwork, an access control policy that links cleanly to CC6.1, CC6.2, and CC6.3 saves hours of back-and-forth and signals to the auditor that your program is deliberately designed rather than assembled under deadline pressure.

Communicating the Policy to Employees

A policy nobody has read is a finding waiting to happen. Distribute it during onboarding, require acknowledgment, and reinforce it through periodic security awareness training. The acknowledgment records themselves become evidence under CC6.1. Training delivery records support the people-and-process side of the criteria and demonstrate that your controls extend beyond technical configuration into human behavior.

Best Practices to Meet and Exceed SOC 2 Password Requirements

Best Practices to Meet and Exceed SOC 2 Password Requirements

Deploy a Password Manager

A password manager is the single most practical upgrade most organizations can make to their credential hygiene. It generates long, unique, random passwords for every account and removes the human incentive to reuse credentials. NIST guidance effectively assumes the use of one, which is why it requires support for 64-character passwords and paste functionality in login fields. Enterprise-grade options like 1Password Business also provide administrator reporting that doubles as audit evidence.

Enforce MFA Across All Critical Systems

Make MFA non-negotiable for email, the identity provider, cloud consoles, source code repositories, and any privileged access. The Snowflake-related breaches of 2024 were a stark reminder that a single account without MFA can compromise an entire environment, and that customers and auditors notice when the control was available and simply not enabled.

Train Employees on Credential Hygiene

Technical controls fail when people work around them. Teach staff why reuse is dangerous, how phishing harvests credentials, and why they should report a suspected compromise immediately rather than hoping the problem goes away. Document the training delivery and completion rates, these records serve as evidence that your organization treats security awareness as an operational discipline, not an annual checkbox.

Replace Default Credentials Immediately

Default and vendor-supplied passwords are among the most reliably exploited weaknesses in any environment. Build a step into every provisioning workflow that forces replacement before a system goes live, and audit periodically for systems that slipped through. The CISA Secure by Design guidance specifically calls out default credential elimination as a foundational expectation, it is not a sophisticated control, but failing to do it is an embarrassing finding.

Conduct Regular User Access Reviews

User access reviews under CC6.2 confirm that the right people still have the right access and that departed staff no longer have any. Pair them with clean offboarding procedures so credentials are revoked the day someone leaves, not the week after. Access reviews also surface orphaned service accounts and over-provisioned roles, the kinds of quiet risks that accumulate between audits and surface as findings when someone finally looks.

Monitor and Log Authentication Events

Log every login, failure, lockout, and privilege escalation, and review the logs for anomalies. Continuous monitoring supports a Zero Trust posture and gives you the authentication evidence auditors expect under CC6 and CC7. Without logs, you cannot prove that your controls worked during the audit period, and in a Type II engagement, the audit period can span twelve months.

Reach SOC 2 Compliance in 6 Weeks or Less

Schedule Your Free SOC 2 Assessment Today

Proving Password Policy Enforcement to Auditors

Evidence Auditors Look For

Auditor evidence for password controls typically includes identity-provider configuration screenshots showing length and lockout settings, MFA enrollment and enforcement reports, blocklist or breach-screening configuration documentation, password hashing and encryption in transit documentation, and dated access-review records. The stronger the alignment between your written policy and the enforced configuration, the smoother the audit. Discrepancies between the two are where findings are born.

Common Pitfalls That Cause Audit Findings

The recurring failures are predictable, which makes them avoidable. A policy that contradicts the live configuration. MFA enabled for most accounts but quietly missing for a handful of admins. Offboarding that lags by days while terminated accounts remain active. Configuration screenshots with no timestamps, making it impossible to confirm they reflect the audit period. Each of these is a finding that an internal audit review before fieldwork begins would catch and resolve.

Automating Evidence Collection

Manual screenshot-gathering is slow and error-prone, especially for SOC 2 Type II, which tests controls over an extended period rather than at a single point in time. Compliance automation tooling that pulls configuration and access data continuously turns evidence collection from a pre-audit scramble into a background process. It also catches drift between audits, the moment when controls quietly slip out of alignment with the documented policy, before that drift becomes a finding.

 

Conclusion

SOC 2 does not hand you a password rulebook, and that is the point. The framework judges whether your access controls actually keep attackers out and whether you can prove it. The strongest policies now lean on length, blocklist screening, MFA, and secure hashing, while dropping the forced rotation and rigid complexity rules that modern guidance has abandoned. Align your policy with NIST SP 800-63B, enforce it consistently across every system, keep clean evidence, and password controls become one of the more manageable parts of your SOC 2 report rather than one of the hardest.

FAQs About SOC 2 Password Requirements

What does the AICPA say about SOC 2 password requirements?

The AICPA does not define specific password controls. The Trust Services Criteria state that organizations must identify and implement their own controls to meet the criteria, and the auditor evaluates whether those controls are controls are suitably designed and operating effectively.

SOC 2 sets no fixed minimum. Most organizations adopt at least 12 characters, drawing on NIST SP 800-63B, which sets an 8-character floor and recommends 15 or more when a password is the only authenticator.

No. SOC 2 does not require it, and current NIST guidance recommends against forced periodic rotation, advising password changes only when there is evidence of compromise.

MFA is not explicitly mandated, but it is treated as effectively expected for critical and externally facing systems. Auditors view its absence on key systems as a meaningful weakness in logical access controls.

Apply least privilege under CC6.3, enforce MFA, and manage shared and admin credentials through a Privileged Access Management tool or secrets vault. Rotate them on personnel change and after any suspected exposure.

Yes, where they access in-scope systems. The revised points of focus for CC6 explicitly call out contractor, vendor, and partner access, so anyone touching your environment should fall under equivalent controls.

A password manager generates and stores long, unique passwords, which directly supports strong authentication under CC6.1 and reduces reuse-driven breach risk. It also makes enforcing length and uniqueness practical across dozens of accounts without placing an unreasonable burden on employees.

Provide configuration evidence from your identity provider, MFA enforcement reports, blocklist and hashing documentation, and dated access-review records. Consistency between your written policy and the enforced settings is what auditors weigh most heavily, and an internal audit run before fieldwork begins is the most reliable way to confirm that consistency exists.

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