1:"$Sreact.fragment" 2:I[39756,["/_next/static/chunks/3fntmmi971322.js"],"default"] 3:I[8821,["/_next/static/chunks/3fntmmi971322.js","/_next/static/chunks/22aga_6h1t_-r.js"],"default"] 4:I[37457,["/_next/static/chunks/3fntmmi971322.js"],"default"] 5:I[22016,["/_next/static/chunks/3fntmmi971322.js","/_next/static/chunks/0ahwd129-7-30.js"],""] 7:I[97367,["/_next/static/chunks/3fntmmi971322.js"],"OutletBoundary"] 8:"$Sreact.suspense" b:I[97367,["/_next/static/chunks/3fntmmi971322.js"],"ViewportBoundary"] d:I[97367,["/_next/static/chunks/3fntmmi971322.js"],"MetadataBoundary"] f:I[68027,["/_next/static/chunks/3fntmmi971322.js"],"default",1] :HL["/_next/static/chunks/0p5_b9mq-qlz-.css","style"] :HL["/_next/static/media/017d9bea37084d9b-s.p.41rroleoq1br7.woff2","font",{"crossOrigin":"","type":"font/woff2"}] :HL["/_next/static/media/797e433ab948586e-s.p.0r6juujl39pe6.woff2","font",{"crossOrigin":"","type":"font/woff2"}] :HL["/_next/static/media/caa3a2e1cccd8315-s.p.0wgildi0cnwt9.woff2","font",{"crossOrigin":"","type":"font/woff2"}] :HL["/_next/static/chunks/17s1t3rwlqr6e.css","style"] a:X 0:{"P":null,"c":["","docs","open-source","releases","2.3.8"],"q":"","i":false,"f":[[["",{"children":["docs",{"children":["open-source",{"children":[["path","releases/2.3.8","c",[]],{"children":["__PAGE__",{},"$undefined","$undefined",4608]},"$undefined","$undefined",4608]},"$undefined","$undefined",4608]},"$undefined","$undefined",4608]},"$undefined","$undefined",4624],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0p5_b9mq-qlz-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/3fntmmi971322.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","data-theme":"dark","style":{"colorScheme":"dark"},"children":["$","body",null,{"className":"geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$3","errorStyles":[],"errorScripts":[["$","script","script-0",{"src":"/_next/static/chunks/22aga_6h1t_-r.js","async":true,"nonce":"$undefined"}]],"template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","div",null,{"className":"flex min-h-screen flex-col items-center justify-center bg-stone-950 text-stone-100","children":[["$","h1",null,{"className":"text-6xl font-bold tracking-tight text-stone-400","children":"404"}],["$","p",null,{"className":"mt-4 text-lg text-stone-500","children":"Page not found"}],["$","$L5",null,{"href":"/","className":"mt-8 rounded-md bg-stone-800 px-5 py-2.5 text-sm font-medium text-stone-200 transition hover:bg-stone-700","children":"Back to home"}]]}],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":["$L6",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/17s1t3rwlqr6e.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0ahwd129-7-30.js","async":true,"nonce":"$undefined"}]],["$","$L7",null,{"children":["$","$8",null,{"name":"Next.MetadataOutlet","children":"$@9"}]}]]}],{},null,false,null]},null,false,"$a"]},null,false,"$a"]},null,false,"$a"]},null,false,null],["$","$1","h",{"children":[null,["$","$Lb",null,{"children":"$Lc"}],["$","div",null,{"hidden":true,"children":["$","$Ld",null,{"children":["$","$8",null,{"name":"Next.Metadata","children":"$Le"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$f",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0p5_b9mq-qlz-.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"B8hBXTSnfA3UAgbX2EKsx"} a:C c:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] 10:I[29306,["/_next/static/chunks/3fntmmi971322.js","/_next/static/chunks/0ahwd129-7-30.js"],"ProductMenu"] 11:I[5014,["/_next/static/chunks/3fntmmi971322.js","/_next/static/chunks/0ahwd129-7-30.js"],"default"] 12:I[33964,["/_next/static/chunks/3fntmmi971322.js","/_next/static/chunks/0ahwd129-7-30.js"],"PublicMobileNav"] 15:I[27201,["/_next/static/chunks/3fntmmi971322.js"],"IconMark"] 6:["$","div",null,{"className":"bricolage_grotesque_bcc75999-module__ZKECFW__variable relative min-h-screen overflow-x-clip bg-[#07090E] text-[#EAEDF2]","children":[["$","header",null,{"className":"sticky top-0 z-40 border-b border-white/[0.07] bg-[#07090E]/85 backdrop-blur-md","children":["$","div",null,{"className":"mx-auto flex max-w-7xl items-center justify-between gap-4 px-4 py-3.5 sm:px-6","children":[["$","div",null,{"className":"flex min-w-0 items-center gap-8","children":[["$","$L5",null,{"href":"/","className":"font-display inline-flex items-baseline gap-2 text-lg font-bold tracking-tight text-white focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-emerald-400","children":[["$","span",null,{"className":"h-2 w-2 translate-y-[-1px] bg-emerald-400","aria-hidden":"true"}],"ShakerScan"]}],["$","nav",null,{"className":"hidden items-center gap-6 text-sm text-[#98A2B3] lg:flex","aria-label":"Primary","children":[["$","$L10",null,{"items":[{"label":"Scan","href":"/product/scan","description":"Repeatable DAST for web apps and APIs","badge":"$undefined"},{"label":"Hunt","href":"/product/hunt","description":"Adaptive investigation with your coding agent","badge":"$undefined"},{"label":"AI Security","href":"/product/ai-security","description":"Test chat, RAG, agent, and MCP systems","badge":"Preview"},{"label":"Model Intake","href":"/product/model-intake","description":"Check model artifacts before deployment","badge":"Preview"},{"label":"Attack Surface","href":"/product/attack-surface","description":"Endpoint inventory, subdomains, CT monitoring","badge":"$undefined"},{"label":"Connected Devices","href":"/product/connected-devices","description":"TVs, cameras, printers, routers, appliances","badge":"$undefined"}]}],[["$","a","/check/",{"href":"/check/","className":"transition-colors hover:text-white focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-emerald-400","children":"Free check"}],["$","$L5","/docs",{"href":"/docs","className":"transition-colors hover:text-white focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-emerald-400","children":"Docs"}],["$","$L5","/enterprise",{"href":"/enterprise","className":"transition-colors hover:text-white focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-emerald-400 font-semibold text-[#EAEDF2]","children":"Enterprise"}]],["$","a",null,{"href":"https://github.com/andriyze/shakerscan","target":"_blank","rel":"noreferrer","className":"inline-flex items-center gap-1.5 transition-colors hover:text-white focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-emerald-400","children":[["$","$L11",null,{"ref":"$undefined","icon":{"name":"git-fork","size":24,"node":[["circle",{"cx":"12","cy":"18","r":"3","key":"1mpf1b"}],["circle",{"cx":"6","cy":"6","r":"3","key":"1lh9wr"}],["circle",{"cx":"18","cy":"6","r":"3","key":"1h7g24"}],["path",{"d":"M18 9v2c0 .6-.4 1-1 1H7c-.6 0-1-.4-1-1V9","key":"1uq4wg"}],["path",{"d":"M12 12v3","key":"158kv8"}]]},"className":"h-3.5 w-3.5","aria-hidden":"true"}],"GitHub"]}]]}]]}],["$","div",null,{"className":"flex items-center gap-2 sm:gap-4","children":[["$","$L12",null,{"items":[{"label":"Scan","href":"/product/scan"},{"label":"Hunt","href":"/product/hunt"},{"label":"AI Security","href":"/product/ai-security"},{"label":"Model Intake","href":"/product/model-intake"},{"label":"Attack Surface","href":"/product/attack-surface"},{"label":"Connected Devices","href":"/product/connected-devices"},{"label":"Free check","href":"/check/","isAnchor":true,"emphasis":false},{"label":"Docs","href":"/docs","isAnchor":false,"emphasis":false},{"label":"Enterprise","href":"/enterprise","isAnchor":false,"emphasis":true},{"label":"GitHub","href":"https://github.com/andriyze/shakerscan"},{"label":"Open Source","href":"/open-source"}]}],["$","$L5",null,{"href":"/open-source#install","className":"rounded-lg bg-emerald-400 px-3.5 py-2 text-sm font-semibold text-emerald-950 transition-colors hover:bg-emerald-300 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-emerald-400","children":"Install ShakerScan"}]]}]]}]}],"$L13","$L14"]}] 9:null e:[["$","title","0",{"children":"ShakerScan 2.3.8 — ShakerScan Docs"}],["$","meta","1",{"name":"description","content":"A scan's report tells the truth about what it examined, keeps every finding it observed, and says what to do next. Found by scanning real sites and fixtures…"}],["$","meta","2",{"name":"robots","content":"index, follow"}],["$","link","3",{"rel":"canonical","href":"https://shakerscan.com/docs/open-source/releases/2.3.8"}],["$","meta","4",{"property":"og:title","content":"ShakerScan 2.3.8 — ShakerScan Docs"}],["$","meta","5",{"property":"og:description","content":"A scan's report tells the truth about what it examined, keeps every finding it observed, and says what to do next. Found by scanning real sites and fixtures…"}],["$","meta","6",{"property":"og:url","content":"https://shakerscan.com/docs/open-source/releases/2.3.8"}],["$","meta","7",{"property":"og:site_name","content":"ShakerScan"}],["$","meta","8",{"property":"og:type","content":"article"}],["$","meta","9",{"name":"twitter:card","content":"summary"}],["$","meta","10",{"name":"twitter:title","content":"ShakerScan 2.3.8 — ShakerScan Docs"}],["$","meta","11",{"name":"twitter:description","content":"A scan's report tells the truth about what it examined, keeps every finding it observed, and says what to do next. Found by scanning real sites and fixtures…"}],["$","link","12",{"rel":"icon","href":"/favicon.svg","type":"image/svg+xml"}],["$","link","13",{"rel":"apple-touch-icon","href":"/apple-icon.svg","type":"image/svg+xml"}],["$","$L15","14",{}]] 13:["$","div",null,{"className":"mx-auto max-w-7xl px-4 py-8 sm:px-6 sm:py-12 lg:grid lg:grid-cols-[230px_minmax(0,1fr)] lg:gap-10 xl:grid-cols-[230px_minmax(0,1fr)_200px]","children":[["$","aside",null,{"className":"lg:sticky lg:top-20 lg:self-start","children":[["$","details",null,{"className":"rounded-lg border border-white/10 bg-[#0C1118] lg:hidden","children":[["$","summary",null,{"className":"cursor-pointer px-4 py-3 text-sm font-medium text-white","children":"Documentation menu"}],["$","div",null,{"className":"border-t border-white/[0.07] px-4 py-4","children":["$","nav",null,{"aria-label":"Open-source documentation","className":"space-y-6","children":[["$","$L5",null,{"href":"/docs/open-source","className":"block text-sm font-semibold text-white hover:text-emerald-200","children":"Documentation home"}],[["$","div","Getting started",{"children":[["$","h2",null,{"className":"font-mono text-[10px] tracking-[0.2em] text-[#5F6B7A] uppercase","children":"Getting started"}],["$","ul",null,{"className":"mt-2.5 space-y-1","children":[["$","li","README.md",{"children":["$","$L5",null,{"href":"/docs/open-source/readme","aria-current":"$undefined","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"README: install and first scan"}]}],["$","li","WALKTHROUGH.md",{"children":["$","$L5",null,{"href":"/docs/open-source/walkthrough","aria-current":"$undefined","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"First-run walkthrough"}]}],["$","li","docs/upgrade-and-rollback.md",{"children":["$","$L5",null,{"href":"/docs/open-source/upgrade-and-rollback","aria-current":"$undefined","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Upgrade and rollback"}]}],["$","li","docs/client.md",{"children":["$","$L5",null,{"href":"/docs/open-source/client","aria-current":"$undefined","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Client, CLI and public checks"}]}],["$","li","skills/README.md",{"children":["$","$L5",null,{"href":"/docs/open-source/skills","aria-current":"$undefined","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Agent skills and setup"}]}]]}]]}],["$","div","Workflows",{"children":[["$","h2",null,{"className":"font-mono text-[10px] tracking-[0.2em] text-[#5F6B7A] uppercase","children":"Workflows"}],["$","ul",null,{"className":"mt-2.5 space-y-1","children":[["$","li","docs/product-model.md",{"children":["$","$L5",null,{"href":"/docs/open-source/product-model","aria-current":"$undefined","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Product model and vocabulary"}]}],["$","li","docs/hunt-architecture.md",{"children":["$","$L5",null,{"href":"/docs/open-source/hunt-architecture","aria-current":"$undefined","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Hunt architecture"}]}],["$","li","docs/hunt-authorization-workflow.md",{"children":["$","$L5",null,{"href":"/docs/open-source/hunt-authorization-workflow","aria-current":"$undefined","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Hunt authorization workflow"}]}],["$","li","docs/hunt-authorization-behavior.md",{"children":["$","$L5",null,{"href":"/docs/open-source/hunt-authorization-behavior","aria-current":"$undefined","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Hunt authorization behavior"}]}],"$L16","$L17","$L18"]}]]}],"$L19","$L1a"],"$L1b"]}]}]]}],"$L1c"]}],"$L1d","$L1e"]}] 14:["$","footer",null,{"className":"border-t border-white/[0.07]","children":["$","div",null,{"className":"mx-auto max-w-7xl px-4 py-12 sm:px-6 sm:py-16","children":[["$","div",null,{"className":"grid gap-10 sm:grid-cols-2 lg:grid-cols-[1.4fr_1fr_1fr_1fr]","children":[["$","div",null,{"children":[["$","$L5",null,{"href":"/","className":"font-display inline-flex items-baseline gap-2 text-lg font-bold tracking-tight text-white","children":[["$","span",null,{"className":"h-2 w-2 translate-y-[-1px] bg-emerald-400","aria-hidden":"true"}],"ShakerScan"]}],["$","p",null,{"className":"mt-3 max-w-xs text-sm leading-6 text-[#7C8798]","children":"Open-source security testing platform for web applications, APIs, AI systems, and network-connected devices. Self-hosted in Docker."}],["$","p",null,{"className":"mt-4 text-xs leading-5 text-[#5F6B7A]","children":"Only test systems you own or are explicitly authorized to assess."}]]}],[["$","div","Product",{"children":[["$","h4",null,{"className":"font-mono text-[11px] tracking-[0.22em] text-[#5F6B7A] uppercase","children":"Product"}],["$","ul",null,{"className":"mt-4 space-y-2.5","children":[["$","li","/product/scan",{"children":["$","$L5",null,{"href":"/product/scan","className":"inline-flex items-center gap-1 text-sm text-[#98A2B3] transition-colors hover:text-white","children":"Scan"}]}],["$","li","/product/hunt",{"children":["$","$L5",null,{"href":"/product/hunt","className":"inline-flex items-center gap-1 text-sm text-[#98A2B3] transition-colors hover:text-white","children":"Hunt"}]}],["$","li","/product/ai-security",{"children":["$","$L5",null,{"href":"/product/ai-security","className":"inline-flex items-center gap-1 text-sm text-[#98A2B3] transition-colors hover:text-white","children":"AI Security"}]}],["$","li","/product/model-intake",{"children":["$","$L5",null,{"href":"/product/model-intake","className":"inline-flex items-center gap-1 text-sm text-[#98A2B3] transition-colors hover:text-white","children":"Model Intake"}]}],["$","li","/product/attack-surface",{"children":["$","$L5",null,{"href":"/product/attack-surface","className":"inline-flex items-center gap-1 text-sm text-[#98A2B3] transition-colors hover:text-white","children":"Attack Surface"}]}],["$","li","/product/connected-devices",{"children":["$","$L5",null,{"href":"/product/connected-devices","className":"inline-flex items-center gap-1 text-sm text-[#98A2B3] transition-colors hover:text-white","children":"Connected Devices"}]}]]}]]}],["$","div","Resources",{"children":[["$","h4",null,{"className":"font-mono text-[11px] tracking-[0.22em] text-[#5F6B7A] uppercase","children":"Resources"}],["$","ul",null,{"className":"mt-4 space-y-2.5","children":[["$","li","/open-source",{"children":["$","$L5",null,{"href":"/open-source","className":"inline-flex items-center gap-1 text-sm text-[#98A2B3] transition-colors hover:text-white","children":"Open Source"}]}],["$","li","/check/",{"children":["$","a",null,{"href":"/check/","className":"inline-flex items-center gap-1 text-sm text-[#98A2B3] transition-colors hover:text-white","children":"Free posture check"}]}],["$","li","/docs",{"children":["$","$L5",null,{"href":"/docs","className":"inline-flex items-center gap-1 text-sm text-[#98A2B3] transition-colors hover:text-white","children":"Documentation"}]}],["$","li","/research",{"children":["$","$L5",null,{"href":"/research","className":"inline-flex items-center gap-1 text-sm text-[#98A2B3] transition-colors hover:text-white","children":"Research"}]}],["$","li","/about",{"children":["$","$L5",null,{"href":"/about","className":"inline-flex items-center gap-1 text-sm text-[#98A2B3] transition-colors hover:text-white","children":"About"}]}]]}]]}],["$","div","Trust",{"children":[["$","h4",null,{"className":"font-mono text-[11px] tracking-[0.22em] text-[#5F6B7A] uppercase","children":"Trust"}],["$","ul",null,{"className":"mt-4 space-y-2.5","children":[["$","li","/security",{"children":["$","$L5",null,{"href":"/security","className":"inline-flex items-center gap-1 text-sm text-[#98A2B3] transition-colors hover:text-white","children":"Security"}]}],"$L1f","$L20","$L21"]}]]}]]]}],"$L22"]}]}] 16:["$","li","docs/AI_TEST_WORKFLOWS.md",{"children":["$","$L5",null,{"href":"/docs/open-source/AI_TEST_WORKFLOWS","aria-current":"$undefined","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"AI test workflows"}]}] 17:["$","li","docs/connected-device-security.md",{"children":["$","$L5",null,{"href":"/docs/open-source/connected-device-security","aria-current":"$undefined","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Connected-device security"}]}] 18:["$","li","docs/model-intake-security-review-roadmap.md",{"children":["$","$L5",null,{"href":"/docs/open-source/model-intake-security-review-roadmap","aria-current":"$undefined","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Model Intake boundary"}]}] 19:["$","div","Architecture and operations",{"children":[["$","h2",null,{"className":"font-mono text-[10px] tracking-[0.2em] text-[#5F6B7A] uppercase","children":"Architecture and operations"}],["$","ul",null,{"className":"mt-2.5 space-y-1","children":[["$","li","docs/dast-asm-architecture.md",{"children":["$","$L5",null,{"href":"/docs/open-source/dast-asm-architecture","aria-current":"$undefined","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"DAST execution and Continuous ASM"}]}],["$","li","docs/multi-node-guide.md",{"children":["$","$L5",null,{"href":"/docs/open-source/multi-node-guide","aria-current":"$undefined","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Multi-node Fleet guide"}]}],["$","li","docs/multi-node-architecture.md",{"children":["$","$L5",null,{"href":"/docs/open-source/multi-node-architecture","aria-current":"$undefined","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Multi-node architecture"}]}],["$","li","docs/mcp.md",{"children":["$","$L5",null,{"href":"/docs/open-source/mcp","aria-current":"$undefined","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"MCP adapter"}]}],["$","li","docs/owasp-coverage-matrix.md",{"children":["$","$L5",null,{"href":"/docs/open-source/owasp-coverage-matrix","aria-current":"$undefined","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"OWASP coverage matrix"}]}],["$","li","docs/functionality-reference.md",{"children":["$","$L5",null,{"href":"/docs/open-source/functionality-reference","aria-current":"$undefined","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Functionality reference"}]}]]}]]}] 1a:["$","div","Releases and process",{"children":[["$","h2",null,{"className":"font-mono text-[10px] tracking-[0.2em] text-[#5F6B7A] uppercase","children":"Releases and process"}],["$","ul",null,{"className":"mt-2.5 space-y-1","children":[["$","li","docs/release-process.md",{"children":["$","$L5",null,{"href":"/docs/open-source/release-process","aria-current":"$undefined","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Release process"}]}],["$","li","docs/sbom.md",{"children":["$","$L5",null,{"href":"/docs/open-source/sbom","aria-current":"$undefined","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Release SBOMs"}]}],["$","li","docs/releases/README.md",{"children":["$","$L5",null,{"href":"/docs/open-source/releases/README","aria-current":"$undefined","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Release notes index"}]}],["$","li","RELEASES.md",{"children":["$","$L5",null,{"href":"/docs/open-source/release-mapping","aria-current":"$undefined","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Release mapping"}]}],["$","li","benchmarks/README.md",{"children":["$","$L5",null,{"href":"/docs/open-source/benchmarks","aria-current":"$undefined","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Benchmark fixtures"}]}],["$","li","AGENTS.md",{"children":["$","$L5",null,{"href":"/docs/open-source/agents","aria-current":"$undefined","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Agent operating policy"}]}]]}]]}] 1b:["$","div",null,{"className":"border-t border-white/[0.07] pt-4 text-xs leading-5 text-[#5F6B7A]","children":["Rendered from"," ",["$","a",null,{"href":"https://github.com/andriyze/shakerscan/tree/v2.5.4/docs","target":"_blank","rel":"noreferrer","className":"inline-flex items-center gap-1 text-[#98A2B3] hover:text-white","children":["v2.5.4"," ",["$","$L11",null,{"ref":"$undefined","icon":{"name":"external-link","size":24,"node":[["path",{"d":"M15 3h6v6","key":"1q9fwt"}],["path",{"d":"M10 14 21 3","key":"gplh6r"}],["path",{"d":"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6","key":"a6xqqp"}]]},"className":"h-3 w-3","aria-hidden":"true"}]]}],", the current stable channel."]}] 1c:["$","div",null,{"className":"hidden max-h-[calc(100vh-6rem)] overflow-y-auto pr-2 lg:block","children":"$13:props:children:0:props:children:0:props:children:1:props:children"}] 1d:["$","main",null,{"className":"mt-8 min-w-0 lg:mt-0","children":[["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https://shakerscan.com/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Docs\",\"item\":\"https://shakerscan.com/docs\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Open Source\",\"item\":\"https://shakerscan.com/docs/open-source\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"ShakerScan 2.3.8\",\"item\":\"https://shakerscan.com/docs/open-source/releases/2.3.8\"}]}"}}],["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"TechArticle\",\"headline\":\"ShakerScan 2.3.8\",\"description\":\"A scan's report tells the truth about what it examined, keeps every finding it observed, and says what to do next. Found by scanning real sites and fixtures…\",\"url\":\"https://shakerscan.com/docs/open-source/releases/2.3.8\",\"version\":\"2.5.4\",\"inLanguage\":\"en\",\"author\":{\"@type\":\"Organization\",\"name\":\"ShakerScan\",\"url\":\"https://shakerscan.com\"},\"isPartOf\":{\"@type\":\"WebSite\",\"name\":\"ShakerScan\",\"url\":\"https://shakerscan.com\"}}"}}],["$","nav",null,{"className":"font-mono text-[11px] tracking-wide text-[#5F6B7A] uppercase","aria-label":"Breadcrumb","children":[["$","$L5",null,{"href":"/docs","className":"transition-colors hover:text-[#98A2B3]","children":"Docs"}],["$","span",null,{"className":"mx-2 text-white/20","children":"/"}],["$","$L5",null,{"href":"/docs/open-source","className":"transition-colors hover:text-[#98A2B3]","children":"Open Source"}],["$","span",null,{"className":"mx-2 text-white/20","children":"/"}],["$","span",null,{"className":"normal-case","children":"docs/releases/2.3.8.md"}]]}],["$","div",null,{"className":"mt-4 flex flex-wrap items-center gap-x-5 gap-y-2 border-b border-white/[0.07] pb-4 text-xs text-[#7C8798]","children":[["$","span",null,{"children":["Pinned to ",["$","span",null,{"className":"font-mono text-[#C6CDD8]","children":"v2.5.4"}]]}],["$","a",null,{"href":"https://github.com/andriyze/shakerscan/blob/v2.5.4/docs/releases/2.3.8.md","target":"_blank","rel":"noreferrer","className":"inline-flex items-center gap-1 text-[#98A2B3] hover:text-white","children":["View source on GitHub ",["$","$L11",null,{"ref":"$undefined","icon":"$1b:props:children:2:props:children:2:props:icon","className":"h-3 w-3","aria-hidden":"true"}]]}],["$","a",null,{"href":"https://github.com/andriyze/shakerscan/issues","target":"_blank","rel":"noreferrer","className":"inline-flex items-center gap-1 text-[#98A2B3] hover:text-white","children":["Report an issue ",["$","$L11",null,{"ref":"$undefined","icon":"$1b:props:children:2:props:children:2:props:icon","className":"h-3 w-3","aria-hidden":"true"}]]}]]}],["$","article",null,{"className":"mt-6","children":["$","div",null,{"className":"oss-markdown","children":[["$","h1","h1-0",{"id":"shakerscan-238","children":["$","a",null,{"href":"#shakerscan-238","className":"oss-heading-anchor","children":"ShakerScan 2.3.8"}]}],"\n",["$","p","p-0",{"children":"A scan's report tells the truth about what it examined, keeps every finding it observed, and says\nwhat to do next. Found by scanning real sites and fixtures on the rebuilt 2.3.7 fleet and reading\nthe result as an operator would: a thorough scan of a production site graded A* over an origin it\nnever examined, a static crawl that hit its output cap threw its records away, ten missing-header\nfindings persisted as one row, and the page said \"authentication challenge\" for a redirect.\nUpgrade in place from 2.3.7; 0.8.18 remains the oldest directly certified upgrade base. No change to\nthe deterministic proof boundary."}],"\n",["$","h2","h2-0",{"id":"changes","children":["$","a",null,{"href":"#changes","className":"oss-heading-anchor","children":"Changes"}]}],"\n",["$","h3","h3-0",{"id":"what-a-scan-examines-and-what-it-says-about-it-170","children":"$L23"}],"\n","$L24","\n","$L25","\n","$L26","\n","$L27","\n","$L28","\n","$L29","\n","$L2a"]}]}],"$L2b"]}] 1e:["$","aside",null,{"className":"hidden xl:sticky xl:top-20 xl:block xl:self-start","children":["$","nav",null,{"aria-label":"On this page","children":[["$","h2",null,{"className":"font-mono text-[10px] tracking-[0.2em] text-[#5F6B7A] uppercase","children":"On this page"}],["$","ul",null,{"className":"mt-2.5 max-h-[calc(100vh-8rem)] space-y-1 overflow-y-auto border-l border-white/[0.07] pl-3 text-xs leading-5","children":[["$","li","changes-2",{"children":["$","a",null,{"href":"#changes","className":"block text-[#98A2B3] hover:text-white ","children":"Changes"}]}],["$","li","what-a-scan-examines-and-what-it-says-about-it-170-3",{"children":["$","a",null,{"href":"#what-a-scan-examines-and-what-it-says-about-it-170","className":"block text-[#98A2B3] hover:text-white pl-3 text-[#7C8798]","children":"What a scan examines, and what it says about it (#170)"}]}],["$","li","findings-170-3",{"children":["$","a",null,{"href":"#findings-170","className":"block text-[#98A2B3] hover:text-white pl-3 text-[#7C8798]","children":"Findings (#170)"}]}],["$","li","policy-and-authorization-170-3",{"children":["$","a",null,{"href":"#policy-and-authorization-170","className":"block text-[#98A2B3] hover:text-white pl-3 text-[#7C8798]","children":"Policy and authorization (#170)"}]}],["$","li","scan-report-page-170-3",{"children":["$","a",null,{"href":"#scan-report-page-170","className":"block text-[#98A2B3] hover:text-white pl-3 text-[#7C8798]","children":"Scan report page (#170)"}]}]]}]]}]}] 1f:["$","li","/vulnerability-disclosure",{"children":["$","$L5",null,{"href":"/vulnerability-disclosure","className":"inline-flex items-center gap-1 text-sm text-[#98A2B3] transition-colors hover:text-white","children":"Vulnerability disclosure"}]}] 20:["$","li","/privacy",{"children":["$","$L5",null,{"href":"/privacy","className":"inline-flex items-center gap-1 text-sm text-[#98A2B3] transition-colors hover:text-white","children":"Privacy"}]}] 21:["$","li","/terms",{"children":["$","$L5",null,{"href":"/terms","className":"inline-flex items-center gap-1 text-sm text-[#98A2B3] transition-colors hover:text-white","children":"Terms"}]}] 22:["$","div",null,{"className":"mt-12 flex flex-col items-center justify-between gap-4 border-t border-white/[0.07] pt-6 sm:flex-row","children":[["$","span",null,{"className":"font-mono text-[11px] text-[#5F6B7A]","children":["© ",2026," ShakerScan. Source available under"," ",["$","a",null,{"href":"https://github.com/andriyze/shakerscan/blob/main/LICENSE","target":"_blank","rel":"noreferrer","className":"text-[#7C8798] underline decoration-white/20 underline-offset-2 transition-colors hover:text-white","children":"AGPL-3.0"}],"."]}],["$","div",null,{"className":"flex flex-wrap items-center justify-center gap-x-5 gap-y-2","children":[[["$","$L5","/enterprise",{"href":"/enterprise","className":"inline-flex items-center gap-1 font-mono text-[11px] text-[#7C8798] transition-colors hover:text-white","children":"Enterprise"}],["$","a","mailto:sales@shakerscan.com",{"href":"mailto:sales@shakerscan.com","target":"_blank","rel":"noreferrer","className":"inline-flex items-center gap-1 font-mono text-[11px] text-[#7C8798] transition-colors hover:text-white","children":["Contact",["$","$L11",null,{"ref":"$undefined","icon":"$1b:props:children:2:props:children:2:props:icon","className":"h-3 w-3","aria-hidden":"true"}]]}]],["$","a",null,{"href":"https://github.com/andriyze/shakerscan","target":"_blank","rel":"noreferrer","className":"inline-flex items-center gap-2 font-mono text-[11px] text-[#7C8798] transition-colors hover:text-white","children":[["$","$L11",null,{"ref":"$undefined","icon":"$6:props:children:0:props:children:props:children:0:props:children:1:props:children:2:props:children:0:props:icon","className":"h-3.5 w-3.5","aria-hidden":"true"}],"github.com/andriyze/shakerscan"]}]]}]]}] 23:["$","a",null,{"href":"#what-a-scan-examines-and-what-it-says-about-it-170","className":"oss-heading-anchor","children":"What a scan examines, and what it says about it (#170)"}] 24:["$","ul","ul-0",{"children":["\n",["$","li","li-0",{"children":"A bound origin that answers every request with a redirect to another origin is reported as\nnot examined, with the redirect named and the serving origin offered as the next step. It was\ngraded A* with \"authentication challenge\" as the explanation."}],"\n",["$","li","li-1",{"children":"Discovery spends the budget the operator authorized. The crawl, content-discovery and browser\nreservations were fixed constants sized for the smallest profile; a thorough scan spent 3% of\nits ceiling. Each producer keeps its share of the ceiling and scales with the profile; the wall\nis the binding dimension."}],"\n",["$","li","li-2",{"children":["A static crawl that produces more output than the retained cap ends ",["$","code","code-0",{"children":"partial/output_truncated"}],"\nwith its records kept. It ended ",["$","code","code-1",{"children":"failed"}]," and discarded everything it had read; the cap now\nfollows the request reservation."]}],"\n",["$","li","li-3",{"children":"Content discovery measures absence instead of inferring it: a few high-entropy paths that cannot\nexist are probed inside the same reservation as the negative control, and a \"hit\" that is\nindistinguishable from one of them is dropped with the measurement recorded. Whether a redirect\nkept the requested path is judged by the producer on the raw pair, before redaction."}],"\n",["$","li","li-4",{"children":[["$","code","code-0",{"children":"robots.txt"}]," and ",["$","code","code-1",{"children":"llms.txt"}]," are mined for paths a crawl cannot reach; markup answers are refused\nand same-origin references only are admitted."]}],"\n",["$","li","li-5",{"children":["A query parameter or body field named by the target is an opaque string, not an identifier:\n",["$","code","code-0",{"children":"_rsc"}],", ",["$","code","code-1",{"children":"_csrf"}],", ",["$","code","code-2",{"children":"user[email]"}]," and ",["$","code","code-3",{"children":"$$filter"}]," no longer fail the manifest. One endpoint a manifest\ncannot express is counted and dropped; it no longer ends the whole scan. Sensitive-path and\nsecret-value rejections still fail the build outright."]}],"\n",["$","li","li-6",{"children":["A verifier with no candidate settles ",["$","code","code-0",{"children":"not_applicable"}],", and so does the proof step that depends\non it. It was blocked as ",["$","code","code-1",{"children":"dependency_failed"}],", which marked every family, shard and grade\nunreliable on any target without a parameterised route. A family whose verifiers all had\nnothing to do reads ",["$","code","code-2",{"children":"complete/no_candidates"}],"."]}],"\n",["$","li","li-7",{"children":["DNS posture survives a forwarder that answers only the common types: a query the system\nresolver times out on is retried over DNS-over-HTTPS for a public name on public addresses\n(",["$","code","code-0",{"children":"SHAKERSCAN_DNS_DOH_RESOLVERS"}],"; internal names never leave the network). DKIM selectors are\nasked for; the fan-out is bounded so records are not lost to contention; a partial result states\n",["$","code","code-1",{"children":"timed_out"}]," or ",["$","code","code-2",{"children":"adapter_failed"}],", not a bounded-output truncation."]}],"\n",["$","li","li-8",{"children":"TLS versions and per-protocol ciphers the probe measured reach the report again."}],"\n"]}] 25:["$","h3","h3-1",{"id":"findings-170","children":["$","a",null,{"href":"#findings-170","className":"oss-heading-anchor","children":"Findings (#170)"}]}] 26:["$","ul","ul-1",{"children":["\n",["$","li","li-0",{"children":"Every finding a run observed is persisted. A CWE-less template match keyed its identity on the\ntool name, so ten missing-header findings on one route collapsed to a single row whose title\nflipped from scan to scan. The identity now uses the template and matcher, then the title."}],"\n",["$","li","li-1",{"children":["Freshness is separate from status: a finding carries when it was first and last observed, the\nfindings page filters by ",["$","code","code-0",{"children":"not_seen_within_days"}]," and marks stale rows, and a scan page separates\nwhat this run observed from what earlier scans found."]}],"\n"]}] 27:["$","h3","h3-2",{"id":"policy-and-authorization-170","children":["$","a",null,{"href":"#policy-and-authorization-170","className":"oss-heading-anchor","children":"Policy and authorization (#170)"}]}] 28:["$","ul","ul-2",{"children":["\n",["$","li","li-0",{"children":[["$","code","code-0",{"children":"active_testing: true"}]," without a preset resolves to ",["$","code","code-1",{"children":"standard_active"}]," (recon, passive templates,\nXSS, SQLi). It resolved to ",["$","code","code-2",{"children":"passive"}],", so an active submission ran nothing active while the page\nread \"Active allowed\". An explicit ",["$","code","code-3",{"children":"preset: passive"}]," keeps the permission without the work."]}],"\n",["$","li","li-1",{"children":"A target has one definition of a standing authorization, so a legacy receipt without an action\nname can no longer deadlock the target between \"authorized\" and \"needs authorization\"."}],"\n",["$","li","li-2",{"children":"Rebuild tolerance: the launcher's status reports whether the running UI matches the checkout."}],"\n"]}] 29:["$","h3","h3-3",{"id":"scan-report-page-170","children":["$","a",null,{"href":"#scan-report-page-170","className":"oss-heading-anchor","children":"Scan report page (#170)"}]}] 2a:["$","ul","ul-3",{"children":["\n",["$","li","li-0",{"children":"The conclusion reads top-down: what this run concluded, whether the target is releasable and\nwhy (the release decision with its rationale or blocking count), how far to trust it, and what\nto do next. Next steps are derived from what limited the run and link to a pre-filled New Scan."}],"\n",["$","li","li-1",{"children":"The facts row keeps observed risk and examination strength distinct and adds what this run found\nand what is carried over unresolved from earlier scans. Scope is one line; posture and coverage\nlimits fold into one list with a count. The Testing tile names the active families that ran, or\nwarns that active testing was allowed and none was selected."}],"\n",["$","li","li-2",{"children":"A parallel scan's page shows live activity during the discovery phase; it was blank until the\nfirst shard started."}],"\n"]}] 2b:["$","p",null,{"className":"mt-10 border-t border-white/[0.07] pt-4 text-xs leading-5 text-[#5F6B7A]","children":["This page is rendered from ",["$","span",null,{"className":"font-mono","children":"docs/releases/2.3.8.md"}]," in the open-source repository at ","v2.5.4",". When documentation and implementation disagree, the code, database schema, and tests at that tag are authoritative."]}]