PageSourceSearch

https://swarmsec.ai/assets/OwaspCoverage-DpaEK16C.js

js swarmsec.ai collected 2026-10-05 13:56:31 UTC 15,747 bytes, 11 lines download raw bytes

1import{j as e}from"./app-p2CaXbEC.js";import{M as A,i as v,b as c,c as u,f as S,k as y,g as L,h as x}from"./MarketingHeader-Nie64ZP6.js";import{M as w}from"./MarketingLayout-_lEwIomH.js";import{u as I}from"./useDomainSubmit-CZ-qmcSk.js";import{b as s,O as P}from"./site-constants-wo9uIO1B.js";import{C as b}from"./circle-check-Ml7mhfE2.js";import{c as h}from"./Textarea-DvHPPDgP.js";import"./Button-Du9JXjM3.js";import"./Dialog-DYEm-v8U.js";import"./useRestoreOverlayFocus-BYFzu0Om.js";import"./x-FlebFrbD.js";import"./telemetry-IvUomjEH.js";import"./api-base-DwRyaKIg.js";import"./AuthSwarmScene-DsIm4788.js";import"./external-link-BlqlpqYk.js";import"./arrow-right-BFPE35Ba.js";import"./check-CytGTt5B.js";import"./copy-Bu7r6X6s.js";import"./clerk-session-XlKE_8Mo.js";import"./menu-D1V4Ds71.js";import"./normalizeTarget-7eflo_3K.js";/**
2 * @license lucide-react v0.563.0 - ISC
3 *
4 * This source code is licensed under the ISC license.
5 * See the LICENSE file in the root directory of this source tree.
6 */const j=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}]],M=h("circle-dot",j);/**
7 * @license lucide-react v0.563.0 - ISC
8 *
9 * This source code is licensed under the ISC license.
10 * See the LICENSE file in the root directory of this source tree.
11 */const C=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 12h8",key:"1wcyev"}]],k=h("circle-minus",C),d=[{tag:"OWASP · 2021",title:"Top 10 for Web Apps",meta:"The classics. SaaS pen tests are still 70% these.",categories:[{id:"A01",name:"Broken Access Control",note:"IDOR, privilege escalation, cross-tenant leaks",coverage:"full"},{id:"A02",name:"Cryptographic Failures",note:"JWT misuse, leaked secrets, weak ciphers",coverage:"full"},{id:"A03",name:"Injection",note:"SQLi, command, NoSQL, template, header",coverage:"full"},{id:"A04",name:"Insecure Design",note:"Logic flaws, business-flow abuse, chain analysis",coverage:"full"},{id:"A05",name:"Security Misconfiguration",note:"CORS, headers, exposed admin, defaults",coverage:"full"},{id:"A06",name:"Vulnerable Components",note:"Daily CISA KEV ingest · slopsquatting heuristic",coverage:"full"},{id:"A07",name:"Authentication Failures",note:"Clerk, Auth0, Okta, Stytch, Cognito, Firebase, Supabase, custom",coverage:"full"},{id:"A08",name:"Data Integrity Failures",note:"Webhook signature replay, deserialization",coverage:"full"},{id:"A09",name:"Logging & Monitoring",note:"Surfaced as side-effect; not a primary domain",coverage:"partial"},{id:"A10",name:"Server-Side Request Forgery",note:"Internal-IP probes, metadata-endpoint reachability",coverage:"full"}]},{tag:"OWASP · 2023",title:"API Security Top 10",meta:"The boundary every modern SaaS lives or dies on.",categories:[{id:"API1",name:"Broken Object-Level Auth (BOLA)",note:"Every ID parameter tested cross-account",coverage:"full"},{id:"API2",name:"Broken Authentication",note:"JWT, session, refresh, OAuth flows",coverage:"full"},{id:"API3",name:"Object Property-Level Auth",note:"Field-level leakage, mass assignment",coverage:"full"},{id:"API4",name:"Resource Consumption",note:"Rate-limit probing, expensive queries",coverage:"full"},{id:"API5",name:"Function-Level Auth (BFLA)",note:"Admin endpoint exposure, role-bypass",coverage:"full"},{id:"API6",name:"Sensitive Business Flow Abuse",note:"Webhook replay, payment-bypass, refund-loop",coverage:"full"},{id:"API7",name:"Server-Side Request Forgery",note:"Same coverage as A10",coverage:"full"},{id:"API8",name:"Security Misconfiguration",note:"CORS, default routes, error verbosity",coverage:"full"},{id:"API9",name:"Improper Inventory",note:"Shadow / deprecated endpoints, version-leak",coverage:"partial"},{id:"API10",name:"Unsafe API Consumption",note:"Outbound webhook target, third-party trust",coverage:"full"}]},{tag:"OWASP · 2025",title:"Top 10 for LLM Apps",meta:"Where most automated scanners draw a blank.",categories:[{id:"LLM01",name:"Prompt Injection",note:"Direct, indirect, tool-mediated, browser-mediated",coverage:"full"},{id:"LLM02",name:"Sensitive Info Disclosure",note:"Memory leakage, key exfil via proxy",coverage:"full"},{id:"LLM03",name:"Supply Chain",note:"Slopsquatting · model artifacts · weight integrity",coverage:"full"},{id:"LLM04",name:"Data & Model Poisoning",note:"Vector-store poisoning · RAG-ingest paths",coverage:"full"},{id:"LLM05",name:"Improper Output Handling",note:"CVE-2025-32711 EchoLeak class · output→XSS/SQLi",coverage:"full"},{id:"LLM06",name:"Excessive Agency",note:"Tool-allowlist gaps, hosted-MCP scope",coverage:"full"},{id:"LLM07",name:"System Prompt Leakage",note:"Persona extraction via tool calls",coverage:"full"},{id:"LLM08",name:"Vector / Embedding Weakness",note:"Vector-DB auth, embedding-collision",coverage:"full"},{id:"LLM09",name:"Misinformation",note:"Out of scope: content quality, not security",coverage:"none"},{id:"LLM10",name:"Unbounded Consumption",note:"Token-flood, cost-exhaustion",coverage:"full"}]},{tag:"OWASP · 2026",title:"Top 10 for Agentic Apps",meta:"The category most products haven't even noticed yet.",badge:"SHIPPED 04-27",categories:[{id:"ASI01",name:"Agent Goal Hijack",note:"Hidden-prompt redirection, indirect injection",coverage:"full"},{id:"ASI02",name:"Tool Misuse & Exploitation",note:"Unsafe chaining, mani
11pulated tool outputs",coverage:"full"},{id:"ASI03",name:"Identity & Privilege Abuse",note:"Delegated trust, inherited creds, role chains",coverage:"full"},{id:"ASI04",name:"Agentic Supply Chain",note:"CVE-2025-6514 mcp-remote · tool-desc rug-pull",coverage:"full"},{id:"ASI05",name:"Unexpected Code Execution",note:"Agent-generated SQLi, output→exec paths",coverage:"full"},{id:"ASI06",name:"Memory & Context Poisoning",note:"Persistent-memory, vector-store, RAG-ingest",coverage:"full"},{id:"ASI07",name:"Inter-Agent Communication",note:"Multi-agent handoff, message integrity",coverage:"full"},{id:"ASI08",name:"Cascading Failures",note:"Agent-fleet error propagation",coverage:"full"},{id:"ASI09",name:"Human–Agent Trust Exploitation",note:"Output-rendering deception, browser-agent",coverage:"full"},{id:"ASI10",name:"Rogue Agents",note:"Drift detection, scope-bound enforcement",coverage:"partial"}]}],l="/owasp-coverage",O=d.map(t=>({tag:t.tag,full:t.categories.filter(a=>a.coverage==="full").length,partial:t.categories.filter(a=>a.coverage==="partial").length,none:t.categories.filter(a=>a.coverage==="none").length,total:t.categories.length})),W=O.reduce((t,a)=>({items:t.items+a.total,standards:t.standards+1,full:t.full+a.full,partial:t.partial+a.partial,none:t.none+a.none}),{items:0,standards:0,full:0,partial:0,none:0}),g=[{id:"owasp-faq-why-all-four",question:"Why cover all four OWASP standards instead of just the Web Top 10?",answer:"Most pen tests still scope OWASP Web Top 10 (2021). The shape of what gets built has changed. If you ship an LLM endpoint, you have a prompt-injection surface (OWASP LLM, 2025). If you ship an MCP server or agent tools, you have a tool-misuse + memory-poisoning surface (OWASP Agentic, 2026). API endpoints carry their own BOLA and broken-auth surface (OWASP API, 2023). Swarm covers all four because the attack surface a 2026 SaaS product actually carries is the union of all four."},{id:"owasp-faq-1",question:"Does Swarm cover the OWASP Top 10 (Web)?",answer:"Full coverage on 9 of 10 categories. A01 Broken Access Control, A02 Cryptographic Failures, A03 Injection, A04 Insecure Design, A05 Security Misconfiguration, A06 Vulnerable Components (CISA KEV ingest), A07 Authentication Failures (all major IDPs), A08 Data Integrity Failures, A10 SSRF are full. A09 Logging and Monitoring is partial (surfaced as side-effect, not a primary domain)."},{id:"owasp-faq-2",question:"Does Swarm cover the OWASP API Security Top 10?",answer:"Full coverage on 9 of 10 categories. BOLA (API1), Broken Authentication (API2), Object Property-Level Auth (API3), Resource Consumption (API4), BFLA (API5), Sensitive Business Flow Abuse (API6), SSRF (API7), Security Misconfiguration (API8), Unsafe API Consumption (API10) are full. Improper Inventory (API9) is partial: shadow and deprecated endpoints are tested but not exhaustively enumerated."},{id:"owasp-faq-3",question:"Does Swarm cover the OWASP LLM Top 10?",answer:"Full coverage on 9 of 10 categories. LLM01 Prompt Injection (direct, indirect, tool-mediated, browser-mediated), LLM02 Sensitive Info Disclosure, LLM03 Supply Chain (slopsquatting, model artifacts), LLM04 Data and Model Poisoning (vector-store, RAG-ingest), LLM05 Improper Output Handling (CVE-2025-32711 EchoLeak class), LLM06 Excessive Agency, LLM07 System Prompt Leakage, LLM08 Vector and Embedding Weakness, LLM10 Unbounded Consumption are full. LLM09 Misinformation is explicitly out of scope: content quality, not security."},{id:"owasp-faq-4",question:"Does Swarm cover the OWASP Top 10 for Agentic Applications?",answer:"Full coverage on 9 of 10 categories. ASI01 Agent Goal Hijack, ASI02 Tool Misuse and Exploitation, ASI03 Identity and Privilege Abuse, ASI04 Agentic Supply Chain (includes CVE-2025-6514 mcp-remote OAuth RCE), ASI05 Unexpected Code Execution, ASI06 Memory and Context Poisoning, ASI07 Inter-Agent Communication, ASI08 Cascading Failures, ASI09 Human-Agent Trust Exploitation are full. ASI10 Rogue Agents is partial: drift detection and scope-bound enforcement are tested but the full rogue-agent taxonomy is still being mapped."},{id:"owasp-faq-5",question:"Does Swarm test for SSRF?",answer:"Yes. SSRF (A10 in OWASP Top 10 Web, API7 in OWASP API Top 10) is fully covered. Specialists probe internal-IP endpoints, cloud metadata endpoints (AWS, GCP, Azure), and any URL parameter that c
11ould be redirected to internal infrastructure."},{id:"owasp-faq-6",question:"Does Swarm test for prompt injection?",answer:"Yes. Prompt injection (OWASP LLM01) is one of Swarm's core LLM specialisms. Direct injection (user message), indirect injection (retrieved content), tool-mediated injection (tool output treated as instruction), and browser-mediated injection (page content the agent navigates to) are all tested by dedicated specialists."},{id:"owasp-faq-7",question:'What does "partial" coverage mean?',answer:"Partial means the attack class is tested as a side-effect of the engagement or with limited depth, but it is not a primary specialist domain. For example, A09 Logging and Monitoring gaps are surfaced when a specialist observes missing access logging during another test, but Swarm does not run a dedicated logging-audit phase. Partial findings still appear in the report with remediation guidance."}],r={relatedPages:[{href:"/ai-penetration-testing",title:"AI penetration testing",description:"LLM, MCP, and agentic testing with full OWASP LLM coverage."},{href:"/saas-penetration-testing",title:"SaaS penetration testing",description:"Multi-tenant SaaS pen test with full OWASP API Top 10 coverage."},{href:"/security",title:"Security",description:"How Swarm handles customer data and vulnerability disclosure."}],title:"OWASP Coverage: Top 10, API, LLM, Agentic | Swarm",description:"Per-category breakdown of Swarm's coverage across OWASP Top 10 (Web), API Security, LLM, and Agentic Top 10. Real CVE references where applicable.",canonical:`${s}${l}`,totals:W,faqs:g,jsonLd:[{"@context":"https://schema.org","@type":"WebPage","@id":`${s}${l}#webpage`,url:`${s}${l}`,publisher:P,dateModified:"2026-05-04",mainEntity:{"@id":`${s}${l}#itemlist-owasp-2021`}},...d.map(t=>({"@context":"https://schema.org","@type":"ItemList","@id":`${s}${l}#itemlist-${t.tag.replace(/[^a-z0-9]/gi,"-").toLowerCase()}`,name:t.title,description:t.meta,itemListElement:t.categories.map((a,i)=>({"@type":"ListItem",position:i+1,name:`${a.id} ${a.name}`,description:`${a.note} (Coverage: ${a.coverage})`}))})),{"@context":"https://schema.org","@type":"FAQPage",mainEntity:g.map(t=>({"@type":"Question",name:t.question,acceptedAnswer:{"@type":"Answer",text:t.answer}}))},{"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:s},{"@type":"ListItem",position:2,name:"OWASP Coverage",item:`${s}${l}`}]}]},m={full:"Full",partial:"Partial",none:"Out of scope"};function ee(){const{totals:t}=r,a=I();return e.jsxs(w,{title:r.title,description:r.description,canonical:r.canonical,jsonLd:r.jsonLd,children:[e.jsx(A,{}),e.jsx(v,{eyebrow:"OWASP coverage",title:"Four standards. Forty attack classes.",description:"See exactly what Swarm tests across web applications, APIs, LLM systems, and agentic applications—including the categories we only cover partially or leave out.",aside:e.jsxs("div",{className:"owasp-summary","aria-label":"OWASP coverage totals",children:[e.jsxs("div",{children:[e.jsx("strong",{children:t.standards}),e.jsx("span",{children:"standards"})]}),e.jsxs("div",{children:[e.jsx("strong",{children:t.items}),e.jsx("span",{children:"categories"})]}),e.jsxs("div",{children:[e.jsx("strong",{children:t.full}),e.jsx("span",{children:"full"})]}),e.jsxs("div",{children:[e.jsx("strong",{children:t.partial}),e.jsx("span",{children:"partial"})]})]})}),e.jsxs(c,{tone:"canvas",compact:!0,labelledBy:"coverage-map-heading",children:[e.jsx(u,{id:"coverage-map-heading",eyebrow:"At a glance",title:"Scan the coverage before the details.",description:"Each cell is one OWASP category. The rows below explain the exact testing boundary."}),e.jsx("div",{className:"owasp-heatmap",children:d.map(i=>e.jsxs("div",{children:[e.jsxs("span",{children:[e.jsx("strong",{children:i.title}),e.jsx("small",{children:i.tag})]}),e.jsx("div",{"aria-label":`${i.title} category coverage`,children:i.categories.map(n=>e.jsx("i",{className:`is-${n.coverage}`,title:`${n.id} ${n.name}: ${m[n.coverage]}`},n.id))})]},i.tag))}),e.jsxs("div",{className:"owasp-legend","aria-label":"Coverage legend",children:[e.jsxs("span",{children:[e.jsx("i",{className:"is-full"})," Full specialist coverage"]}),e.jsxs("span",{children:[e.jsx("i",{className:"is-partial"})," Tested with limited depth"]}),e.jsxs("span",{children:[e.jsx("i",{className:"is-none"})," Explicitly out of scope"]})]})]}),d.map((i,n)=>{const f=i.categories.filter(o=>o.coverage==="full").length,p=`itemlist-${i.tag.replace(/[^a-z0-9]/gi,"-").toLowerCase()}`;return e.jsxs(c,{id:p,tone:n%2===0?"surface":"soft",compact:!0,labelledBy:`${p}-heading`,className:"owasp-band",children:[e.jsxs("div",{className:"owasp-band__head",children:[e.jsxs("div",{children:[e.jsx("span",{children:i.tag}),e.jsx("h2",{id:`${p}-heading`,children:i.title}),e.jsx("p",{children:i.meta})]}),e.jsxs("strong",{children:[f,e.jsxs("small",{children:["/",i.categories.length," full"]})]})]}),e.jsx("ol",{className:"owasp-band__rows",children:i.categories.map(o=>e.jsxs("li",{className:"owasp-band__row",children:[e.jsx("span",{children:o.id}),e.jsxs("div",{children:[e.jsx("strong",{children:o.name}),e.jsx("small",{children:o.note})]}),e.jsxs("span",{className:`owasp-coverage-badge is-${o.coverage}`,children:[o.coverage==="full"&&e.jsx(b,{size:15,"aria-hidden":"true"}),o.coverage==="partial"&&e.jsx(M,{size:15,"aria-hidden":"true"}),o.coverage==="none"&&e.jsx(k,{size:15,"aria-hidden":"true"}),m[o.coverage]]})]},o.id))})]},i.tag)}),e.jsxs(c,{tone:"canvas",labelledBy:"owasp-faq-heading",children:[e.jsx(u,{id:"owasp-faq-heading",eyebrow:"Coverage questions",title:"What each status means in practice.",centered:!0}),e.jsx(S,{faqs:r.faqs})]}),e.jsxs(c,{tone:"surface",compact:!0,labelledBy:"owasp-related-heading",children:[e.jsx(u,{id:"owasp-related-heading",eyebrow:"Go deeper",title:"Explore the surfaces behind the matrix."}),e.jsx(y,{items:r.relatedPages})]}),e.jsx(c,{tone:"canvas",compact:!0,children:e.jsx(L,{onSubmit:a})}),e.jsx(x,{})]})}
11export{ee as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.