PageSourceSearch

https://codepathfinder.dev/blog

html codepathfinder.dev collected 2026-10-04 07:36:45 UTC 89,611 bytes, 2 lines download raw bytes

1<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/bb3ef058b751a6ad-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/e4af272ccee01ff0-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" as="image" href="/assets/blog-banner-golang-support.png"/><link rel="preload" as="image" href="https://www.gravatar.com/avatar/93047f1d8e343ca3af1451616829ceb1?s=150"/><link rel="preload" as="image" href="/assets/blog-banner-langflow-kb-traversal.png"/><link rel="stylesheet" href="/_next/static/css/b2ee9cc82f09e6a4.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/e4312b5949f9f3b4.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-a9bcc2864cbd9889.js"/>
1<script src="/_next/static/chunks/4bd1b696-453e70666dd3447f.js" async=""></script>
1<script src="/_next/static/chunks/3794-ce5f9a914877a173.js" async=""></script>
1<script src="/_next/static/chunks/main-app-2800fe17e3bae279.js" async=""></script>
1<script src="/_next/static/chunks/8500-06e8ef666f924640.js" async=""></script>
1<script src="/_next/static/chunks/app/layout-9c0aa011b2baa22d.js" async=""></script>
1<script src="/_next/static/chunks/app/blog/page-3a278625f257d50b.js" async=""></script>
1<link rel="alternate" type="application/rss+xml" title="Code Pathfinder Blog" href="/blog/feed.xml"/><link rel="alternate" type="text/plain" href="/llms.txt" title="LLM-readable summary"/><link rel="alternate" type="text/plain" href="/llms-full.txt" title="Full LLM documentation"/><meta name="next-size-adjust" content=""/><title>Security Engineering Blog - SAST Insights &amp; Best Practices | Code Pathfinder | Code Pathfinder</title><meta name="description" content="Learn about security scanning, SAST tools, vulnerability detection, and reducing false positives. Expert insights from the Code Pathfinder security engineering team on code analysis and AppSec."/><meta name="author" content="Code Pathfinder Team"/><meta name="keywords" content="SAST,security scanning,vulnerability detection,false positives,code analysis,AppSec,security engineering,DevSecOps"/><meta name="robots" content="index, follow"/><meta name="googlebot" content="index, follow"/><link rel="canonical" href="https://codepathfinder.dev/blog"/><meta property="og:title" content="Security Engineering Blog | Code Pathfinder"/><meta property="og:description" content="Security insights, product updates, and engineering articles from the Code Pathfinder team. Learn about SAST, vulnerability detection, and AppSec best practices."/><meta property="og:url" content="https://codepathfinder.dev/blog"/><meta property="og:site_name" content="Code Pathfinder"/><meta property="og:locale" content="en_US"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:site" content="@sshivasurya"/><meta name="twitter:creator" content="@sshivasurya"/><meta name="twitter:title" content="Security Engineering Blog | Code Pathfinder"/><meta name="twitter:description" content="Security insights, SAST best practices, and engineering articles"/><link rel="icon" href="/icon.png?4b25289eaba1eb8d" type="image/png" sizes="64x64"/><link rel="apple-touch-icon" href="/apple-icon?6a23b2510969e468" type="image/png" sizes="180x180"/>
1<script type="application/ld+json">{"@context":"https://schema.org","@type":"WebSite","name":"Code Pathfinder","url":"https://codepathfinder.dev","potentialAction":{"@type":"SearchAction","target":"https://codepathfinder.dev/registry?q={search_term_string}","query-input":"required name=search_term_string"}}</script>
1<script type="application/ld+json">{"@context":"https://schema.org","@type":"Organization","name":"Code Pathfinder","url":"https://codepathfinder.dev","logo":"https://codepathfinder.dev/icon.svg","sameAs":["https://github.com/shivasurya/code-pathfinder","https://x.com/sshivasurya"]}</script>
1<script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script>
1</head><body class="__variable_f367f3 __variable_3c557b antialiased"><div hidden=""><!--$--><!--/$--></div><nav class="sticky top-0 z-50 bg-[#fdfbf3] border-b border-[#e7e0cf] transition-transform duration-300 translate-y-0"><div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"><div class="flex justify-between items-center h-14"><a class="flex items-center" href="/"><span class="inline-block text-xl font-extrabold" style="min-width:190px;letter-spacing:-0.025em;color:var(--ink-900)"><span style="color:#9de500">/</span>code pathfinder<span style="color:#9de500">.</span><span class="animate-pulse text-gray-400">|</span></span></a><div class="hidden lg:flex items-center gap-1"><a class="px-3 py-1.5 text-[13px] font-medium text-gray-600 hover:text-gray-900 rounded transition-colors" href="/">Home</a><a class="px-3 py-1.5 text-[13px] font-medium text-gray-600 hover:text-gray-900 rounded transition-colors" href="/docs">Docs</a><a class="px-3 py-1.5 text-[13px] font-medium text-gray-600 hover:text-gray-900 rounded transition-colors" href="/registry">Registry</a><a class="px-3 py-1.5 text-[13px] font-medium text-gray-600 hover:text-gray-900 rounded transition-colors flex items-center gap-1.5" href="/sdk">SDK<span class="px-1.5 py-0.5 bg-emerald-50 text-emerald-700 rounded text-[10px] font-semibold border border-emerald-200">Ref</span></a><a class="px-3 py-1.5 text-[13px] font-medium text-gray-600 hover:text-gray-900 rounded transition-colors flex items-center gap-1.5" href="/mcp">MCP<span class="px-1.5 py-0.5 bg-[#f7fee7] text-[#4b7d00] rounded text-[10px] font-semibold border border-[#d8f999]">AI</span></a><a class="px-3 py-1.5 text-[13px] font-medium text-gray-600 hover:text-gray-900 rounded transition-colors" href="/blog">Blog</a><a class="px-3 py-1.5 text-[13px] font-medium text-gray-600 hover:text-gray-900 rounded transition-colors" href="/secureflow-ai">SecureFlow AI</a></div><div class="flex items-center gap-3"><a class="text-gray-400 hover:text-gray-900 transition-colors" target="_blank" rel="noopener noreferrer" aria-label="GitHub" href="https://github.com/shivasurya/code-pathfinder"><svg class="w-5 h-5" fill="currentColor" viewBox="0 0 24 24"><path fill-rule="evenodd" d="M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z" clip-rule="evenodd"></path></svg></a><a class="hidden sm:inline-flex bg-[#0a0a0a] text-white px-4 py-1.5 rounded text-[13px] font-semibold hover:bg-[#1a1916] transition-colors" href="/docs/quickstart">Get Started</a><button class="lg:hidden text-gray-600 hover:text-gray-900 p-2" aria-label="Toggle mobile menu" aria-expanded="false"><svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"></path></svg></button></div></div></div></nav><div class="min-h-screen bg-white overflow-x-hidden"><main class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-12"><div class="mb-12"><div class="flex flex-col md:flex-row justify-between items-start md:items-center gap-4 mb-8"><div class="relative w-full md:w-96"><svg class="absolute left-3 top-1/2 transform -translate-y-1/2 w-5 h-5 text-gray-400" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"></path></svg><input type="text" placeholder="Search blog posts..." class="w-full pl-10 pr-16 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-lime-400 focus:border-transparent text-gray-900" style="color:#111827" value=""/><kbd class="absolute right-3 top-1/2 transform -translate-y-1/2 hidden sm:inline-block text-xs text-gray-400 bg-gray-100 px-2 py-1 rounded font-mono">⌘K</kbd></div><div class="flex gap-2"><button class="px-4 py-2 rounded-lg text-sm font-medium transition-colors bg-lime-200 text-gray-900 hover:bg-lime-300">All Posts</button><button class="px-4 py-2 rounded-lg text-sm font-medium transition-colors bg-gray-100 text-gray-700 hover:bg-gray-200">Engineering</button><button class="px-4 py-2 rounded-lg text-sm font-medium transition-colors bg-gray-100 text-gray-700 hover:bg-gray-200">Product</button></div></div><h1 class="text-4xl font-bold text-gray-900">All Posts</h1></div><div class="grid md:grid-cols-2 gap-8 mb-16"><article class="group cursor-pointer"><a href="/blog/announcing-golang-support-code-pathfinder"><div class="rounded-lg aspect-video mb-4 overflow-hidden bg-[#111]"><img src="/assets/blog-banner-golang-support.png" alt="Code Pathfinder now speaks Go" class="w-full h-full object-contain"/></div><div class="space-y-3"><div class="flex flex-wrap items-center gap-2"><span class="inline-block px-3 py-1 bg-lime-200 text-gray-900 rounded text-xs font-medium">Product</span><span class="inline-block px-2 py-1 bg-gray-100 text-gray-600 rounded text-xs">Golang</span><span class="inline-block px-2 py-1 bg-gray-100 text-gray-600 rounded text-xs">Go Security</span><span class="inline-block px-2 py-1 bg-gray-100 text-gray-600 rounded text-xs">Taint Analysis</span><span class="inline-block px-2 py-1 bg-gray-100 text-gray-600 rounded text-xs">Open Source SAST</span></div><h2 class="text-2xl font-bold text-gray-900 group-hover:text-gray-600 transition-colors">Code Pathfinder now speaks Go</h2><p class="text-gray-600 line-clamp-3">Code Pathfinder v2.1.0 adds Go support: 21 security rules, cross-file taint analysis, and type-aware detection across Gin, Echo, Fiber, GORM, sqlx, gRPC, and the standard library.</p><div class="flex items-center gap-3 text-sm text-gray-500"><div class="flex items-center gap-2"><img src="https://www.gravatar.com/avatar/93047f1d8e343ca3af1451616829ceb1?s=150" alt="Shivasurya" class="w-6 h-6 rounded-full"/><span>Shivasurya</span></div><span>•</span><time>April 18, 2026</time></div></div></a></article><article class="group cursor-pointer"><a href="/blog/langflow-knowledge-bases-path-traversal-variant-analysis"><div class="rounded-lg aspect-video mb-4 overflow-hidden bg-[#111]"><img src="/assets/blog-banner-langflow-kb-traversal.png" alt="Same Bug, Different Endpoint: Finding Path Traversal in Langflow with Code Pathfinder" class="w-full h-full object-contain"/></div><div class="space-y-3"><div class="flex flex-wrap items-center gap-2"><span class="inline-block px-3 py-1 bg-lime-200 text-gray-900 rounded text-xs font-medium">Engineering</span><span class="inline-block px-2 py-1 bg-gray-100 text-gray-600 rounded text-xs">Python Security</span><span class="inline-block px-2 py-1 bg-gray-100 text-gray-600 rounded text-xs">
1Path Traversal</span><span class="inline-block px-2 py-1 bg-gray-100 text-gray-600 rounded text-xs">Variant Analysis</span><span class="inline-block px-2 py-1 bg-gray-100 text-gray-600 rounded text-xs">Langflow</span></div><h2 class="text-2xl font-bold text-gray-900 group-hover:text-gray-600 transition-colors">Same Bug, Different Endpoint: Finding Path Traversal in Langflow with Code Pathfinder</h2><p class="text-gray-600 line-clamp-3">How Code Pathfinder&#x27;s variant analysis detected an unpatched path traversal in Langflow&#x27;s Knowledge Bases API, the same bug class as CVE-2026-33497.</p><div class="flex items-center gap-3 text-sm text-gray-500"><div class="flex items-center gap-2"><img src="https://www.gravatar.com/avatar/93047f1d8e343ca3af1451616829ceb1?s=150" alt="Shivasurya" class="w-6 h-6 rounded-full"/><span>Shivasurya</span></div><span>•</span><time>April 15, 2026</time></div></div></a></article></div><div class="grid lg:grid-cols-3 gap-12"><div class="lg:col-span-2"><h2 class="text-3xl font-bold text-gray-900 mb-8">Latest</h2><div class="space-y-8"><article class="group"><a href="/blog/cve-2026-33186-grpc-go-authorization-bypass-malformed-path-header"><div class="space-y-2"><div class="flex flex-wrap items-center gap-2"><span class="inline-block px-3 py-1 bg-gray-100 text-gray-700 rounded text-xs font-medium">Engineering</span><span class="inline-block px-2 py-1 bg-gray-50 text-gray-500 rounded text-xs">GoLang Security</span><span class="inline-block px-2 py-1 bg-gray-50 text-gray-500 rounded text-xs">CVE</span><span class="inline-block px-2 py-1 bg-gray-50 text-gray-500 rounded text-xs">Authorization Bypass</span><span class="inline-block px-2 py-1 bg-gray-50 text-gray-500 rounded text-xs">grpc-go</span></div><h3 class="text-xl font-bold text-gray-900 group-hover:text-gray-600 transition-colors">CVE-2026-33186: Bypassing gRPC-Go Authorization with a Missing Slash</h3><div class="flex items-center gap-3 text-sm text-gray-500"><div class="flex items-center gap-2"><img src="https://www.gravatar.com/avatar/93047f1d8e343ca3af1451616829ceb1?s=150" alt="Shivasurya" class="w-5 h-5 rounded-full"/><span>Shivasurya</span></div><span>|</span><time>April 1, 2026</time></div></div></a><div class="mt-8 border-b border-gray-200"></div></article><article class="group"><a href="/blog/cross-file-dataflow-analysis-taint-tracking-across-your-entire-project"><div class="space-y-2"><div class="flex flex-wrap items-center gap-2"><span class="inline-block px-3 py-1 bg-gray-100 text-gray-700 rounded text-xs font-medium">Engineering</span><span class="inline-block px-2 py-1 bg-gray-50 text-gray-500 rounded text-xs">Dataflow Analysis</span><span class="inline-block px-2 py-1 bg-gray-50 text-gray-500 rounded text-xs">Taint Analysis</span><span class="inline-block px-2 py-1 bg-gray-50 text-gray-500 rounded text-xs">Security</span><span class="inline-block px-2 py-1 bg-gray-50 text-gray-500 rounded text-xs">SAST</span><span class="inline-block px-2 py-1 bg-gray-50 text-gray-500 rounded text-xs">Python SDK</span><span class="inline-block px-2 py-1 bg-gray-50 text-gray-500 rounded text-xs">Engineering</span><span class="inline-block px-2 py-1 bg-gray-50 text-gray-500 rounded text-xs">Cross-File Analysis</span></div><h3 class="text-xl font-bold text-gray-900 group-hover:text-gray-600 transition-colors">Cross-File Dataflow Analysis: Taint Tracking Across Your Entire Project</h3><div class="flex items-center gap-3 text-sm text-gray-500"><div class="flex items-center gap-2"><img src="https://www.gravatar.com/avatar/93047f1d8e343ca3af1451616829ceb1?s=150" alt="Shivasurya" class="w-5 h-5 rounded-full"/><span>Shivasurya</span></div><span>|</span><time>March 17, 2026</time></div></div></a><div class="mt-8 border-b border-gray-200"></div></article><article class="group"><a href="/blog/github-summary-pull-request-comments-integration"><div class="space-y-2"><div class="flex flex-wrap items-center gap-2"><span class="inline-block px-3 py-1 bg-gray-100 text-gray-700 rounded text-xs font-medium">Product</span><span class="inline-block px-2 py-1 bg-gray-50 text-gray-500 rounded text-xs">GitHub Actions</span><span class="inline-block px-2 py-1 bg-gray-50 text-gray-500 rounded text-xs">Pull Request</span><span class="inline-block px-2 py-1 bg-gray-50 text-gray-500 rounded text-xs">SAST</span><span class="inline-block px-2 py-1 bg-gray-50 text-gray-500 rounded text-xs">CI/CD</span><span class="inline-block px-2 py-1 bg-gray-50 text-gray-500 rounded text-xs">GitHub Code Scanning</span><span class="inline-block px-2 py-1 bg-gray-50 text-gray-500 rounded text-xs">CodeQL Alternative</span><span class="inline-block px-2 py-1 bg-gray-50 text-gray-500 rounded text-xs">DevSecOps</span><span class="inline-block px-2 py-1 bg-gray-50 text-gray-500 rounded text-xs">SARIF</span></div><h3 class="text-xl font-bold text-gray-900 group-hover:text-gray-600 transition-colors">
1Automated GitHub PR Security Comments &amp; Inline SAST Findings with Code Pathfinder</h3><div class="flex items-center gap-3 text-sm text-gray-500"><div class="flex items-center gap-2"><img src="https://www.gravatar.com/avatar/93047f1d8e343ca3af1451616829ceb1?s=150" alt="Shivasurya" class="w-5 h-5 rounded-full"/><span>Shivasurya</span></div><span>|</span><time>February 21, 2026</time></div></div></a><div class="mt-8 border-b border-gray-200"></div></article><article class="group"><a href="/blog/mcp-server-code-pathfinder"><div class="space-y-2"><div class="flex flex-wrap items-center gap-2"><span class="inline-block px-3 py-1 bg-gray-100 text-gray-700 rounded text-xs font-medium">Product</span><span class="inline-block px-2 py-1 bg-gray-50 text-gray-500 rounded text-xs">MCP</span><span class="inline-block px-2 py-1 bg-gray-50 text-gray-500 rounded text-xs">Security</span><span class="inline-block px-2 py-1 bg-gray-50 text-gray-500 rounded text-xs">Product</span><span class="inline-block px-2 py-1 bg-gray-50 text-gray-500 rounded text-xs">Code Analysis</span><span class="inline-block px-2 py-1 bg-gray-50 text-gray-500 rounded text-xs">AI Agents</span><span class="inline-block px-2 py-1 bg-gray-50 text-gray-500 rounded text-xs">Static Analysis</span></div><h3 class="text-xl font-bold text-gray-900 group-hover:text-gray-600 transition-colors">Stop Grepping, Start Querying: MCP Server for Code-Pathfinder</h3><div class="flex items-center gap-3 text-sm text-gray-500"><div class="flex items-center gap-2"><img src="https://www.gravatar.com/avatar/93047f1d8e343ca3af1451616829ceb1?s=150" alt="Shivasurya" class="w-5 h-5 rounded-full"/><span>Shivasurya</span></div><span>|</span><time>January 11, 2026</time></div></div></a></article></div><button class="mt-12 px-6 py-3 bg-gray-100 text-gray-900 rounded-lg font-medium hover:bg-gray-200 transition-colors">Load More</button></div><div class="lg:col-span-1"><div class="sticky top-24 bg-[#f7f3e8] rounded-2xl p-8 border border-[#e7e0cf]"><h2 class="text-2xl font-bold text-gray-900 mb-4">
1Start securing your code</h2><p class="text-gray-700 mb-6">Install Code Pathfinder and eliminate false positives from your security workflow.</p><a class="inline-flex items-center px-5 py-3 bg-gray-900 text-white rounded-lg font-medium hover:bg-gray-800 transition-colors" href="/quickstart">Get started<svg class="ml-2 w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"></path></svg></a></div></div></div></main><footer><div class="bg-gradient-to-b from-[#fdfbf3] to-[#f7f3e8] border-t border-[#e7e0cf]"><div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-12"><div class="flex items-end justify-between mb-8"><div><p class="text-xs font-semibold tracking-widest text-lime-600 uppercase mb-1">Registry</p><h3 class="text-xl font-bold text-gray-900">211<!-- --> Security Rules</h3></div><a class="hidden sm:inline-flex items-center gap-1.5 text-sm font-medium text-gray-600 hover:text-gray-900 transition-colors" href="/registry">View full registry<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 8l4 4m0 0l-4 4m4-4H3"></path></svg></a></div><div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4"><div class="bg-white rounded-xl p-5 shadow-sm border border-[#e7e0cf] hover:shadow-md transition-shadow"><a class="flex items-center gap-2.5 mb-4 group" href="/registry/docker"><div class="bg-gradient-to-br from-blue-400 to-blue-600 p-2 rounded-lg flex items-center justify-center shadow-sm"><svg data-prefix="fab" data-icon="docker" class="svg-inline--fa fa-docker w-5 h-5 text-white" role="img" viewBox="0 0 640 512" aria-hidden="true"><path fill="currentColor" d="M349.9 236.3l-66.1 0 0-59.4 66.1 0 0 59.4zm0-204.3l-66.1 0 0 60.7 66.1 0 0-60.7zm78.2 144.8l-66.1 0 0 59.4 66.1 0 0-59.4zM271.8 104.7l-66.1 0 0 60.1 66.1 0 0-60.1zm78.1 0l-66.1 0 0 60.1 66.1 0 0-60.1zm276.8 100c-14.4-9.7-47.6-13.2-73.1-8.4-3.3-24-16.7-44.9-41.1-63.7l-14-9.3-9.3 14c-18.4 27.8-23.4 73.6-3.7 103.8-8.7 4.7-25.8 11.1-48.4 10.7l-434.7 0c-8.7 50.8 5.8 116.8 44 162.1 37.1 43.9 92.7 66.2 165.4 66.2 157.4 0 273.9-72.5 328.4-204.2 21.4 .4 67.6 .1 91.3-45.2 1.5-2.5 6.6-13.2 8.5-17.1l-13.3-8.9zM115.6 176.8l-66 0 0 59.4 66.1 0 0-59.4-.1 0zm78.1 0l-66.1 0 0 59.4 66.1 0 0-59.4zm78.1 0l-66.1 0 0 59.4 66.1 0 0-59.4zm-78.1-72.1l-66.1 0 0 60.1 66.1 0 0-60.1z"></path></svg></div><div><span class="text-gray-900 font-semibold text-sm group-hover:text-lime-600 transition-colors">Docker</span><span class="block text-xs text-gray-500">37<!-- --> rules, <!-- -->4<!-- --> categories</span></div></a><div class="flex flex-wrap gap-1.5"><a class="inline-flex items-center gap-1.5 px-2.5 py-1 bg-[#f7f3e8] border border-[#e7e0cf] rounded-full text-xs text-gray-600 hover:bg-[#ecfcca] hover:border-[#d8f999] hover:text-[#4b7d00] transition-colors" href="/registry/docker/audit">Audit<span class="text-gray-600 font-medium">2</span></a><a class="inline-flex items-center gap-1.5 px-2.5 py-1 bg-[#f7f3e8] border border-[#e7e0cf] rounded-full text-xs text-gray-600 hover:bg-[#ecfcca] hover:border-[#d8f999] hover:text-[#4b7d00] transition-colors" href="/registry/docker/best-practice">Best Practice<span class="text-gray-600 font-medium">28</span></a><a class="inline-flex items-center gap-1.5 px-2.5 py-1 bg-[#f7f3e8] border border-[#e7e0cf] rounded-full text-xs text-gray-600 hover:bg-[#ecfcca] hover:border-[#d8f999] hover:text-[#4b7d00] transition-colors" href="/registry/docker/correctness">Correctness<span class="text-gray-600 font-medium">3</span></a><a class="inline-flex items-center gap-1.5 px-2.5 py-1 bg-[#f7f3e8] border border-[#e7e0cf] rounded-full text-xs text-gray-600 hover:bg-[#ecfcca] hover:border-[#d8f999] hover:text-[#4b7d00] transition-colors" href="/registry/docker/security">Security<span class="text-gray-600 font-medium">4</span></a></div></div><div class="bg-white rounded-xl p-5 shadow-sm border border-[#e7e0cf] hover:shadow-md transition-shadow"><a class="flex items-center gap-2.5 mb-4 group" href="/registry/docker-compose"><div class="bg-gradient-to-br from-cyan-400 to-blue-500 p-2 rounded-lg flex items-center justify-center shadow-sm"><svg data-prefix="fab" data-icon="docker" class="svg-inline--fa fa-docker w-5 h-5 text-white" role="img" viewBox="0 0 640 512" aria-hidden="true">
1<path fill="currentColor" d="M349.9 236.3l-66.1 0 0-59.4 66.1 0 0 59.4zm0-204.3l-66.1 0 0 60.7 66.1 0 0-60.7zm78.2 144.8l-66.1 0 0 59.4 66.1 0 0-59.4zM271.8 104.7l-66.1 0 0 60.1 66.1 0 0-60.1zm78.1 0l-66.1 0 0 60.1 66.1 0 0-60.1zm276.8 100c-14.4-9.7-47.6-13.2-73.1-8.4-3.3-24-16.7-44.9-41.1-63.7l-14-9.3-9.3 14c-18.4 27.8-23.4 73.6-3.7 103.8-8.7 4.7-25.8 11.1-48.4 10.7l-434.7 0c-8.7 50.8 5.8 116.8 44 162.1 37.1 43.9 92.7 66.2 165.4 66.2 157.4 0 273.9-72.5 328.4-204.2 21.4 .4 67.6 .1 91.3-45.2 1.5-2.5 6.6-13.2 8.5-17.1l-13.3-8.9zM115.6 176.8l-66 0 0 59.4 66.1 0 0-59.4-.1 0zm78.1 0l-66.1 0 0 59.4 66.1 0 0-59.4zm78.1 0l-66.1 0 0 59.4 66.1 0 0-59.4zm-78.1-72.1l-66.1 0 0 60.1 66.1 0 0-60.1z"></path></svg></div><div><span class="text-gray-900 font-semibold text-sm group-hover:text-lime-600 transition-colors">Docker Compose</span><span class="block text-xs text-gray-500">10<!-- --> rules, <!-- -->1<!-- --> categories</span></div></a><div class="flex flex-wrap gap-1.5"><a class="inline-flex items-center gap-1.5 px-2.5 py-1 bg-[#f7f3e8] border border-[#e7e0cf] rounded-full text-xs text-gray-600 hover:bg-[#ecfcca] hover:border-[#d8f999] hover:text-[#4b7d00] transition-colors" href="/registry/docker-compose/security">Security<span class="text-gray-600 font-medium">10</span></a></div></div><div class="bg-white rounded-xl p-5 shadow-sm border border-[#e7e0cf] hover:shadow-md transition-shadow"><a class="flex items-center gap-2.5 mb-4 group" href="/registry/python"><div class="bg-gradient-to-br from-blue-500 to-green-500 p-2 rounded-lg flex items-center justify-center shadow-sm"><svg data-prefix="fab" data-icon="python" class="svg-inline--fa fa-python w-5 h-5 text-white" role="img" viewBox="0 0 448 512" aria-hidden="true"><path fill="currentColor" d="M439.8 200.5c-7.7-30.9-22.3-54.2-53.4-54.2l-40.1 0 0 47.4c0 36.8-31.2 67.8-66.8 67.8l-106.8 0c-29.2 0-53.4 25-53.4 54.3l0 101.8c0 29 25.2 46 53.4 54.3 33.8 9.9 66.3 11.7 106.8 0 26.9-7.8 53.4-23.5 53.4-54.3l0-40.7-106.7 0 0-13.6 160.2 0c31.1 0 42.6-21.7 53.4-54.2 11.2-33.5 10.7-65.7 0-108.6zM286.2 444.7a20.4 20.4 0 1 1 0-40.7 20.4 20.4 0 1 1 0 40.7zM167.8 248.1l106.8 0c29.7 0 53.4-24.5 53.4-54.3l0-101.9c0-29-24.4-50.7-53.4-55.6-35.8-5.9-74.7-5.6-106.8 .1-45.2 8-53.4 24.7-53.4 55.6l0 40.7 106.9 0 0 13.6-147 0c-31.1 0-58.3 18.7-66.8 54.2-9.8 40.7-10.2 66.1 0 108.6 7.6 31.6 25.7 54.2 56.8 54.2l36.7 0 0-48.8c0-35.3 30.5-66.4 66.8-66.4zM161.2 64.7a20.4 20.4 0 1 1 0 40.8 20.4 20.4 0 1 1 0-40.8z"></path></svg></div><div><span class="text-gray-900 font-semibold text-sm group-hover:text-lime-600 transition-colors">Python</span><span class="block text-xs text-gray-500">143<!-- --> rules, <!-- -->8<!-- --> categories</span></div></a><div class="flex flex-wrap gap-1.5"><a class="inline-flex items-center gap-1.5 px-2.5 py-1 bg-[#f7f3e8] border border-[#e7e0cf] rounded-full text-xs text-gray-600 hover:bg-[#ecfcca] hover:border-[#d8f999] hover:text-[#4b7d00] transition-colors" href="/registry/python/aws_lambda">AWS Lambda<span class="text-gray-600 font-medium">14</span></a><a class="inline-flex items-center gap-1.5 px-2.5 py-1 bg-[#f7f3e8] border border-[#e7e0cf] rounded-full text-xs text-gray-600 hover:bg-[#ecfcca] hover:border-[#d8f999] hover:text-[#4b7d00] transition-colors" href="/registry/python/cryptography">Cryptography<span class="text-gray-600 font-medium">23</span></a><a class="inline-flex items-center gap-1.5 px-2.5 py-1 bg-[#f7f3e8] border border-[#e7e0cf] rounded-full text-xs text-gray-600 hover:bg-[#ecfcca] hover:border-[#d8f999] hover:text-[#4b7d00] transition-colors" href="/registry/python/django">Django<span class="text-gray-600 font-medium">23</span></a><a class="inline-flex items-center gap-1.5 px-2.5 py-1 bg-[#f7f3e8] border border-[#e7e0cf] rounded-full text-xs text-gray-600 hover:bg-[#ecfcca] hover:border-[#d8f999] hover:text-[#4b7d00] transition-colors" href="/registry/python/flask">Flask<span class="text-gray-600 font-medium">21</span></a><a class="inline-flex items-center gap-1.5 px-2.5 py-1 bg-[#f7f3e8] border border-[#e7e0cf] rounded-full text-xs text-gray-600 hover:bg-[#ecfcca] hover:border-[#d8f999] hover:text-[#4b7d00] transition-colors" href="/registry/python/jwt">JWT<span class="text-gray-600 font-medium">5</span></a><a class="inline-flex items-center gap-1.5 px-2.5 py-1 bg-[#f7f3e8] border border-[#e7e0cf] rounded-full text-xs text-gray-600 hover:bg-[#ecfcca] hover:border-[#d8f999] hover:text-[#4b7d00] transition-colors" href="/registry/python/lang">Python Core<span class="text-gray-600 font-medium">54</span></a><a class="inline-flex items-center gap-1.5 px-2.5 py-1 bg-[#f7f3e8] border border-[#e7e0cf] rounded-full text-xs text-gray-600 hover:bg-[#ecfcca] hover:border-[#d8f999] hover:text-[#4b7d00] transition-colors" href="/registry/python/pyramid">Pyramid<span class="text-gray-600 font-medium">2</span></a><a class="inline-flex items-center gap-1.5 px-2.5 py-1 bg-[#f7f3e8] border border-[#e7e0cf] rounded-full text-xs text-gray-600 hover:bg-[#ecfcca] hover:border-[#d8f999] hover:text-[#4b7d00] transition-colors" href="/registry/python/deserialization">Deserialization<span class="text-gray-600 font-medium">1</span></a></div></div><div class="bg-white rounded-xl p-5 shadow-sm border border-[#e7e0cf] hover:shadow-md transition-shadow"><a class="flex items-center gap-2.5 mb-4 group" href="/registry/golang"><div class="bg-gradient-to-br from-[#00ADD8] to-[#007d9c] p-2 rounded-lg flex items-center justify-center shadow-sm"><svg data-prefix="fab" data-icon="golang" class="svg-inline--fa fa-golang w-5 h-5 text-white" role="img" viewBox="0 0 640 512" aria-hidden="true">
1<path fill="currentColor" d="M400.1 194.8c-10.9 2.8-19.9 4.3-29.1 7.6-7.3 1.9-14.7 3.9-23.2 6.1l-.6 .1c-4.2 1.2-4.6 1.3-8.5-3.2-4.7-5.3-8.1-8.7-14.6-11.9-19.7-9.6-38.7-6.8-56.4 4.7-21.2 13.7-32.1 34-31.8 59.2 .3 25 17.4 45.5 41.2 48.9 22 2.8 39.8-4.6 53.8-20.5 2.1-2.6 4-5.3 6.1-8.3 .8-1 1.5-2.1 2.3-3.3l-60.1 0c-6.5 0-8.1-4-5.9-9.3 4-9.7 11.5-25.9 15.9-34 .9-1.8 3.1-5.8 6.9-5.8l101.1 0c4.5-13.4 11.8-26.9 21.6-39.7 22.7-29.9 49.3-45.5 87.2-52 31.8-5.6 61.7-2.5 88.9 15.9 24.6 16.8 39.8 39.6 43.9 69.5 5.3 42.1-6.9 76.3-36.7 105.6-19.7 20.9-44.9 34-73.9 39.9-5.6 1-11.1 1.5-16.5 2-2.9 .2-5.7 .5-8.5 .8-28.3-.6-54.2-8.7-76-27.4-15.3-13.3-25.9-29.6-31.1-48.5-3.7 7.3-8 14.4-14 21.1-21.6 29.6-50.9 48-87.9 52.9-30.6 4.1-58.9-1.8-83.9-20.5-23-17.5-36.1-40.5-39.5-69.2-4.1-34 5.9-65.4 26.4-91.3 22.2-29 51.5-47.4 87.3-53.9 29.3-6.2 57.3-1.9 82.6 15.3 16.5 10.9 28.3 25.8 36.1 43.9 1.9 2.8 .6 4.4-3.1 5.3zM48.3 200.4c-1.3 0-1.6-.6-.9-1.6l6.6-8.4c.6-.9 2.2-1.5 3.4-1.5l111.3 0c1.2 0 1.5 .9 .9 1.8l-5.3 8.1c-.6 1-2.2 1.9-3.1 1.9l-112.8-.3zM1.2 229.1c-1.2 0-1.6-.7-.9-1.6l6.5-8.4c.6-.9 2.2-1.6 3.4-1.6l142.1 0c1.2 0 1.8 1 1.5 1.9l-2.5 7.5c-.3 1.2-1.5 1.9-2.8 1.9L1.2 229.1zm74.5 26.8c-.6 .9-.3 1.8 .9 1.8l68 .3c.9 0 2.2-.9 2.2-2.1l.6-7.5c0-1.3-.6-2.2-1.9-2.2l-62.3 0c-1.2 0-2.5 .9-3.1 1.9l-4.4 7.8zm501.5-18c-.2-2.6-.3-4.8-.7-7-5.6-30.8-34-48.3-63.6-41.4-29 6.5-47.7 24.9-54.5 54.2-5.6 24.3 6.2 48.9 28.6 58.9 17.2 7.5 34.3 6.6 50.8-1.9 24.6-13.6 38-32.7 39.6-59.5-.1-1.2-.1-2.3-.2-3.3z"></path></svg></div><div><span class="text-gray-900 font-semibold text-sm group-hover:text-lime-600 transition-colors">Go</span><span class="block text-xs text-gray-500">21<!-- --> rules, <!-- -->1<!-- --> categories</span></div></a><div class="flex flex-wrap gap-1.5"><a class="inline-flex items-center gap-1.5 px-2.5 py-1 bg-[#f7f3e8] border border-[#e7e0cf] rounded-full text-xs text-gray-600 hover:bg-[#ecfcca] hover:border-[#d8f999] hover:text-[#4b7d00] transition-colors" href="/registry/golang/security">Security<span class="text-gray-600 font-medium">21</span></a></div></div></div></div></div><div class="bg-gray-950"><div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-10"><div class="grid grid-cols-2 md:grid-cols-6 gap-8"><div class="col-span-2 md:col-span-2"><a class="text-white font-bold text-base" href="/">/code pathfinder.</a><p class="text-gray-400 text-sm mt-2 leading-relaxed">Precise security analysis developers trust</p><div class="flex items-center gap-3 mt-4"><a class="text-gray-400 hover:text-white transition-colors" target="_blank" rel="noopener noreferrer" aria-label="GitHub" href="https://github.com/shivasurya/code-pathfinder"><svg class="w-5 h-5" fill="currentColor" viewBox="0 0 24 24"><path fill-rule="evenodd" d="M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z" clip-rule="evenodd"></path></svg></a><a class="text-gray-400 hover:text-white transition-colors" target="_blank" rel="noopener noreferrer" aria-label="X (Twitter)" href="https://twitter.com/sshivasurya"><svg class="w-5 h-5" fill="currentColor" viewBox="0 0 24 24"><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"></path></svg></a><a class="text-gray-400 hover:text-white transition-colors" target="_blank" rel="noopener noreferrer" aria-label="LinkedIn" href="https://www.linkedin.com/in/shivasurya/"><svg class="w-5 h-5" fill="currentColor" viewBox="0 0 24 24">
1<path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"></path></svg></a><a class="text-gray-400 hover:text-orange-400 transition-colors" title="RSS Feed" aria-label="RSS Feed" href="/blog/feed.xml"><svg class="w-5 h-5" fill="currentColor" viewBox="0 0 24 24"><path d="M6.503 20.752c0 1.794-1.456 3.248-3.251 3.248-1.796 0-3.252-1.454-3.252-3.248 0-1.794 1.456-3.248 3.252-3.248 1.795 0 3.251 1.454 3.251 3.248zm-6.503-12.572v4.811c6.05.062 10.96 4.966 11.022 11.009h4.817c-.062-8.71-7.118-15.758-15.839-15.82zm0-8.18v4.819c12.951.115 23.357 10.71 23.497 23.625h4.503c-.145-15.842-13.058-28.754-28-28.444z"></path></svg></a><a class="pl-3 border-l border-gray-700 text-gray-400 hover:text-white transition-colors flex items-center gap-1.5 text-xs" target="_blank" rel="noopener noreferrer" href="https://github.com/shivasurya/code-pathfinder"><svg class="w-3.5 h-3.5" fill="currentColor" viewBox="0 0 24 24"><path d="M12 .587l3.668 7.431 8.332 1.151-6.064 5.828 1.48 8.279L12 19.896l-7.417 3.937 1.482-8.279L0 9.726l8.332-1.151z"></path></svg>Star on GitHub</a></div></div><div><h3 class="text-white font-semibold text-sm mb-3">Product</h3><ul class="space-y-2"><li><a class="text-gray-400 text-sm hover:text-white transition-colors" href="/secureflow-ai">SecureFlow AI</a></li><li><a class="text-gray-400 text-sm hover:text-white transition-colors" href="/mcp">MCP Server</a></li><li><a class="text-gray-400 text-sm hover:text-white transition-colors" href="/docs/mcp/docker-mcp">Docker MCP</a></li><li><a class="text-gray-400 text-sm hover:text-white transition-colors" href="/docs">Documentation</a></li><li><a class="text-gray-400 text-sm hover:text-white transition-colors" href="/registry">Registry</a></li></ul></div><div><h3 class="text-white font-semibold text-sm mb-3">Resources</h3><ul class="space-y-2"><li><a class="text-gray-400 text-sm hover:text-white transition-colors" href="/docs">Docs</a></li><li><a class="text-gray-400 text-sm hover:text-white transition-colors" href="/blog">Blog</a></li><li><a class="text-gray-400 text-sm hover:text-white transition-colors" href="/docs/changelog">Changelog</a></li><li><a class="text-gray-400 text-sm hover:text-white transition-colors" href="https://github.com/shivasurya/code-pathfinder">GitHub</a></li></ul></div><div><h3 class="text-white font-semibold text-sm mb-3">Community</h3><ul class="space-y-2"><li><a class="text-gray-400 text-sm hover:text-white transition-colors" target="_blank" rel="noopener noreferrer" href="https://github.com/shivasurya/code-pathfinder/blob/main/CONTRIBUTING.md">Contributing</a></li><li><a class="text-gray-400 text-sm hover:text-white transition-colors" target="_blank" rel="noopener noreferrer" href="https://github.com/shivasurya/code-pathfinder/blob/main/CODE_OF_CONDUCT.md">Code of Conduct</a></li><li><a class="text-gray-400 text-sm hover:text-white transition-colors" target="_blank" rel="noopener noreferrer" href="https://github.com/shivasurya/code-pathfinder/issues">Report Bug</a></li><li><a class="text-gray-400 text-sm hover:text-white transition-colors" target="_blank" rel="noopener noreferrer" href="https://github.com/shivasurya/code-pathfinder/discussions">Discussions</a></li></ul></div><div><h3 class="text-white font-semibold text-sm mb-3">Popular Rules</h3><ul class="space-y-2"><li><a class="text-gray-400 text-sm hover:text-white transition-colors" href="/registry/python/django/PYTHON-DJANGO-SEC-001">Django SQL Injection</a></li><li><a class="text-gray-400 text-sm hover:text-white transition-colors" href="/registry/python/flask/PYTHON-FLASK-SEC-002">Flask SSTI</a></li><li><a class="text-gray-400 text-sm hover:text-white transition-colors" href="/registry/python/lang/PYTHON-LANG-SEC-001">Dangerous eval()</a></li><li><a class="text-gray-400 text-sm hover:text-white transition-colors" href="/registry/docker/security/DOCKER-SEC-001">Missing USER</a></li><li><a class="text-gray-400 text-sm hover:text-white transition-colors" href="/registry/python/cryptography/PYTHON-CRYPTO-SEC-001">Weak Cipher (RC4)</a></li><li><a class="text-gray-400 text-sm hover:text-white transition-colors" href="/registry/python/jwt/PYTHON-JWT-SEC-001">JWT Hardcoded Secret</a></li></ul></div></div><div class="mt-10 pt-6 border-t border-gray-800/60 flex flex-col sm:flex-row items-center justify-between gap-2 text-xs text-gray-400"><div>© <!-- -->2026<!-- --> Code Pathfinder. Licensed under<!-- --> <a class="text-gray-300 hover:text-white transition-colors underline underline-offset-2" target="_blank" rel="noopener noreferrer" href="https://github.com/shivasurya/code-pathfinder/blob/main/LICENSE">Apache-2.0</a></div><div class="flex items-center gap-1.5 text-gray-400">Built with<span class="text-red-400">❤</span>
1from Waterloo, Canada<svg class="w-4 h-3 inline-block" viewBox="0 0 40 27" fill="none" xmlns="http://www.w3.org/2000/svg"><rect width="10" height="27" fill="#EF4444"></rect><rect x="10" width="20" height="27" fill="white"></rect><rect x="30" width="10" height="27" fill="#EF4444"></rect><path d="M20 4l1.5 3.5L20 9l-1.5-1.5L20 4zM16 10l2-1 1 2-2 1-1-2zM24 10l-2-1-1 2 2 1 1-2zM17 13l1.5 1 .5 2.5L20 15l1-1.5.5-2.5 1.5-1-1-2H18l-1 2zM15 14l1.5-.5.5 2-1.5.5-.5-2zM25 14l-1.5-.5-.5 2 1.5.5.5-2zM18 18h4v3h-4z" fill="#EF4444"></path></svg></div></div></div></div></footer></div><!--$--><!--/$-->
1<script src="/_next/static/chunks/webpack-a9bcc2864cbd9889.js" id="_R_" async=""></script>
1<script>(self.__next_f=self.__next_f||[]).push([0])</script>
1<script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[3690,[\"8500\",\"static/chunks/8500-06e8ef666f924640.js\",\"7177\",\"static/chunks/app/layout-9c0aa011b2baa22d.js\"],\"PostHogProvider\"]\n3:I[1423,[\"8500\",\"static/chunks/8500-06e8ef666f924640.js\",\"7177\",\"static/chunks/app/layout-9c0aa011b2baa22d.js\"],\"default\"]\n4:I[7121,[],\"\"]\n5:I[4581,[],\"\"]\n6:I[8500,[\"8500\",\"static/chunks/8500-06e8ef666f924640.js\",\"3831\",\"static/chunks/app/blog/page-3a278625f257d50b.js\"],\"\"]\n7:I[2593,[\"8500\",\"static/chunks/8500-06e8ef666f924640.js\",\"3831\",\"static/chunks/app/blog/page-3a278625f257d50b.js\"],\"\"]\ne:I[7123,[],\"default\",1]\n:HL[\"/_next/static/media/bb3ef058b751a6ad-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/e4af272ccee01ff0-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/b2ee9cc82f09e6a4.css\",\"style\"]\n:HL[\"/_next/static/css/e4312b5949f9f3b4.css\",\"style\"]\n8:T2142,"])</script>
1<script>self.__next_f.push([1,"{\"@context\":\"https://schema.org\",\"@type\":\"Blog\",\"name\":\"Code Pathfinder Security Blog\",\"description\":\"Security insights, SAST best practices, and engineering articles\",\"url\":\"https://codepathfinder.dev/blog\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Code Pathfinder\",\"url\":\"https://codepathfinder.dev\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://codepathfinder.dev/logo.png\"}},\"blogPost\":[{\"@type\":\"BlogPosting\",\"headline\":\"Code Pathfinder now speaks Go\",\"description\":\"Code Pathfinder v2.1.0 adds Go support: 21 security rules, cross-file taint analysis, and type-aware detection across Gin, Echo, Fiber, GORM, sqlx, gRPC, and the standard library.\",\"datePublished\":\"2026-04-18\",\"author\":{\"@type\":\"Person\",\"name\":\"Shivasurya\"},\"url\":\"https://codepathfinder.dev/blog/announcing-golang-support-code-pathfinder\",\"articleSection\":\"Product\",\"keywords\":\"Golang, Go Security, Taint Analysis, Open Source SAST\"},{\"@type\":\"BlogPosting\",\"headline\":\"Same Bug, Different Endpoint: Finding Path Traversal in Langflow with Code Pathfinder\",\"description\":\"How Code Pathfinder's variant analysis detected an unpatched path traversal in Langflow's Knowledge Bases API, the same bug class as CVE-2026-33497.\",\"datePublished\":\"2026-04-15\",\"author\":{\"@type\":\"Person\",\"name\":\"Shivasurya\"},\"url\":\"https://codepathfinder.dev/blog/langflow-knowledge-bases-path-traversal-variant-analysis\",\"articleSection\":\"Engineering\",\"keywords\":\"Python Security, Path Traversal, Variant Analysis, Langflow\"},{\"@type\":\"BlogPosting\",\"headline\":\"CVE-2026-33186: Bypassing gRPC-Go Authorization with a Missing Slash\",\"description\":\"CVE-2026-33186 - A path normalization flaw in grpc-go v1.79.2 and earlier allows attackers to bypass path-based authorization interceptors by omitting the leading slash in the HTTP/2 :path pseudo-header. Both custom interceptors and the official grpc/authz policy engine are affected.\",\"datePublished\":\"2026-04-01\",\"author\":{\"@type\":\"Person\",\"name\":\"Shivasurya\"},\"url\":\"https://codepathfinder.dev/blog/cve-2026-33186-grpc-go-authorization-bypass-malformed-path-header\",\"articleSection\":\"Engineering\",\"keywords\":\"GoLang Security, CVE, Authorization Bypass, grpc-go\"},{\"@type\":\"BlogPosting\",\"headline\":\"Cross-File Dataflow Analysis: Taint Tracking Across Your Entire Project\",\"description\":\"Code Pathfinder v2.0 ships inter-procedural taint analysis that traces vulnerable data flows across files, functions, and module boundaries. Here's how it works and how to write your first flow analysis rule.\",\"datePublished\":\"2026-03-17\",\"author\":{\"@type\":\"Person\",\"name\":\"Shivasurya\"},\"url\":\"https://codepathfinder.dev/blog/cross-file-dataflow-analysis-taint-tracking-across-your-entire-project\",\"articleSection\":\"Engineering\",\"keywords\":\"Dataflow Analysis, Taint Analysis, Security, SAST, Python SDK, Engineering, Cross-File Analysis\"},{\"@type\":\"BlogPosting\",\"headline\":\"Automated GitHub PR Security Comments \u0026 Inline SAST Findings with Code Pathfinder\",\"description\":\"Code Pathfinder's GitHub Action now posts security scan results as PR summary comments and inline review annotations. Browse 100+ open-source SAST rules at codepathfinder.dev/registry.\",\"datePublished\":\"2026-02-21\",\"author\":{\"@type\":\"Person\",\"name\":\"Shivasurya\"},\"url\":\"https://codepathfinder.dev/blog/github-summary-pull-request-comments-integration\",\"articleSection\":\"Product\",\"keywords\":\"GitHub Actions, Pull Request, SAST, CI/CD, GitHub Code Scanning, CodeQL Alternative, DevSecOps, SARIF\"},{\"@type\":\"BlogPosting\",\"headline\":\"Stop Grepping, Start Querying: MCP Server for Code-Pathfinder\",\"description\":\"Connect Code-Pathfinder's indexed code analysis directly to Claude Code, Codex, and MCP-enabled AI agents. Query call graphs, resolve imports, and find vulnerabilities instantly without grep or file reads. Open-source MCP server for Python codebases.\",\"datePublished\":\"2026-01-11\",\"author\":{\"@type\":\"Person\",\"name\":\"Shivasurya\"},\"url\":\"https://codepathfinder.dev/blog/mcp-server-code-pathfinder\",\"articleSection\":\"Product\",\"keywords\":\"MCP, Security, Product, Code Analysis, AI Agents, Static Analysis\"},{\"@type\":\"BlogPosting\",\"headline\":\"One API Key to Rule Them All: SecureFlow Adds OpenRouter Support\",\"description\":\"Stop juggling API keys. SecureFlow now integrates with OpenRouter for access to 200+ AI models, plus a major UI refresh with Svelte\",\"datePublished\":\"2025-12-27\",\"author\":{\"@type\":\"Person\",\"name\":\"Shivasurya\"},\"url\":\"https://codepathfinder.dev/blog/secureflow-openrouter-integration\",\"articleSection\":\"Product\",\"keywords\":\"SecureFlow, AI, Security, VSCode\"},{\"@type\":\"BlogPosting\",\"headline\":\"Docker Security Rules: Detect 47 Container Vulnerabilities \u0026 Misconfigurations [2025]\",\"description\":\"Discover 47 Docker security rules to catch critical vulnerabilities. Prevent privilege escalation, socket exposure \u0026 misconfigurations with automated SAST scanning.\",\"datePublished\":\"2025-12-10\",\"author\":{\"@type\":\"Person\",\"name\":\"Shivasurya\"},\"url\":\"https://codepathfinder.dev/blog/announcing-docker-compose-security-rules\",\"articleSection\":\"Product\",\"keywords\":\"Docker Security, Container Security, Docker Compose, Dockerfile Security, SAST, Static Analysis, Security Scanning, CWE-250, Privilege Escalation, Container Escape, DevSecOps, CI/CD Security, Infrastru
1cture as Code, Docker Socket, Container Hardening\"},{\"@type\":\"BlogPosting\",\"headline\":\"Introducing SecureFlow CLI to Hunt Vulnerabilities\",\"description\":\"AI-powered security scanning tool using agentic loops to hunt vulnerabilities - discovered 300+ issues in WordPress plugins with 12+ AI model support and DefectDojo integration.\",\"datePublished\":\"2025-10-01\",\"author\":{\"@type\":\"Person\",\"name\":\"Shivasurya\"},\"url\":\"https://codepathfinder.dev/blog/introducing-secureflow-cli-to-hunt-vuln\",\"articleSection\":\"Product\",\"keywords\":\"SAST, Security, SecureFlow, CLI\"},{\"@type\":\"BlogPosting\",\"headline\":\"Introducing SecureFlow Extension to Vibe Code Securely\",\"description\":\"Discover SecureFlow, a VS Code extension that helps developers write secure code by providing real-time security analysis, vulnerability detection, and guided remediation - all within your editor\",\"datePublished\":\"2025-07-29\",\"author\":{\"@type\":\"Person\",\"name\":\"Shivasurya\"},\"url\":\"https://codepathfinder.dev/blog/introducing-secureflow-extension-to-vibe-code-securely\",\"articleSection\":\"Product\",\"keywords\":\"SAST, Security, SecureFlow\"},{\"@type\":\"BlogPosting\",\"headline\":\"Silence the Noise: A Practical Guide to Systematically Reducing SAST False Positives\",\"description\":\"Drowning in SAST false positives? This guide provides a step-by-step strategy to reduce noise and make security findings actionable.\",\"datePublished\":\"2025-04-19\",\"author\":{\"@type\":\"Person\",\"name\":\"Shivasurya\"},\"url\":\"https://codepathfinder.dev/blog/silence-the-noise-a-practical-guide-to-systematically-reducing-sast-false-positives\",\"articleSection\":\"Engineering\",\"keywords\":\"SAST, Security\"},{\"@type\":\"BlogPosting\",\"headline\":\"Static Analysis Isn't Enough: Understanding Library Interactions for Effective Data Flow Tracking\",\"description\":\"Static analysis tools go blind without understanding library calls – learn why modeling them is critical for finding real security flaws.\",\"datePublished\":\"2025-04-17\",\"author\":{\"@type\":\"Person\",\"name\":\"Shivasurya\"},\"url\":\"https://codepathfinder.dev/blog/static-analysis-isnt-enough-understanding-library-interactions-for-effective-data-flow-tracking\",\"articleSection\":\"Engineering\",\"keywords\":\"SAST, Security, Code-PathFinder\"},{\"@type\":\"BlogPosting\",\"headline\":\"Detecting WebView Misconfigurations in Android With Code-PathFinder\",\"description\":\"A short blog post about finding WebView misconfigurations in Android with Code-PathFinder\",\"datePublished\":\"2024-10-20\",\"author\":{\"@type\":\"Person\",\"name\":\"Shivasurya\"},\"url\":\"https://codepathfinder.dev/blog/finding-webview-misconfigurations-android\",\"articleSection\":\"Engineering\",\"keywords\":\"SAST, Security, Android\"},{\"@type\":\"BlogPosting\",\"headline\":\"Code PathFinder - Open Source CodeQL Alternative\",\"description\":\"A short blog post about Code PathFinder, a CodeQL OSS alternative\",\"datePublished\":\"2024-10-01\",\"author\":{\"@type\":\"Person\",\"name\":\"Shivasurya\"},\"url\":\"https://codepathfinder.dev/blog/codeql-oss-alternative\",\"articleSection\":\"Engineering\",\"keywords\":\"SAST, Security, Code-PathFinder\"}],\"breadcrumb\":{\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https://codepathfinder.dev\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https://codepathfinder.dev/blog\"}]}}"])</script>
1<script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"blog\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"blog\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/b2ee9cc82f09e6a4.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/e4312b5949f9f3b4.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"link\",null,{\"rel\":\"alternate\",\"type\":\"application/rss+xml\",\"title\":\"Code Pathfinder Blog\",\"href\":\"/blog/feed.xml\"}],[\"$\",\"link\",null,{\"rel\":\"alternate\",\"type\":\"text/plain\",\"href\":\"/llms.txt\",\"title\":\"LLM-readable summary\"}],[\"$\",\"link\",null,{\"rel\":\"alternate\",\"type\":\"text/plain\",\"href\":\"/llms-full.txt\",\"title\":\"Full LLM documentation\"}],[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"WebSite\\\",\\\"name\\\":\\\"Code Pathfinder\\\",\\\"url\\\":\\\"https://codepathfinder.dev\\\",\\\"potentialAction\\\":{\\\"@type\\\":\\\"SearchAction\\\",\\\"target\\\":\\\"https://codepathfinder.dev/registry?q={search_term_string}\\\",\\\"query-input\\\":\\\"required name=search_term_string\\\"}}\"}}],[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Organization\\\",\\\"name\\\":\\\"Code Pathfinder\\\",\\\"url\\\":\\\"https://codepathfinder.dev\\\",\\\"logo\\\":\\\"https://codepathfinder.dev/icon.svg\\\",\\\"sameAs\\\":[\\\"https://github.com/shivasurya/code-pathfinder\\\",\\\"https://x.com/sshivasurya\\\"]}\"}}]]}],[\"$\",\"body\",null,{\"className\":\"__variable_f367f3 __variable_3c557b antialiased\",\"children\":[\"$\",\"$L2\",null,{\"children\":[[\"$\",\"$L3\",null,{}],[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"div\",null,{\"className\":\"min-h-screen bg-white flex items-center justify-center px-4\",\"children\":[\"$\",\"div\",null,{\"className\":\"max-w-md w-full text-center\",\"children\":[[\"$\",\"div\",null,{\"className\":\"mb-8\",\"children\":[\"$\",\"span\",null,{\"className\":\"text-6xl font-mono font-bold text-gray-200\",\"children\":\"404\"}]}],[\"$\",\"h1\",null,{\"className\":\"text-2xl font-semibold text-gray-900 mb-4\",\"children\":\"Page not found\"}],[\"$\",\"p\",null,{\"className\":\"text-gray-600 mb-8\",\"children\":\"This page doesn't exist or has been moved. Try one of these instead:\"}],[\"$\",\"div\",null,{\"className\":\"space-y-3\",\"children\":[[\"$\",\"$L6\",null,{\"href\":\"/docs/quickstart\",\"className\":\"block w-full px-4 py-3 bg-gray-900 text-white rounded-lg hover:bg-gray-800 transition-colors\",\"children\":\"Get Started with Code Pathfinder\"}],[\"$\",\"$L6\",null,{\"href\":\"/docs/rules\",\"className\":\"block w-full px-4 py-3 border border-gray-300 text-gray-700 rounded-lg hover:bg-gray-50 transition-colors\",\"children\":\"Learn to Write Rules\"}],[\"$\",\"$L6\",null,{\"href\":\"/registry\",\"className\":\"block w-full px-4 py-3 border border-gray-300 text-gray-700 rounded-lg hover:bg-gray-50 transition-colors\",\"children\":\"Browse Rule Registry\"}],[\"$\",\"$L6\",null,{\"href\":\"/blog\",\"className\":\"block w-full px-4 py-3 border border-gray-300 text-gray-700 rounded-lg hover:bg-gray-50 transition-colors\",\"children\":\"Read the Blog\"}]]}],[\"$\",\"div\",null,{\"className\":\"mt-8 pt-8 border-t border-gray-200\",\"children\":[\"$\",\"$L6\",null,{\"href\":\"/\",\"className\":\"text-sm text-gray-500 hover:text-gray-700\",\"children\":\"Back to Home\"}]}]]}]}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"div\",null,{\"className\":\"min-h-screen bg-white overflow-x-hidden\",\"children\":[[\"$\",\"$L7\",null,{\"id\":\"blog-list-structured-data\",\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$8\"}}],\"$L9\",\"$La\"]}],null,\"$Lb\"]}],{}
1,null,false,null]},null,false,\"$@c\"]},null,false,null],\"$Ld\",false]],\"m\":\"$undefined\",\"G\":[\"$e\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"pmr1fq8aVlDkJPu3huPwB\"}\n"])</script>
1<script>self.__next_f.push([1,"f:I[461,[\"8500\",\"static/chunks/8500-06e8ef666f924640.js\",\"3831\",\"static/chunks/app/blog/page-3a278625f257d50b.js\"],\"default\"]\n15:I[484,[],\"OutletBoundary\"]\n16:\"$Sreact.suspense\"\n19:I[484,[],\"ViewportBoundary\"]\n1b:I[484,[],\"MetadataBoundary\"]\n"])</script>
1<script>self.__next_f.push([1,"9:[\"$\",\"$Lf\",null,{\"featuredPosts\":[{\"title\":\"Code Pathfinder now speaks Go\",\"description\":\"Code Pathfinder v2.1.0 adds Go support: 21 security rules, cross-file taint analysis, and type-aware detection across Gin, Echo, Fiber, GORM, sqlx, gRPC, and the standard library.\",\"category\":\"Product\",\"author\":\"Shivasurya\",\"date\":\"April 18, 2026\",\"slug\":\"announcing-golang-support-code-pathfinder\",\"tags\":[\"Golang\",\"Go Security\",\"Taint Analysis\",\"Open Source SAST\"],\"image\":\"/assets/blog-banner-golang-support.png\"},{\"title\":\"Same Bug, Different Endpoint: Finding Path Traversal in Langflow with Code Pathfinder\",\"description\":\"How Code Pathfinder's variant analysis detected an unpatched path traversal in Langflow's Knowledge Bases API, the same bug class as CVE-2026-33497.\",\"category\":\"Engineering\",\"author\":\"Shivasurya\",\"date\":\"April 15, 2026\",\"slug\":\"langflow-knowledge-bases-path-traversal-variant-analysis\",\"tags\":[\"Python Security\",\"Path Traversal\",\"Variant Analysis\",\"Langflow\"],\"image\":\"/assets/blog-banner-langflow-kb-traversal.png\"}],\"latestPosts\":[{\"title\":\"CVE-2026-33186: Bypassing gRPC-Go Authorization with a Missing Slash\",\"category\":\"Engineering\",\"author\":\"Shivasurya\",\"date\":\"April 1, 2026\",\"slug\":\"cve-2026-33186-grpc-go-authorization-bypass-malformed-path-header\",\"tags\":[\"GoLang Security\",\"CVE\",\"Authorization Bypass\",\"grpc-go\"]},{\"title\":\"Cross-File Dataflow Analysis: Taint Tracking Across Your Entire Project\",\"category\":\"Engineering\",\"author\":\"Shivasurya\",\"date\":\"March 17, 2026\",\"slug\":\"cross-file-dataflow-analysis-taint-tracking-across-your-entire-project\",\"tags\":[\"Dataflow Analysis\",\"Taint Analysis\",\"Security\",\"SAST\",\"Python SDK\",\"Engineering\",\"Cross-File Analysis\"]},{\"title\":\"Automated GitHub PR Security Comments \u0026 Inline SAST Findings with Code Pathfinder\",\"category\":\"Product\",\"author\":\"Shivasurya\",\"date\":\"February 21, 2026\",\"slug\":\"github-summary-pull-request-comments-integration\",\"tags\":[\"GitHub Actions\",\"Pull Request\",\"SAST\",\"CI/CD\",\"GitHub Code Scanning\",\"CodeQL Alternative\",\"DevSecOps\",\"SARIF\"]},{\"title\":\"Stop Grepping, Start Querying: MCP Server for Code-Pathfinder\",\"category\":\"Product\",\"author\":\"Shivasurya\",\"date\":\"January 11, 2026\",\"slug\":\"mcp-server-code-pathfinder\",\"tags\":[\"MCP\",\"Security\",\"Product\",\"Code Analysis\",\"AI Agents\",\"Static Analysis\"]},{\"title\":\"One API Key to Rule Them All: SecureFlow Adds OpenRouter Support\",\"category\":\"Product\",\"author\":\"Shivasurya\",\"date\":\"December 27, 2025\",\"slug\":\"secureflow-openrouter-integration\",\"tags\":[\"SecureFlow\",\"AI\",\"Security\",\"VSCode\"]},{\"title\":\"Docker Security Rules: Detect 47 Container Vulnerabilities \u0026 Misconfigurations [2025]\",\"category\":\"Product\",\"author\":\"Shivasurya\",\"date\":\"December 10, 2025\",\"slug\":\"announcing-docker-compose-security-rules\",\"tags\":[\"Docker Security\",\"Container Security\",\"Docker Compose\",\"Dockerfile Security\",\"SAST\",\"Static Analysis\",\"Security Scanning\",\"CWE-250\",\"Privilege Escalation\",\"Container Escape\",\"DevSecOps\",\"CI/CD Security\",\"Infrastructure as Code\",\"Docker Socket\",\"Container Hardening\"]},{\"title\":\"Introducing SecureFlow CLI to Hunt Vulnerabilities\",\"category\":\"Product\",\"author\":\"Shivasurya\",\"date\":\"October 1, 2025\",\"slug\":\"introducing-secureflow-cli-to-hunt-vuln\",\"tags\":[\"SAST\",\"Security\",\"SecureFlow\",\"CLI\"]},{\"title\":\"Introducing SecureFlow Extension to Vibe Code Securely\",\"category\":\"Product\",\"author\":\"Shivasurya\",\"date\":\"July 29, 2025\",\"slug\":\"introducing-secureflow-extension-to-vibe-code-securely\",\"tags\":[\"SAST\",\"Security\",\"SecureFlow\"]},{\"title\":\"Silence the Noise: A Practical Guide to Systematically Reducing SAST False Positives\",\"category\":\"Engineering\",\"author\":\"Shivasurya\",\"date\":\"April 19, 2025\",\"slug\":\"silence-the-noise-a-practical-guide-to-systematically-reducing-sast-false-positives\",\"tags\":[\"SAST\",\"Security\"]},{\"title\":\"Static Analysis Isn't Enough: Understanding Library Interactions for Effective Data Flow Tracking\",\"category\":\"Engineering\",\"author\":\"Shivasurya\",\"date\":\"April 17, 2025\",\"slug\":\"static-analysis-isnt-enough-understanding-library-interactions-for-effective-data-flow-tracking\",\"tags\":[\"SAST\",\"Security\",\"Code-PathFinder\"]},{\"title\":\"Detecting WebView Misconfigurations in Android With Code-PathFinder\",\"category\":\"Engineering\",\"author\":\"Shivasurya\",\"date\":\"October 20, 2024\",\"slug\":\"finding-webview-misconfigurations-android\",\"tags\":[\"SAST\",\"Security\",\"Android\"]},{\"title\":\"Code PathFinder - Open Source CodeQL Alternative\",\"category\":\"Engineering\",\"author\":\"Shivasurya\",\"date\":\"October 1, 2024\",\"slug\":\"codeql-oss-alternative\",\"tags\":[\"SAST\",\"Security\",\"Code-PathFinder\"]}]}]\n"])</script>
1<script>self.__next_f.push([1,"a:[\"$\",\"footer\",null,{\"children\":[[\"$\",\"div\",null,{\"className\":\"bg-gradient-to-b from-[#fdfbf3] to-[#f7f3e8] border-t border-[#e7e0cf]\",\"children\":[\"$\",\"div\",null,{\"className\":\"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-12\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-end justify-between mb-8\",\"children\":[[\"$\",\"div\",null,{\"children\":[[\"$\",\"p\",null,{\"className\":\"text-xs font-semibold tracking-widest text-lime-600 uppercase mb-1\",\"children\":\"Registry\"}],[\"$\",\"h3\",null,{\"className\":\"text-xl font-bold text-gray-900\",\"children\":[211,\" Security Rules\"]}]]}],[\"$\",\"$L6\",null,{\"href\":\"/registry\",\"className\":\"hidden sm:inline-flex items-center gap-1.5 text-sm font-medium text-gray-600 hover:text-gray-900 transition-colors\",\"children\":[\"View full registry\",[\"$\",\"svg\",null,{\"className\":\"w-4 h-4\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"viewBox\":\"0 0 24 24\",\"children\":[\"$\",\"path\",null,{\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":2,\"d\":\"M17 8l4 4m0 0l-4 4m4-4H3\"}]}]]}]]}],[\"$\",\"div\",null,{\"className\":\"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4\",\"children\":[[\"$\",\"div\",\"docker\",{\"className\":\"bg-white rounded-xl p-5 shadow-sm border border-[#e7e0cf] hover:shadow-md transition-shadow\",\"children\":[[\"$\",\"$L6\",null,{\"href\":\"/registry/docker\",\"className\":\"flex items-center gap-2.5 mb-4 group\",\"children\":[[\"$\",\"div\",null,{\"className\":\"bg-gradient-to-br from-blue-400 to-blue-600 p-2 rounded-lg flex items-center justify-center shadow-sm\",\"children\":[\"$\",\"svg\",null,{\"data-
1prefix\":\"fab\",\"data-icon\":\"docker\",\"className\":\"svg-inline--fa fa-docker w-5 h-5 text-white\",\"role\":\"img\",\"viewBox\":\"0 0 640 512\",\"aria-hidden\":\"true\",\"ref\":\"$undefined\",\"children\":[\"$\",\"path\",null,{\"fill\":\"currentColor\",\"d\":\"M349.9 236.3l-66.1 0 0-59.4 66.1 0 0 59.4zm0-204.3l-66.1 0 0 60.7 66.1 0 0-60.7zm78.2 144.8l-66.1 0 0 59.4 66.1 0 0-59.4zM271.8 104.7l-66.1 0 0 60.1 66.1 0 0-60.1zm78.1 0l-66.1 0 0 60.1 66.1 0 0-60.1zm276.8 100c-14.4-9.7-47.6-13.2-73.1-8.4-3.3-24-16.7-44.9-41.1-63.7l-14-9.3-9.3 14c-18.4 27.8-23.4 73.6-3.7 103.8-8.7 4.7-25.8 11.1-48.4 10.7l-434.7 0c-8.7 50.8 5.8 116.8 44 162.1 37.1 43.9 92.7 66.2 165.4 66.2 157.4 0 273.9-72.5 328.4-204.2 21.4 .4 67.6 .1 91.3-45.2 1.5-2.5 6.6-13.2 8.5-17.1l-13.3-8.9zM115.6 176.8l-66 0 0 59.4 66.1 0 0-59.4-.1 0zm78.1 0l-66.1 0 0 59.4 66.1 0 0-59.4zm78.1 0l-66.1 0 0 59.4 66.1 0 0-59.4zm-78.1-72.1l-66.1 0 0 60.1 66.1 0 0-60.1z\"}]}]}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"text-gray-900 font-semibold text-sm group-hover:text-lime-600 transition-colors\",\"children\":\"Docker\"}],[\"$\",\"span\",null,{\"className\":\"block text-xs text-gray-500\",\"children\":[37,\" rules, \",4,\" categories\"]}]]}]]}],[\"$\",\"div\",null,{\"className\":\"flex flex-wrap gap-1.5\",\"children\":[[\"$\",\"$L6\",\"audit\",{\"href\":\"/registry/docker/audit\",\"className\":\"inline-flex items-center gap-1.5 px-2.5 py-1 bg-[#f7f3e8] border border-[#e7e0cf] rounded-full text-xs text-gray-600 hover:bg-[#ecfcca] hover:border-[#d8f999] hover:text-[#4b7d00] transition-colors\",\"children\":[\"Audit\",[\"$\",\"span\",null,{\"className\":\"text-gray-600 font-medium\",\"children\":2}]]}],[\"$\",\"$L6\",\"best-practice\",{\"href\":\"/registry/docker/best-practice\",\"className\":\"inline-flex items-center gap-1.5 px-2.5 py-1 bg-[#f7f3e8] border border-[#e7e0cf] rounded-full text-xs text-gray-600 hover:bg-[#ecfcca] hover:border-[#d8f999] hover:text-[#4b7d00] transition-colors\",\"children\":[\"Best Practice\",[\"$\",\"span\",null,{\"className\":\"text-gray-600 font-medium\",\"children\":28}]]}],[\"$\",\"$L6\",\"correctness\",{\"href\":\"/registry/docker/correctness\",\"className\":\"inline-flex items-center gap-1.5 px-2.5 py-1 bg-[#f7f3e8] border border-[#e7e0cf] rounded-full text-xs text-gray-600 hover:bg-[#ecfcca] hover:border-[#d8f999] hover:text-[#4b7d00] transition-colors\",\"children\":[\"Correctness\",[\"$\",\"span\",null,{\"className\":\"text-gray-600 font-medium\",\"children\":3}]]}],[\"$\",\"$L6\",\"security\",{\"href\":\"/registry/docker/security\",\"className\":\"inline-flex items-center gap-1.5 px-2.5 py-1 bg-[#f7f3e8] border border-[#e7e0cf] rounded-full text-xs text-gray-600 hover:bg-[#ecfcca] hover:border-[#d8f999] hover:text-[#4b7d00] transition-colors\",\"children\":[\"Security\",\"$L10\"]}]]}]]}],\"$L11\",\"$L12\",\"$L13\"]}]]}]}],\"$L14\"]}]\n"])</script>
1<script>self.__next_f.push([1,"b:[\"$\",\"$L15\",null,{\"children\":[\"$\",\"$16\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@17\"}]}]\n18:[]\nc:\"$W18\"\nd:[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L19\",null,{\"children\":\"$L1a\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L1b\",null,{\"children\":[\"$\",\"$16\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L1c\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]\n"])</script>
1<script>self.__next_f.push([1,"10:[\"$\",\"span\",null,{\"className\":\"text-gray-600 font-medium\",\"children\":4}]\n"])</script>
1<script>self.__next_f.push([1,"11:[\"$\",\"div\",\"docker-compose\",{\"className\":\"bg-white rounded-xl p-5 shadow-sm border border-[#e7e0cf] hover:shadow-md transition-shadow\",\"children\":[[\"$\",\"$L6\",null,{\"href\":\"/registry/docker-compose\",\"className\":\"flex items-center gap-2.5 mb-4 group\",\"children\":[[\"$\",\"div\",null,{\"className\":\"bg-gradient-to-br from-cyan-400 to-blue-500 p-2 rounded-lg flex items-center justify-center shadow-sm\",\"children\":[\"$\",\"svg\",null,{\"data-prefix\":\"fab\",\"data-icon\":\"docker\",\"className\":\"svg-inline--fa fa-docker w-5 h-5 text-white\",\"role\":\"img\",\"viewBox\":\"0 0 640 512\",\"aria-hidden\":\"true\",\"ref\":\"$undefined\",\"children\":[\"$\",\"path\",null,{\"fill\":\"currentColor\",\"d\":\"M349.9 236.3l-66.1 0 0-59.4 66.1 0 0 59.4zm0-204.3l-66.1 0 0 60.7 66.1 0 0-60.7zm78.2 144.8l-66.1 0 0 59.4 66.1 0 0-59.4zM271.8 104.7l-66.1 0 0 60.1 66.1 0 0-60.1zm78.1 0l-66.1 0 0 60.1 66.1 0 0-60.1zm276.8 100c-14.4-9.7-47.6-13.2-73.1-8.4-3.3-24-16.7-44.9-41.1-63.7l-14-9.3-9.3 14c-18.4 27.8-23.4 73.6-3.7 103.8-8.7 4.7-25.8 11.1-48.4 10.7l-434.7 0c-8.7 50.8 5.8 116.8 44 162.1 37.1 43.9 92.7 66.2 165.4 66.2 157.4 0 273.9-72.5 328.4-204.2 21.4 .4 67.6 .1 91.3-45.2 1.5-2.5 6.6-13.2 8.5-17.1l-13.3-8.9zM115.6 176.8l-66 0 0 59.4 66.1 0 0-59.4-.1 0zm78.1 0l-66.1 0 0 59.4 66.1 0 0-59.4zm78.1 0l-66.1 0 0 59.4 66.1 0 0-59.4zm-78.1-72.1l-66.1 0 0 60.1 66.1 0 0-60.1z\"}]}]}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"text-gray-900 font-semibold text-sm group-hover:text-lime-600 transition-colors\",\"children\":\"Docker Compose\"}],[\"$\",\"span\",null,{\"className\":\"block text-xs text-gray-500\",\"children\":[10,\" rules, \",1,\" categories\"]}]]}]]}],[\"$\",\"div\",null,{\"className\":\"flex flex-wrap gap-1.5\",\"children\":[[\"$\",\"$L6\",\"security\",{\"href\":\"/registry/docker-compose/security\",\"className\":\"inline-flex items-center gap-1.5 px-2.5 py-1 bg-[#f7f3e8] border border-[#e7e0cf] rounded-full text-xs text-gray-600 hover:bg-[#ecfcca] hover:border-[#d8f999] hover:text-[#4b7d00] transition-colors\",\"children\":[\"Security\",[\"$\",\"span\",null,{\"className\":\"text-gray-600 font-medium\",\"children\":10}]]}]]}]]}]\n"])</script>
1<script>self.__next_f.push([1,"12:[\"$\",\"div\",\"python\",{\"className\":\"bg-white rounded-xl p-5 shadow-sm border border-[#e7e0cf] hover:shadow-md transition-shadow\",\"children\":[[\"$\",\"$L6\",null,{\"href\":\"/registry/python\",\"className\":\"flex items-center gap-2.5 mb-4 group\",\"children\":[[\"$\",\"div\",null,{\"className\":\"bg-gradient-to-br from-blue-500 to-green-500 p-2 rounded-lg flex items-center justify-center shadow-sm\",\"children\":[\"$\",\"svg\",null,{\"data-prefix\":\"fab\",\"data-icon\":\"python\",\"className\":\"svg-inline--fa fa-python w-5 h-5 text-white\",\"role\":\"img\",\"viewBox\":\"0 0 448 512\",\"aria-hidden\":\"true\",\"ref\":\"$undefined\",\"children\":[\"$\",\"path\",null,{\"fill\":\"currentColor\",\"d\":\"M439.8 200.5c-7.7-30.9-22.3-54.2-53.4-54.2l-40.1 0 0 47.4c0 36.8-31.2 67.8-66.8 67.8l-106.8 0c-29.2 0-53.4 25-53.4 54.3l0 101.8c0 29 25.2 46 53.4 54.3 33.8 9.9 66.3 11.7 106.8 0 26.9-7.8 53.4-23.5 53.4-54.3l0-40.7-106.7 0 0-13.6 160.2 0c31.1 0 42.6-21.7 53.4-54.2 11.2-33.5 10.7-65.7 0-108.6zM286.2 444.7a20.4 20.4 0 1 1 0-40.7 20.4 20.4 0 1 1 0 40.7zM167.8 248.1l106.8 0c29.7 0 53.4-24.5 53.4-54.3l0-101.9c0-29-24.4-50.7-53.4-55.6-35.8-5.9-74.7-5.6-106.8 .1-45.2 8-53.4 24.7-53.4 55.6l0 40.7 106.9 0 0 13.6-147 0c-31.1 0-58.3 18.7-66.8 54.2-9.8 40.7-10.2 66.1 0 108.6 7.6 31.6 25.7 54.2 56.8 54.2l36.7 0 0-48.8c0-35.3 30.5-66.4 66.8-66.4zM161.2 64.7a20.4 20.4 0 1 1 0 40.8 20.4 20.4 0 1 1 0-40.8z\"}]}]}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"text-gray-900 font-semibold text-sm group-hover:text-lime-600 transition-colors\",\"children\":\"Python\"}],[\"$\",\"span\",null,{\"className\":\"block text-xs text-gray-500\",\"children\":[143,\" rules, \",8,\" categories\"]}]]}]]}],[\"$\",\"div\",null,{\"className\":\"flex flex-wrap gap-1.5\",\"children\":[[\"$\",\"$L6\",\"aws_lambda\",{\"href\":\"/registry/python/aws_lambda\",\"className\":\"inline-flex items-center gap-1.5 px-2.5 py-1 bg-[#f7f3e8] border border-[#e7e0cf] rounded-full text-xs text-gray-600 hover:bg-[#ecfcca] hover:border-[#d8f999] hover:text-[#4b7d00] transition-colors\",\"children\":[\"AWS Lambda\",[\"$\",\"span\",null,{\"className\":\"text-gray-600 font-medium\",\"children\":14}]]}],[\"$\",\"$L6\",\"cryptography\",{\"href\":\"/registry/python/cryptography\",\"className\":\"inline-flex items-center gap-1.5 px-2.5 py-1 bg-[#f7f3e8] border border-[#e7e0cf] rounded-full text-xs text-gray-600 hover:bg-[#ecfcca] hover:border-[#d8f999] hover:text-[#4b7d00] transition-colors\",\"children\":[\"Cryptography\",[\"$\",\"span\",null,{\"className\":\"text-gray-600 font-medium\",\"children\":23}]]}],[\"$\",\"$L6\",\"django\",{\"href\":\"/registry/python/django\",\"className\":\"inline-flex items-center gap-1.5 px-2.5 py-1 bg-[#f7f3e8] border border-[#e7e0cf] rounded-full text-xs text-gray-600 hover:bg-[#ecfcca] hover:border-[#d8f999] hover:text-[#4b7d00] transition-colors\",\"children\":[\"Django\",[\"$\",\"span\",null,{\"className\":\"text-gray-600 font-medium\",\"children\":23}]]}],[\"$\",\"$L6\",\"flask\",{\"href\":\"/registry/python/flask\",\"className\":\"inline-flex items-center gap-1.5 px-2.5 py-1 bg-[#f7f3e8] border border-[#e7e0cf] rounded-full text-xs text-gray-600 hover:bg-[#ecfcca] hover:border-[#d8f999] hover:text-[#4b7d00] transition-colors\",\"children\":[\"Flask\",[\"$\",\"span\",null,{\"className\":\"text-gray-600 font-medium\",\"children\":21}]]}],[\"$\",\"$L6\",\"jwt\",{\"href\":\"/registry/python/jwt\",\"className\":\"inline-flex items-center gap-1.5 px-2.5 py-1 bg-[#f7f3e8] border border-[#e7e0cf] rounded-full text-xs text-gray-600 hover:bg-[#ecfcca] hover:border-[#d8f999] hover:text-[#4b7d00] transition-colors\",\"children\":[\"JWT\",[\"$\",\"span\",null,{\"className\":\"text-gray-600 font-medium\",\"children\":5}]]}],[\"$\",\"$L6\",\"lang\",{\"href\":\"/registry/python/lang\",\"className\":\"inline-flex items-center gap-1.5 px-2.5 py-1 bg-[#f7f3e8] border border-[#e7e0cf] rounded-full text-xs text-gray-600 hover:bg-[#ecfcca] hover:border-[#d8f999] hover:text-[#4b7d00] transition-colors\",\"children\":[\"Python Core\",\"$L1d\"]}],\"$L1e\",\"$L1f\"]}]]}]\n"])</script>
1<script>self.__next_f.push([1,"20:T5a9,"])</script>
1<script>self.__next_f.push([1,"M400.1 194.8c-10.9 2.8-19.9 4.3-29.1 7.6-7.3 1.9-14.7 3.9-23.2 6.1l-.6 .1c-4.2 1.2-4.6 1.3-8.5-3.2-4.7-5.3-8.1-8.7-14.6-11.9-19.7-9.6-38.7-6.8-56.4 4.7-21.2 13.7-32.1 34-31.8 59.2 .3 25 17.4 45.5 41.2 48.9 22 2.8 39.8-4.6 53.8-20.5 2.1-2.6 4-5.3 6.1-8.3 .8-1 1.5-2.1 2.3-3.3l-60.1 0c-6.5 0-8.1-4-5.9-9.3 4-9.7 11.5-25.9 15.9-34 .9-1.8 3.1-5.8 6.9-5.8l101.1 0c4.5-13.4 11.8-26.9 21.6-39.7 22.7-29.9 49.3-45.5 87.2-52 31.8-5.6 61.7-2.5 88.9 15.9 24.6 16.8 39.8 39.6 43.9 69.5 5.3 42.1-6.9 76.3-36.7 105.6-19.7 20.9-44.9 34-73.9 39.9-5.6 1-11.1 1.5-16.5 2-2.9 .2-5.7 .5-8.5 .8-28.3-.6-54.2-8.7-76-27.4-15.3-13.3-25.9-29.6-31.1-48.5-3.7 7.3-8 14.4-14 21.1-21.6 29.6-50.9 48-87.9 52.9-30.6 4.1-58.9-1.8-83.9-20.5-23-17.5-36.1-40.5-39.5-69.2-4.1-34 5.9-65.4 26.4-91.3 22.2-29 51.5-47.4 87.3-53.9 29.3-6.2 57.3-1.9 82.6 15.3 16.5 10.9 28.3 25.8 36.1 43.9 1.9 2.8 .6 4.4-3.1 5.3zM48.3 200.4c-1.3 0-1.6-.6-.9-1.6l6.6-8.4c.6-.9 2.2-1.5 3.4-1.5l111.3 0c1.2 0 1.5 .9 .9 1.8l-5.3 8.1c-.6 1-2.2 1.9-3.1 1.9l-112.8-.3zM1.2 229.1c-1.2 0-1.6-.7-.9-1.6l6.5-8.4c.6-.9 2.2-1.6 3.4-1.6l142.1 0c1.2 0 1.8 1 1.5 1.9l-2.5 7.5c-.3 1.2-1.5 1.9-2.8 1.9L1.2 229.1zm74.5 26.8c-.6 .9-.3 1.8 .9 1.8l68 .3c.9 0 2.2-.9 2.2-2.1l.6-7.5c0-1.3-.6-2.2-1.9-2.2l-62.3 0c-1.2 0-2.5 .9-3.1 1.9l-4.4 7.8zm501.5-18c-.2-2.6-.3-4.8-.7-7-5.6-30.8-34-48.3-63.6-41.4-29 6.5-47.7 24.9-54.5 54.2-5.6 24.3 6.2 48.9 28.6 58.9 17.2 7.5 34.3 6.6 50.8-1.9 24.6-13.6 38-32.7 39.6-59.5-.1-1.2-.1-2.3-.2-3.3z"])</script>
1<script>self.__next_f.push([1,"13:[\"$\",\"div\",\"golang\",{\"className\":\"bg-white rounded-xl p-5 shadow-sm border border-[#e7e0cf] hover:shadow-md transition-shadow\",\"children\":[[\"$\",\"$L6\",null,{\"href\":\"/registry/golang\",\"className\":\"flex items-center gap-2.5 mb-4 group\",\"children\":[[\"$\",\"div\",null,{\"className\":\"bg-gradient-to-br from-[#00ADD8] to-[#007d9c] p-2 rounded-lg flex items-center justify-center shadow-sm\",\"children\":[\"$\",\"svg\",null,{\"data-prefix\":\"fab\",\"data-icon\":\"golang\",\"className\":\"svg-inline--fa fa-golang w-5 h-5 text-white\",\"role\":\"img\",\"viewBox\":\"0 0 640 512\",\"aria-hidden\":\"true\",\"ref\":\"$undefined\",\"children\":[\"$\",\"path\",null,{\"fill\":\"currentColor\",\"d\":\"$20\"}]}]}],[\"$\",\"div\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"text-gray-900 font-semibold text-sm group-hover:text-lime-600 transition-colors\",\"children\":\"Go\"}],[\"$\",\"span\",null,{\"className\":\"block text-xs text-gray-500\",\"children\":[21,\" rules, \",1,\" categories\"]}]]}]]}],[\"$\",\"div\",null,{\"className\":\"flex flex-wrap gap-1.5\",\"children\":[[\"$\",\"$L6\",\"security\",{\"href\":\"/registry/golang/security\",\"className\":\"inline-flex items-center gap-1.5 px-2.5 py-1 bg-[#f7f3e8] border border-[#e7e0cf] rounded-full text-xs text-gray-600 hover:bg-[#ecfcca] hover:border-[#d8f999] hover:text-[#4b7d00] transition-colors\",\"children\":[\"Security\",[\"$\",\"span\",null,{\"className\":\"text-gray-600 font-medium\",\"children\":21}]]}]]}]]}]\n"])</script>
1<script>self.__next_f.push([1,"14:[\"$\",\"div\",null,{\"className\":\"bg-gray-950\",\"children\":[\"$\",\"div\",null,{\"className\":\"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-10\",\"children\":[[\"$\",\"div\",null,{\"className\":\"grid grid-cols-2 md:grid-cols-6 gap-8\",\"children\":[[\"$\",\"div\",null,{\"className\":\"col-span-2 md:col-span-2\",\"children\":[[\"$\",\"$L6\",null,{\"href\":\"/\",\"className\":\"text-white font-bold text-base\",\"children\":\"/code pathfinder.\"}],[\"$\",\"p\",null,{\"className\":\"text-gray-400 text-sm mt-2 leading-relaxed\",\"children\":\"Precise security analysis developers trust\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-3 mt-4\",\"children\":[[\"$\",\"$L6\",null,{\"href\":\"https://github.com/shivasurya/code-pathfinder\",\"className\":\"text-gray-400 hover:text-white transition-colors\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"aria-label\":\"GitHub\",\"children\":[\"$\",\"svg\",null,{\"className\":\"w-5 h-5\",\"fill\":\"currentColor\",\"viewBox\":\"0 0 24 24\",\"children\":[\"$\",\"path\",null,{\"fillRule\":\"evenodd\",\"d\":\"M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z\",\"clipRule\":\"evenodd\"}]}]}],[\"$\",\"$L6\",null,{\"href\":\"https://twitter.com/sshivasurya\",\"className\":\"text-gray-400 hover:text-white transition-colors\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"aria-label\":\"X (Twitter)\",\"children\":[\"$\",\"svg\",null,{\"className\":\"w-5 h-5\",\"fill\":\"currentColor\",\"viewBox\":\"0 0 24 24\",\"children\":[\"$\",\"path\",null,{\"d\":\"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z\"}]}]}],[\"$\",\"$L6\",null,{\"href\":\"https://www.linkedin.com/in/shivasurya/\",\"className\":\"text-gray-400 hover:text-white transition-colors\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"aria-label\":\"LinkedIn\",\"children\":[\"$\",\"svg\",null,{\"className\":\"w-5 h-5\",\"fill\":\"currentColor\",\"viewBox\":\"0 0 24 24\",\"children\":[\"$\",\"path\",null,{\"d\":\"M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z\"}]}]}],[\"$\",\"$L6\",null,{\"href\":\"/blog/feed.xml\",\"className\":\"text-gray-400 hover:text-orange-400 transition-colors\",\"title\":\"RSS Feed\",\"aria-label\":\"RSS Feed\",\"children\":[\"$\",\"svg\",null,{\"className\":\"w-5 h-5\",\"fill\":\"currentColor\",\"viewBox\":\"0 0 24 24\",\"children\":[\"$\",\"path\",null,{\"d\":\"M6.503 20.752c0 1.794-1.456 3.248-3.251 3.248-1.796 0-3.252-1.454-3.252-3.248 0-1.794 1.456-3.248 3.252-3.248 1.795 0 3.251 1.454 3.251 3.248zm-6.503-12.572v4.811c6.05.062 10.96 4.966 11.022 11.009h4.817c-.062-8.71-7.118-15.758-15.839-15.82zm0-8.18v4.819c12.951.115 23.357 10.71 23.497 23.625h4.503c-.145-15.842-13.058-28.754-28-28.444z\"}]}]}],[\"$\",\"$L6\",null,{\"href\":\"https://github.com/shivasurya/code-pathfinder\",\"className\":\"pl-3 border-l border-gray-700 text-gray-400 hover:text-white transition-colors flex items-center gap-1.5 text-xs\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[\"$L21\",\"Star on GitHub\"]}]]}]]}],\"$L22\",\"$L23\",\"$L24\",\"$L25\"]}],\"$L26\"]}]}]\n"])</script>
1<script>self.__next_f.push([1,"1d:[\"$\",\"span\",null,{\"className\":\"text-gray-600 font-medium\",\"children\":54}]\n1e:[\"$\",\"$L6\",\"pyramid\",{\"href\":\"/registry/python/pyramid\",\"className\":\"inline-flex items-center gap-1.5 px-2.5 py-1 bg-[#f7f3e8] border border-[#e7e0cf] rounded-full text-xs text-gray-600 hover:bg-[#ecfcca] hover:border-[#d8f999] hover:text-[#4b7d00] transition-colors\",\"children\":[\"Pyramid\",[\"$\",\"span\",null,{\"className\":\"text-gray-600 font-medium\",\"children\":2}]]}]\n1f:[\"$\",\"$L6\",\"deserialization\",{\"href\":\"/registry/python/deserialization\",\"className\":\"inline-flex items-center gap-1.5 px-2.5 py-1 bg-[#f7f3e8] border border-[#e7e0cf] rounded-full text-xs text-gray-600 hover:bg-[#ecfcca] hover:border-[#d8f999] hover:text-[#4b7d00] transition-colors\",\"children\":[\"Deserialization\",[\"$\",\"span\",null,{\"className\":\"text-gray-600 font-medium\",\"children\":1}]]}]\n21:[\"$\",\"svg\",null,{\"className\":\"w-3.5 h-3.5\",\"fill\":\"currentColor\",\"viewBox\":\"0 0 24 24\",\"children\":[\"$\",\"path\",null,{\"d\":\"M12 .587l3.668 7.431 8.332 1.151-6.064 5.828 1.48 8.279L12 19.896l-7.417 3.937 1.482-8.279L0 9.726l8.332-1.151z\"}]}]\n22:[\"$\",\"div\",null,{\"children\":[[\"$\",\"h3\",null,{\"className\":\"text-white font-semibold text-sm mb-3\",\"children\":\"Product\"}],[\"$\",\"ul\",null,{\"className\":\"space-y-2\",\"children\":[[\"$\",\"li\",null,{\"children\":[\"$\",\"$L6\",null,{\"href\":\"/secureflow-ai\",\"className\":\"text-gray-400 text-sm hover:text-white transition-colors\",\"children\":\"SecureFlow AI\"}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"$L6\",null,{\"href\":\"/mcp\",\"className\":\"text-gray-400 text-sm hover:text-white transition-colors\",\"children\":\"MCP Server\"}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"$L6\",null,{\"href\":\"/docs/mcp/docker-mcp\",\"className\":\"text-gray-400 text-sm hover:text-white transition-colors\",\"children\":\"Docker MCP\"}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"$L6\",null,{\"href\":\"/docs\",\"className\":\"text-gray-400 text-sm hover:text-white transition-colors\",\"children\":\"Documentation\"}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"$L6\",null,{\"href\":\"/registry\",\"className\":\"text-gray-400 text-sm hover:text-white transition-colors\",\"children\":\"Registry\"}]}]]}]]}]\n23:[\"$\",\"div\",null,{\"children\":[[\"$\",\"h3\",null,{\"className\":\"text-white font-semibold text-sm mb-3\",\"children\":\"Resources\"}],[\"$\",\"ul\",null,{\"className\":\"space-y-2\",\"children\":[[\"$\",\"li\",null,{\"children\":[\"$\",\"$L6\",null,{\"href\":\"/docs\",\"className\":\"text-gray-400 text-sm hover:text-white transition-colors\",\"children\":\"Docs\"}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"$L6\",null,{\"href\":\"/blog\",\"className\":\"text-gray-400 text-sm hover:text-white transition-colors\",\"children\":\"Blog\"}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"$L6\",null,{\"href\":\"/docs/changelog\",\"className\":\"text-gray-400 text-sm hover:text-white transition-colors\",\"children\":\"Changelog\"}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"$L6\",null,{\"href\":\"https://github.com/shivasurya/code-pathfinder\",\"className\":\"text-gray-400 text-sm hover:text-white transition-colors\",\"children\":\"GitHub\"}]}]]}]]}]\n24:[\"$\",\"div\",null,{\"children\":[[\"$\",\"h3\",null,{\"className\":\"text-white font-semibold text-sm mb-3\",\"children\":\"Community\"}],[\"$\",\"ul\",null,{\"className\":\"space-y-2\",\"children\":[[\"$\",\"li\",null,{\"children\":[\"$\",\"$L6\",null,{\"href\":\"https://github.com/shivasurya/code-pathfinder/blob/main/CONTRIBUTING.md\",\"className\":\"text-gray-400 text-sm hover:text-white transition-colors\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":\"Contributing\"}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"$L6\",null,{\"href\":\"https://github.com/shivasurya/code-pathfinder/blob/main/CODE_OF_CONDUCT.md\",\"className\":\"text-gray-400 text-sm hover:text-white transition-colors\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":\"Code of Conduct\"}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"$L6\",null,{\"href\":\"https://github.com/shivasurya/code-pathfinder/issues\",\"className\":\"text-gray-400 text-sm hover:text-white transition-colors\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":\"Report Bug\"}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"$L6\",null,{\"href\":\"https://github.com/shivasurya/code-pathfinder/discussions\",\"className\":\"text-gray-400 text-sm hover:text-white transition-colors\",\"targe"])</script>
1<script>self.__next_f.push([1,"t\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":\"Discussions\"}]}]]}]]}]\n"])</script>
1<script>self.__next_f.push([1,"25:[\"$\",\"div\",null,{\"children\":[[\"$\",\"h3\",null,{\"className\":\"text-white font-semibold text-sm mb-3\",\"children\":\"Popular Rules\"}],[\"$\",\"ul\",null,{\"className\":\"space-y-2\",\"children\":[[\"$\",\"li\",null,{\"children\":[\"$\",\"$L6\",null,{\"href\":\"/registry/python/django/PYTHON-DJANGO-SEC-001\",\"className\":\"text-gray-400 text-sm hover:text-white transition-colors\",\"children\":\"Django SQL Injection\"}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"$L6\",null,{\"href\":\"/registry/python/flask/PYTHON-FLASK-SEC-002\",\"className\":\"text-gray-400 text-sm hover:text-white transition-colors\",\"children\":\"Flask SSTI\"}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"$L6\",null,{\"href\":\"/registry/python/lang/PYTHON-LANG-SEC-001\",\"className\":\"text-gray-400 text-sm hover:text-white transition-colors\",\"children\":\"Dangerous eval()\"}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"$L6\",null,{\"href\":\"/registry/docker/security/DOCKER-SEC-001\",\"className\":\"text-gray-400 text-sm hover:text-white transition-colors\",\"children\":\"Missing USER\"}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"$L6\",null,{\"href\":\"/registry/python/cryptography/PYTHON-CRYPTO-SEC-001\",\"className\":\"text-gray-400 text-sm hover:text-white transition-colors\",\"children\":\"Weak Cipher (RC4)\"}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"$L6\",null,{\"href\":\"/registry/python/jwt/PYTHON-JWT-SEC-001\",\"className\":\"text-gray-400 text-sm hover:text-white transition-colors\",\"children\":\"JWT Hardcoded Secret\"}]}]]}]]}]\n"])</script>
1<script>self.__next_f.push([1,"26:[\"$\",\"div\",null,{\"className\":\"mt-10 pt-6 border-t border-gray-800/60 flex flex-col sm:flex-row items-center justify-between gap-2 text-xs text-gray-400\",\"children\":[[\"$\",\"div\",null,{\"children\":[\"© \",2026,\" Code Pathfinder. Licensed under\",\" \",[\"$\",\"$L6\",null,{\"href\":\"https://github.com/shivasurya/code-pathfinder/blob/main/LICENSE\",\"className\":\"text-gray-300 hover:text-white transition-colors underline underline-offset-2\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":\"Apache-2.0\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1.5 text-gray-400\",\"children\":[\"Built with\",[\"$\",\"span\",null,{\"className\":\"text-red-400\",\"children\":\"❤\"}],\"from Waterloo, Canada\",[\"$\",\"svg\",null,{\"className\":\"w-4 h-3 inline-block\",\"viewBox\":\"0 0 40 27\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"children\":[[\"$\",\"rect\",null,{\"width\":\"10\",\"height\":\"27\",\"fill\":\"#EF4444\"}],[\"$\",\"rect\",null,{\"x\":\"10\",\"width\":\"20\",\"height\":\"27\",\"fill\":\"white\"}],[\"$\",\"rect\",null,{\"x\":\"30\",\"width\":\"10\",\"height\":\"27\",\"fill\":\"#EF4444\"}],[\"$\",\"path\",null,{\"d\":\"M20 4l1.5 3.5L20 9l-1.5-1.5L20 4zM16 10l2-1 1 2-2 1-1-2zM24 10l-2-1-1 2 2 1 1-2zM17 13l1.5 1 .5 2.5L20 15l1-1.5.5-2.5 1.5-1-1-2H18l-1 2zM15 14l1.5-.5.5 2-1.5.5-.5-2zM25 14l-1.5-.5-.5 2 1.5.5.5-2zM18 18h4v3h-4z\",\"fill\":\"#EF4444\"}]]}]]}]]}]\n"])</script>
1<script>self.__next_f.push([1,"1a:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script>
1<script>self.__next_f.push([1,"27:I[6869,[],\"IconMark\"]\n17:null\n"])</script>
1<script>self.__next_f.push([1,"1c:[[\"$\",\"title\",\"0\",{\"children\":\"Security Engineering Blog - SAST Insights \u0026 Best Practices | Code Pathfinder | Code Pathfinder\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Learn about security scanning, SAST tools, vulnerability detection, and reducing false positives. Expert insights from the Code Pathfinder security engineering team on code analysis and AppSec.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"author\",\"content\":\"Code Pathfinder Team\"}],[\"$\",\"meta\",\"3\",{\"name\":\"keywords\",\"content\":\"SAST,security scanning,vulnerability detection,false positives,code analysis,AppSec,security engineering,DevSecOps\"}],[\"$\",\"meta\",\"4\",{\"name\":\"robots\",\"content\":\"index, follow\"}],[\"$\",\"meta\",\"5\",{\"name\":\"googlebot\",\"content\":\"index, follow\"}],[\"$\",\"link\",\"6\",{\"rel\":\"canonical\",\"href\":\"https://codepathfinder.dev/blog\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:title\",\"content\":\"Security Engineering Blog | Code Pathfinder\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:description\",\"content\":\"Security insights, product updates, and engineering articles from the Code Pathfinder team. Learn about SAST, vulnerability detection, and AppSec best practices.\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:url\",\"content\":\"https://codepathfinder.dev/blog\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:site_name\",\"content\":\"Code Pathfinder\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:locale\",\"content\":\"en_US\"}],[\"$\",\"meta\",\"12\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"14\",{\"name\":\"twitter:site\",\"content\":\"@sshivasurya\"}],[\"$\",\"meta\",\"15\",{\"name\":\"twitter:creator\",\"content\":\"@sshivasurya\"}],[\"$\",\"meta\",\"16\",{\"name\":\"twitter:title\",\"content\":\"Security Engineering Blog | Code Pathfinder\"}],[\"$\",\"meta\",\"17\",{\"name\":\"twitter:description\",\"content\":\"Security insights, SAST best practices, and engineering articles\"}],[\"$\",\"link\",\"18\",{\"rel\":\"icon\",\"href\":\"/icon.png?4b25289eaba1eb8d\",\"type\":\"image/png\",\"sizes\":\"64x64\"}],[\"$\",\"link\",\"19\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-icon?6a23b2510969e468\",\"alt\":\"$undefined\",\"type\":\"image/png\",\"sizes\":\"180x180\"}],[\"$\",\"$L27\",\"20\",{}]]\n"])</script>
1<!-- Cloudflare Pages Analytics -->
vendor: 99 bytes, line 1
1<script defer src='https://static.cloudflareinsights.com/beacon.min.js' data-cf-beacon='{"token": "
160d64e3856d44551a9d7e1813a6455d0
vendor: 13 bytes, line 1
1"}'></script>
1<!-- Cloudflare Pages Analytics -->
1<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"053d5ea0a1f0480fb99eca816e56721a","r":1,"spa":2}' crossorigin="anonymous"></script>
1
2</body></html>

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.