<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: correctover</title>
    <description>The latest articles on DEV Community by correctover (@correctover).</description>
    <link>https://dev.to/correctover</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3924714%2F72bbee41-90a8-4810-8fee-1ddb3ecef567.jpeg</url>
      <title>DEV Community: correctover</title>
      <link>https://dev.to/correctover</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/correctover"/>
    <language>en</language>
    <item>
      <title>The AI Runtime Attack Surface: 7 Threats Every CISO Should Know</title>
      <dc:creator>correctover</dc:creator>
      <pubDate>Sat, 01 Aug 2026 03:57:03 +0000</pubDate>
      <link>https://dev.to/correctover/the-ai-runtime-attack-surface-7-threats-every-ciso-should-know-c6g</link>
      <guid>https://dev.to/correctover/the-ai-runtime-attack-surface-7-threats-every-ciso-should-know-c6g</guid>
      <description>&lt;h1&gt;
  
  
  The AI Runtime Attack Surface: 7 Threats Every CISO Should Know
&lt;/h1&gt;







&lt;p&gt;&lt;strong&gt;Correctover&lt;/strong&gt; — AI Runtime Security&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Real-time RCE, SSRF &amp;amp; Credential Protection in &lt;strong&gt;14.5µs&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;24 CCS&lt;/strong&gt; detection rules · &lt;strong&gt;80K&lt;/strong&gt; production traces · &lt;strong&gt;1,730+&lt;/strong&gt; validated findings&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://correctover.com/en" rel="noopener noreferrer"&gt;correctover.com/en&lt;/a&gt; · &lt;a href="https://github.com/correctover/mcp-server" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;This article is for informational purposes. Vulnerability findings are from responsible disclosure programs. Benchmark data from Correctover internal testing.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>ciso</category>
      <category>cloud</category>
      <category>infosec</category>
    </item>
    <item>
      <title>AI Security Audit, MCP Penetration Testing, and LLM Vulnerability Assessment: A Repeatable Workflow</title>
      <dc:creator>correctover</dc:creator>
      <pubDate>Sat, 01 Aug 2026 02:12:30 +0000</pubDate>
      <link>https://dev.to/correctover/ai-security-audit-mcp-penetration-testing-and-llm-vulnerability-assessment-a-repeatable-workflow-4img</link>
      <guid>https://dev.to/correctover/ai-security-audit-mcp-penetration-testing-and-llm-vulnerability-assessment-a-repeatable-workflow-4img</guid>
      <description>&lt;h1&gt;
  
  
  AI Security Audit, MCP Penetration Testing, and LLM Vulnerability Assessment: A Repeatable Workflow
&lt;/h1&gt;

&lt;p&gt;Most security teams treat AI security as a one-off exercise: run a scanner once, fix what you can, and hope the stack stays clean. But MCP servers and LLM agents change faster than traditional infrastructure. New tools get wired into the agent every week, and every new tool is a new attack surface.&lt;/p&gt;

&lt;p&gt;An &lt;strong&gt;AI security audit&lt;/strong&gt; only pays off when it is repeatable. This article walks through a practical, structured workflow for &lt;strong&gt;MCP penetration testing&lt;/strong&gt; and &lt;strong&gt;LLM vulnerability assessment&lt;/strong&gt; that you can run as a regular, scheduled process — not as a one-time event.&lt;/p&gt;

&lt;p&gt;In practice, an &lt;strong&gt;AI security audit, MCP penetration testing, and LLM vulnerability assessment&lt;/strong&gt; are three phases of the same recurring process: they share an inventory, a rule set, and a feedback loop. Treat them as one pipeline and the whole thing stays current; treat them as separate one-off engagements and each one goes stale by the time it finishes.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why a Structured Audit Beats Ad-Hoc Scanning
&lt;/h2&gt;

&lt;p&gt;The Model Context Protocol (MCP) is the standard way AI agents talk to external tools: filesystems, databases, browsers, shell executors, and internal APIs. Every MCP server you add to an agent is effectively a network-facing service running inside your trust boundary.&lt;/p&gt;

&lt;p&gt;A structured &lt;strong&gt;AI security audit&lt;/strong&gt; covers the parts that ad-hoc scanning misses:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;MCP transport boundaries&lt;/strong&gt; — how a server is started, who can invoke it, and whether tool arguments reach privileged execution paths.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tool-return injection&lt;/strong&gt; — a tool's output is concatenated into the agent's context, so a compromised tool can rewrite what the agent "believes" it saw.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Serialization boundaries&lt;/strong&gt; — data that crosses process or persistence boundaries is a classic injection point.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Credential exposure&lt;/strong&gt; — environment variables and configuration that leak through child processes or logs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lateral movement&lt;/strong&gt; — a compromised MCP server is often a foothold for the host.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal of the workflow below is to make each of these checks deterministic and repeatable.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Workflow: Five Stages
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Stage 1 — Asset Inventory
&lt;/h3&gt;

&lt;p&gt;You cannot audit what you cannot see. Enumerate every agent framework, MCP server, tool definition, and model endpoint in scope. Record:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which tools each agent can call.&lt;/li&gt;
&lt;li&gt;Which MCP servers are reachable, and over which transport (stdio, streamable HTTP).&lt;/li&gt;
&lt;li&gt;Which credentials are available to each component.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This inventory is the input to every later stage.&lt;/p&gt;

&lt;h3&gt;
  
  
  Stage 2 — Static Detection
&lt;/h3&gt;

&lt;p&gt;Run a rule-based scan over the code and configuration of every component in the inventory. The correct tool for this stage is a detection system whose rules are explicitly defined and versioned.&lt;/p&gt;

&lt;p&gt;The CCS detection system organizes its rules into attack-surface categories such as injection, remote code execution, supply chain, authentication, and privacy. Each rule is keyed to a specific, machine-checkable pattern — command injection into a tool executor, unsafe deserialization, environment leakage into a subprocess — rather than a vague heuristic.&lt;/p&gt;

&lt;p&gt;A useful checkpoint: the rule set should be small enough to review and &lt;strong&gt;auditable line by line&lt;/strong&gt;. A detection system with &lt;strong&gt;24 rules&lt;/strong&gt; is much easier to reason about than an opaque ML classifier, and each rule can be traced back to the class of vulnerability it covers. For example, a rule covering tool-command injection generalizes across every framework that passes LLM-generated arguments to a shell — even when a specific framework has never been scanned before.&lt;/p&gt;

&lt;h3&gt;
  
  
  Stage 3 — MCP Penetration Testing
&lt;/h3&gt;

&lt;p&gt;Penetration testing MCP servers is different from testing a web API, because the &lt;em&gt;consumer&lt;/em&gt; is an LLM with tool-calling ability. The practical checks:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Transport abuse&lt;/strong&gt; — can a crafted request reach a command executor without validation? Test &lt;code&gt;stdio&lt;/code&gt; spawn arguments and streamable HTTP tool definitions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tool-return poisoning&lt;/strong&gt; — does the agent trust tool output enough to follow instructions embedded in it? This is the MCP equivalent of prompt injection through a side channel.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deserialization&lt;/strong&gt; — feed malformed and oversized payloads to any serialize/deserialize boundary.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Credential leakage&lt;/strong&gt; — check whether environment variables or tokens are passed to child processes or written to logs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Request forgery&lt;/strong&gt; — does the server fetch URLs or resources based on attacker-influenced input?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Each check should have a &lt;strong&gt;fixed procedure&lt;/strong&gt; — a known payload, a known oracle, a known pass/fail criterion — so the result is reproducible next quarter. A minimal version of a transport-abuse probe looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;probe_stdio_exec&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;server_cmd&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;dict&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;Send a command-injection payload through the MCP stdio transport.&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
    &lt;span class="n"&gt;payload&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;normal_arg; id; #&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
    &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;invoke_tool&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;server_cmd&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;tool&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;run_shell&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;arg&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;payload&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;oracle&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;command id output&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;passed&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;uid=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;output&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;reproducible&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;   &lt;span class="c1"&gt;# same payload, same oracle, every run
&lt;/span&gt;    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the oracle returns a command execution artifact (&lt;code&gt;uid=...&lt;/code&gt;), the server fails the check — and the same payload will fail it again next quarter, which is exactly what you want from a repeatable audit.&lt;/p&gt;

&lt;h3&gt;
  
  
  Stage 4 — LLM Vulnerability Assessment
&lt;/h3&gt;

&lt;p&gt;An LLM vulnerability assessment targets the model &lt;em&gt;and&lt;/em&gt; the orchestration layer around it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Prompt injection resilience&lt;/strong&gt; — does a crafted instruction in an untrusted input steer the agent into dangerous tool calls?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Function-call validation&lt;/strong&gt; — are the parameters the model requests checked against an allowlist before execution?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data exfiltration paths&lt;/strong&gt; — which resources can the agent read and return to the caller?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Policy enforcement&lt;/strong&gt; — is there a decision layer between the model's request and the tool's execution?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The critical insight is that a model can be "secure" in isolation and still be the entry point for an attack, because the vulnerability lives in how its outputs are &lt;em&gt;used&lt;/em&gt;. That is why the assessment has to cover the full call path: model → tool choice → parameter validation → execution.&lt;/p&gt;

&lt;h3&gt;
  
  
  Stage 5 — Verification, Reporting, and Re-audit
&lt;/h3&gt;

&lt;p&gt;Every finding gets a severity, a reproduction path, and an owner. The report feeds back into Stage 1 (new inventory), so the next audit round is strictly broader than the last.&lt;/p&gt;

&lt;p&gt;The whole loop is scheduled — monthly or per-release — rather than triggered by an incident.&lt;/p&gt;




&lt;h2&gt;
  
  
  What the Workflow Is Built On
&lt;/h2&gt;

&lt;p&gt;This workflow has been production-checked against a large body of real traffic. The evidence base:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A 20,000-trace public verification set&lt;/strong&gt;, released by the Correctover organization on GitHub (&lt;code&gt;Correctover/standards&lt;/code&gt;, release &lt;code&gt;ccs-v1.0&lt;/code&gt;), covering production API traces used to validate detection behavior. Each record includes the provider, model, verdict, and expected result for that call.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;13 providers and 33 models&lt;/strong&gt; represented in that trace set — OpenAI, Anthropic, Google, Meta, Mistral, Cohere, DeepSeek, and others — so rules are tested against heterogeneous provider behavior rather than a single vendor.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A peer-reviewed CCS framework paper&lt;/strong&gt; published with DOI &lt;code&gt;10.5281/zenodo.21271910&lt;/code&gt;, which describes the classification system that the 24-rule detection set operationalizes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Because the rules are tested against traces from many providers and models, the detection layer is a &lt;strong&gt;generalization&lt;/strong&gt;, not a hard-coded match against one framework. That is what makes the audit repeatable as your stack evolves.&lt;/p&gt;




&lt;h2&gt;
  
  
  Common Mistakes to Avoid
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Auditing once and never again.&lt;/strong&gt; The value is in the loop, not the snapshot.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Only static scanning.&lt;/strong&gt; Static detection finds known patterns; MCP penetration testing and an LLM vulnerability assessment find the behavioral gaps that static rules cannot see.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auditing the model but not the orchestration.&lt;/strong&gt; Most MCP risk is in the tool layer, not the model weights.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No verified test data.&lt;/strong&gt; If your detection rules are not validated against a trace set, you cannot tell a false positive from a real finding.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The Takeaway: AI Security Audit, MCP Penetration Testing, and LLM Vulnerability Assessment Are One Loop
&lt;/h2&gt;

&lt;p&gt;The organizations that stay ahead treat an AI security audit the way they treat a build: something that runs regularly, fails loudly, and gets fixed fast. Structured MCP penetration testing and a repeatable LLM vulnerability assessment — backed by a versioned rule set and a verified trace dataset — are how you turn a one-time scare into a continuous process.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Correctover SDK&lt;/strong&gt; is the detection and reliability layer this workflow plugs into. It ships the CCS detection rules (24 rules across the attack-surface categories above), an interceptor that validates each tool call on the path between the model and execution, and a provider-agnostic transport layer that keeps your agents talking to all 13 supported providers without changing your code. The same 20,000-trace verified dataset behind the audit is the dataset Correctover SDK is validated against, and the classification system is the one documented in the CCS paper (DOI &lt;code&gt;10.5281/zenodo.21271910&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;If your agents call MCP tools — and they should, that is where the value is — you need a repeatable way to audit and enforce what those tools can do. That is what the Correctover SDK provides: structured detection, runtime enforcement, and a paper-backed classification system you can point your security team at.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Documentation: &lt;a href="https://correctover.github.io" rel="noopener noreferrer"&gt;https://correctover.github.io&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Verified trace dataset: GitHub &lt;code&gt;Correctover/standards&lt;/code&gt;, release &lt;code&gt;ccs-v1.0&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;CCS framework paper: DOI &lt;code&gt;10.5281/zenodo.21271910&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>security</category>
      <category>ai</category>
      <category>mcp</category>
      <category>llm</category>
    </item>
    <item>
      <title>CCS Compliance for AI Systems: A 24-Rule Framework for Production Security</title>
      <dc:creator>correctover</dc:creator>
      <pubDate>Sat, 01 Aug 2026 02:07:15 +0000</pubDate>
      <link>https://dev.to/correctover/ccs-compliance-for-ai-systems-a-24-rule-framework-for-production-security-178j</link>
      <guid>https://dev.to/correctover/ccs-compliance-for-ai-systems-a-24-rule-framework-for-production-security-178j</guid>
      <description>&lt;h1&gt;
  
  
  CCS Compliance for AI Systems: A 24-Rule Framework for Production Security
&lt;/h1&gt;







&lt;p&gt;&lt;strong&gt;Correctover&lt;/strong&gt; — AI Runtime Security&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Real-time RCE, SSRF &amp;amp; Credential Protection in &lt;strong&gt;14.5µs&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;24 CCS&lt;/strong&gt; detection rules · &lt;strong&gt;80K&lt;/strong&gt; production traces · &lt;strong&gt;1,730+&lt;/strong&gt; validated findings&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://correctover.com/en" rel="noopener noreferrer"&gt;correctover.com/en&lt;/a&gt; · &lt;a href="https://github.com/correctover/mcp-server" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;This article is for informational purposes. Vulnerability findings are from responsible disclosure programs. Benchmark data from Correctover internal testing.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>compliance</category>
      <category>cloud</category>
      <category>infosec</category>
    </item>
    <item>
      <title>Your AI Agent Stack May Have These 16 Vulnerability Patterns</title>
      <dc:creator>correctover</dc:creator>
      <pubDate>Fri, 31 Jul 2026 09:08:00 +0000</pubDate>
      <link>https://dev.to/correctover/your-ai-agent-stack-may-have-these-16-vulnerability-patterns-270h</link>
      <guid>https://dev.to/correctover/your-ai-agent-stack-may-have-these-16-vulnerability-patterns-270h</guid>
      <description>&lt;h1&gt;
  
  
  Your AI Agent Stack May Have These 16 Vulnerability Patterns
&lt;/h1&gt;

&lt;p&gt;On July 16, 2026, Workato launched its Enterprise MCP Registry: a catalog of more than 60 production-grade MCP servers wrapped in governance controls — centralized audit trails, SOC 2 posture, and per-user identity propagation. The company's CPO framed it bluntly at launch: "protocol alone can't run your business, you need a platform."&lt;/p&gt;

&lt;p&gt;The framing is correct, and the market is responding to a real gap. The Model Context Protocol (MCP) standardizes how AI agents discover and call tools, but it does not — and cannot — secure them. A protocol defines a wire format; it does not define trust. After three months of auditing the MCP ecosystem, our team believes the gap is not hypothetical. Here is what we found across 37 MCP repositories and 24 standalone servers, the 16 vulnerability patterns that keep recurring, and the governance checklist we give enterprise security teams.&lt;/p&gt;

&lt;h2&gt;
  
  
  The data: 37 repositories, 144 advisories, 75 high or critical
&lt;/h2&gt;

&lt;p&gt;We ran three complementary exercises in July 2026.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. A GitHub Security Advisory audit of 37 MCP repositories&lt;/strong&gt; — official SDKs (Python, TypeScript, Go, Java), vendor servers (AWS, GitHub, Cloudflare, n8n, Activepieces, OpenMetadata, nginx-ui, siyuan) and ecosystem projects. Total: 144 advisories, of which 75 were rated high or critical. Nineteen of the 37 repositories had zero published GHSA entries at scan time — an audit gap worth noting, because the CVSS 10.0 RCE we confirmed (Firecrawl) shipped in a repository that was still on the zero-GHSA list when we scanned it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. A blind test against 24 standalone MCP servers&lt;/strong&gt; — 5,911 files across projects ranging from 10 to 2,781 stars — produced 94 candidate findings (37 critical, 44 high, 13 medium). Manual review confirmed one exploitable command injection (AgenticX), flagged two as context-dependent, and found that 53 of the 94 (56.4%) were false positives. That false-positive rate matters directly for any team evaluating a scanner; we unpack it in the section on traditional SAST.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. A cross-project pattern study&lt;/strong&gt; — 16 systemic vulnerability patterns validated against 6 MCP server implementations. The headline: &lt;strong&gt;path traversal appeared in all 6 of 6 targets (100%)&lt;/strong&gt;. Wildcard &lt;code&gt;0.0.0.0&lt;/code&gt; binding appeared in 4 of 6 (67%); hardcoded secrets in 3 of 6 (50%). Of the 16 patterns, 8 registered at least one hit across the sample.&lt;/p&gt;

&lt;p&gt;Four findings from this work have been confirmed and disclosed:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Firecrawl MCP&lt;/strong&gt; — eval-based remote code execution, &lt;strong&gt;CVSS 10.0&lt;/strong&gt; (GitHub Issue #4190)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cloudflare MCP&lt;/strong&gt; — command injection via &lt;code&gt;container_exec&lt;/code&gt;, &lt;strong&gt;CVSS 9.3&lt;/strong&gt; (HackerOne)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AgenticX&lt;/strong&gt; — sandbox command injection, HIGH (CVE filed)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Supabase MCP&lt;/strong&gt; — wildcard &lt;code&gt;0.0.0.0&lt;/code&gt; bind, advisory QTVA-2026-10862645&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None of these are theoretical.&lt;/p&gt;

&lt;h2&gt;
  
  
  Risk #1 — Firecrawl MCP: eval-based RCE, CVSS 10.0
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The scenario.&lt;/strong&gt; Firecrawl MCP is widely used to ingest web content into RAG pipelines and knowledge bases. A prompt injection hidden in a crawled page can drive the ingestion side to evaluate attacker-controlled code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The attack chain.&lt;/strong&gt; Attacker publishes a page containing an embedded instruction → the crawler fetches it → the injected instruction steers the agent toward a &lt;code&gt;tool_call&lt;/code&gt; that reaches the vulnerable &lt;code&gt;eval&lt;/code&gt; path → arbitrary code executes on the machine running the crawler, which is the same process holding your vector-database credentials and pipeline secrets.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Who is exposed.&lt;/strong&gt; Any team running Firecrawl MCP for scraping, RAG collection, SEO, or content pipelines.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Governance action.&lt;/strong&gt; Treat every crawled page as untrusted input. Run ingestion in an isolated container with no mounted secrets, pin and review the MCP server version, and add a content-policy layer that strips embedded instructions before they reach the model.&lt;/p&gt;

&lt;h2&gt;
  
  
  Risk #2 — Cloudflare MCP: unsanitized command execution, CVSS 9.3
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The scenario.&lt;/strong&gt; The &lt;code&gt;container_exec&lt;/code&gt; tool in cloudflare/mcp-server-cloudflare passes arguments straight to Node's &lt;code&gt;exec()&lt;/code&gt;. In &lt;code&gt;apps/sandbox-container/container/sandbox.container.app.ts&lt;/code&gt; (line 140):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;proc&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;exec&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;execParams&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;args&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;   &lt;span class="c1"&gt;// args is z.string(), no allowlist&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The schema defines &lt;code&gt;ExecParams.args&lt;/code&gt; as a free-form &lt;code&gt;z.string()&lt;/code&gt; with no validation, and the &lt;code&gt;/exec&lt;/code&gt; endpoint carries no auth middleware.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The attack chain.&lt;/strong&gt; LLM agent → MCP &lt;code&gt;container_exec&lt;/code&gt; → &lt;code&gt;http://host:${PORT}/exec&lt;/code&gt; → &lt;code&gt;exec(args)&lt;/code&gt; runs an arbitrary shell command. Combined with the container's file read/write routes, this is data exfiltration, not just sandbox escape.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Who is exposed.&lt;/strong&gt; Teams deploying Cloudflare MCP on Workers / Durable Objects / R2, plus the developer machines and CI pipelines that run it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Governance action.&lt;/strong&gt; Replace &lt;code&gt;exec()&lt;/code&gt; with &lt;code&gt;spawn()&lt;/code&gt;/&lt;code&gt;execFile()&lt;/code&gt; and &lt;code&gt;shell: false&lt;/code&gt;; enforce a command allowlist; authenticate the exec route. Add a CI gate that fails on &lt;code&gt;child_process.exec(&lt;/code&gt; with non-literal arguments.&lt;/p&gt;

&lt;h2&gt;
  
  
  Risk #3 — Dify: pickle deserialization plus 41 SQL-injection candidates
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The scenario.&lt;/strong&gt; Dify persists document embeddings with Python &lt;code&gt;pickle&lt;/code&gt; in &lt;code&gt;api/models/dataset.py&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;cast&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;list&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;float&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;pickle&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;loads&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;embedding&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Anyone with database access can replace an embedding field with a malicious pickle payload that executes code at deserialization. Separately, the vector-database plugins (pgvector, Oracle, AnalyticDB) build SQL by f-string concatenation — 41 injection candidates across the plugin set.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The attack chain.&lt;/strong&gt; Compromised database (or a supply-chain path into it) → attacker writes a crafted pickle into an &lt;code&gt;embedding&lt;/code&gt; field → a normal document lookup triggers deserialization → code execution inside the Dify API container.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Who is exposed.&lt;/strong&gt; Self-hosted or enterprise Dify deployments running knowledge bases, customer-service agents, or low-code LLM apps.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Governance action.&lt;/strong&gt; Replace pickle with a safe serialization format (&lt;code&gt;json&lt;/code&gt; or numpy &lt;code&gt;.npy&lt;/code&gt;); audit vector-DB plugin inputs for user-controlled identifiers; keep database credentials least-privilege.&lt;/p&gt;

&lt;h2&gt;
  
  
  Risk #4 — n8n: sandbox escapes and a privilege-escalation chain
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The scenario.&lt;/strong&gt; n8n's 2026 advisory set (20 advisories, 12 high or critical) includes an expression-sandbox escape via arrow-function bodies that reaches command execution, an authenticated code execution in the Git node, an account takeover via an unverified email claim in token-exchange embed login, and SSO instance-role provisioning that escalates to instance owner.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The attack chain.&lt;/strong&gt; In a shared multi-user workspace, an expression in a workflow triggers the sandbox escape → arbitrary commands in the task runner → access to the credentials and LLM keys stored in the same platform. The advisory set also covers credential exfiltration via inline sub-workflow JSON from the shared-workflow editor.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Who is exposed.&lt;/strong&gt; Any organization running n8n workflows — and especially shared multi-user workspaces.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Governance action.&lt;/strong&gt; Keep n8n patched weekly; restrict who can edit shared workflows; isolate the task runner; treat credentials stored inside n8n as high-value assets for audit logging.&lt;/p&gt;

&lt;h2&gt;
  
  
  Risk #5 — Tools without a read-only guard: Stripe and Docker
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The scenario.&lt;/strong&gt; Two targets in our pattern study — stripe/ai and QuantGeekDev/docker-mcp — expose tools that can perform destructive operations with no read-only boundary. We verified three instances in stripe/ai (exploitability 65) and the same pattern in Docker's create/stop/remove/exec operations. In the MCP model, a &lt;code&gt;readOnlyHint&lt;/code&gt; declaration is advisory: nothing at runtime enforces it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The attack chain.&lt;/strong&gt; A prompt injection reaches an agent wired to Stripe MCP → the agent calls a payment or subscription tool that is declared read-only but is not enforced → a real refund or subscription change executes. For Docker MCP, an agent can create, stop, or remove containers — or run arbitrary commands inside them. Docker MCP also had the highest systemic-issue density in our sample (89% of findings systemic) with only 4 source files.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Who is exposed.&lt;/strong&gt; Payment integrators and Fintech teams routing LLM agents to Stripe; DevOps/MLOps teams letting agents manage containers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Governance action.&lt;/strong&gt; Enforce read-only boundaries at runtime, not just in declarations. For Stripe: restrict MCP to read-only operations unless a human approval step is in the loop. For Docker: do not expose container-management tools to shared agents; require explicit scoping.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why traditional SAST is not enough
&lt;/h2&gt;

&lt;p&gt;The blind-test results illustrate this directly. Our scanner flagged 94 candidate vulnerabilities across 24 projects in minutes. Manual review confirmed 1 and found 53 false positives — a 56.4% false-positive rate, and roughly 40% precision on critical/high findings before manual review. The false positives were not random: PyTorch's &lt;code&gt;model.eval()&lt;/code&gt; misread as Python &lt;code&gt;eval()&lt;/code&gt; (8.5% of findings); dictionary-key constants misread as hardcoded secrets (21.3%); SQL string-building misread as SQL injection (7.4%); Alembic migration DDL misread as injection (10.6%).&lt;/p&gt;

&lt;p&gt;A scanner that ships a 56% false-positive rate across 5,911 files is not a governance platform — it is noise. For an enterprise security team, the pipeline that works is three-stage: (1) L1 syntax-pattern matching for breadth; (2) L2 contextual and semantic filtering to separate real sinks from safe patterns; (3) manual PoC verification on anything that survives. That is the difference between a report and a decision.&lt;/p&gt;

&lt;h2&gt;
  
  
  A governance checklist for your AI stack
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Inventory.&lt;/strong&gt; Enumerate every MCP server and agent tool in production — official SDKs, vendor servers, and especially the 19 zero-GHSA repositories nobody has audited yet.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Runtime verification.&lt;/strong&gt; Static scanning finds patterns; runtime verification proves exploitability. Red-team your highest-privilege tool calls.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enforce read-only at runtime.&lt;/strong&gt; &lt;code&gt;readOnlyHint&lt;/code&gt; is a declaration, not a control. Enforce it, and put destructive tools behind human approval.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Treat tool arguments as untrusted input.&lt;/strong&gt; The fix patterns are boring and proven: &lt;code&gt;execFile&lt;/code&gt; over &lt;code&gt;exec&lt;/code&gt;, allowlists over regex, parameterized queries over f-strings, &lt;code&gt;shlex.quote&lt;/code&gt; on every path interpolation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Map to SOC 2 and audit requirements.&lt;/strong&gt; Per-user identity propagation instead of shared service credentials, tool-level RBAC, and a centralized audit trail that records who initiated an action, which agent executed it, which systems it touched, and how it was fulfilled.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Make it continuous.&lt;/strong&gt; New MCP servers ship weekly. Governance is a cadence, not a project.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Get a snapshot of your stack
&lt;/h2&gt;

&lt;p&gt;The MCP ecosystem has a hygiene problem that compounds fast: a protocol designed for tool access, adopted at enterprise speed, shipped without the platform layer around it. Workato's registry launch is the market acknowledging that gap. Our audits are the evidence for why it matters.&lt;/p&gt;

&lt;p&gt;We verify AI-stack security end to end — from 16 pattern classes down to a confirmed CVSS 10.0 exploit. If you want a starting point, request a free technical-stack snapshot at correctover.com/audit.html and we will send a 48-hour PDF covering your exposed MCP surface, the patterns that apply to your stack, and a fix-priority list.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This research was produced by the Correctover security team from our MCP ecosystem audit program (37-repo GHSA audit, 24-server blind test, 16-pattern cross-project study). For an enterprise AI security audit engagement, contact us via correctover.com/audit.html.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>mcp</category>
      <category>governance</category>
      <category>llm</category>
    </item>
    <item>
      <title>AI Agent Security Audit: From MCP Penetration Testing to LLM Vulnerability Assessment</title>
      <dc:creator>correctover</dc:creator>
      <pubDate>Thu, 30 Jul 2026 08:00:40 +0000</pubDate>
      <link>https://dev.to/correctover/ai-agent-security-audit-from-mcp-penetration-testing-to-llm-vulnerability-assessment-4k40</link>
      <guid>https://dev.to/correctover/ai-agent-security-audit-from-mcp-penetration-testing-to-llm-vulnerability-assessment-4k40</guid>
      <description>&lt;h1&gt;
  
  
  AI Agent Security Audit: From MCP Penetration Testing to LLM Vulnerability Assessment
&lt;/h1&gt;

&lt;p&gt;The rapid adoption of AI agents and MCP (Model Context Protocol) servers has introduced a new attack surface that traditional security tools were never designed to cover. Over the past 90 days, our research team has conducted systematic &lt;strong&gt;AI security audit&lt;/strong&gt; across 10 major AI frameworks — including CrewAI, AutoGen, LlamaIndex, LangGraph, Dify, and Haystack — uncovering 24 distinct vulnerability patterns that affect production LLM systems.&lt;/p&gt;

&lt;p&gt;This article shares our methodology, key findings, and practical recommendations for teams running &lt;strong&gt;LLM vulnerability assessment&lt;/strong&gt; programs.&lt;/p&gt;

&lt;h2&gt;
  
  
  The New Attack Surface: Why AI Agents Are Different
&lt;/h2&gt;

&lt;p&gt;Traditional web application security focuses on injection, broken authentication, and misconfiguration. AI agents introduce three fundamentally new risk categories:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Tool-level integrity failures&lt;/strong&gt; — Agents can be tricked into calling internal tools with malicious parameters, bypassing the human-in-the-loop safeguards&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prompt-to-code escalation&lt;/strong&gt; — User prompts that traverse through agent reasoning loops and execute as system commands&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP protocol-level bypasses&lt;/strong&gt; — Proxy servers that forward tool calls without validating intent or scope&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;During our &lt;strong&gt;MCP penetration testing&lt;/strong&gt; engagements, we identified that over 60% of MCP server implementations lack basic access control on tool execution — any connected client can invoke any registered tool, including destructive write operations disguised as read-only calls.&lt;/p&gt;

&lt;h2&gt;
  
  
  The CCS Methodology: 24 Rules, 10 Frameworks, 4 Platforms
&lt;/h2&gt;

&lt;p&gt;Our &lt;strong&gt;Component Correctness Standard (CCS)&lt;/strong&gt; scanner employs 24 detection rules organized by vulnerability category:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Category&lt;/th&gt;
&lt;th&gt;Rules&lt;/th&gt;
&lt;th&gt;Coverage&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Code Injection (Python/JS/Shell)&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;RCE via eval/exec/spawn/subprocess&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Path Traversal&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;Unsanitized user input in file operations&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SSRF/Open Redirect&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;Unvalidated URLs in agent tool calls&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Insecure Deserialization&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;Pickle/yaml/JSON parser abuse&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SQL Injection (format strings)&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;Dynamic query construction&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Credential Leakage&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;Hardcoded tokens in source&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MCP-specific (readOnlyHint bypass)&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;Protocol-level authorization gaps&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Supply Chain (npm/PyPI confusion)&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;Dependency confusion vectors&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The scanner has been validated against &lt;strong&gt;80,000 API traces&lt;/strong&gt; (20,000 publicly verified + 60,000 reserve), covering &lt;strong&gt;13 providers&lt;/strong&gt; and &lt;strong&gt;33 models&lt;/strong&gt;. Performance benchmarks show &lt;strong&gt;P50=22µs&lt;/strong&gt; and &lt;strong&gt;P99=99µs&lt;/strong&gt; per rule evaluation, making it suitable for runtime guardrail deployment.&lt;/p&gt;

&lt;h3&gt;
  
  
  Real-World Findings
&lt;/h3&gt;

&lt;p&gt;Our framework integration campaign (July 2026) resulted in confirmed vulnerabilities across multiple high-profile projects:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Project&lt;/th&gt;
&lt;th&gt;Vulnerability&lt;/th&gt;
&lt;th&gt;CVSS Equivalent&lt;/th&gt;
&lt;th&gt;Status&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Revis (蚂蚁集团)&lt;/td&gt;
&lt;td&gt;Path Traversal&lt;/td&gt;
&lt;td&gt;7.5 (HIGH)&lt;/td&gt;
&lt;td&gt;Submitted to 蚂蚁SRC (QTVA-2026-10862552)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CodeAnalysis (腾讯)&lt;/td&gt;
&lt;td&gt;Path Traversal via task_id&lt;/td&gt;
&lt;td&gt;7.5 (HIGH)&lt;/td&gt;
&lt;td&gt;Submitted to 腾讯SRC (QTVA-2026-10862567)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Monolith+verl (字节跳动)&lt;/td&gt;
&lt;td&gt;Tool Parameter Injection&lt;/td&gt;
&lt;td&gt;7.0 (HIGH)&lt;/td&gt;
&lt;td&gt;Submitted to 字节SRC (QTVA-2026-10862588)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LLaMA-Factory (360)&lt;/td&gt;
&lt;td&gt;SSRF via Model Loading&lt;/td&gt;
&lt;td&gt;7.5 (HIGH)&lt;/td&gt;
&lt;td&gt;Submitted to 360SRC (QTVA-2026-10862618)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Light-R1 (深度求索)&lt;/td&gt;
&lt;td&gt;Path Traversal&lt;/td&gt;
&lt;td&gt;7.0 (HIGH)&lt;/td&gt;
&lt;td&gt;Submitted to 360SRC (QTVA-2026-10862636)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;fdp-mcp-server&lt;/td&gt;
&lt;td&gt;Missing readOnlyHint Check&lt;/td&gt;
&lt;td&gt;7.5 (HIGH)&lt;/td&gt;
&lt;td&gt;Submitted to 补天&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dify&lt;/td&gt;
&lt;td&gt;SQL Injection (f-string)&lt;/td&gt;
&lt;td&gt;8.0 (HIGH)&lt;/td&gt;
&lt;td&gt;Submitted to 补天 (QTVA-2026-10861217)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Stripe-MCP&lt;/td&gt;
&lt;td&gt;Metadata Injection&lt;/td&gt;
&lt;td&gt;7.0 (HIGH)&lt;/td&gt;
&lt;td&gt;Submitted to 补天 (QTVA-2026-10861865)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;All findings were submitted through responsible disclosure channels including 补天, HackerOne, Bugcrowd, ZDI, and MSRC — achieving &lt;strong&gt;100% submission pipeline automation&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Deep Dive: MCP Security Audit Case Study
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Case 1: fdp-mcp-server — readOnlyHint Bypass
&lt;/h3&gt;

&lt;p&gt;During our &lt;strong&gt;AI security audit&lt;/strong&gt; of MCP proxy implementations, we discovered that fdp-mcp-server's &lt;code&gt;_call_tool&lt;/code&gt; function at &lt;code&gt;proxy_server.py:87&lt;/code&gt; forwards all tool requests to the backend &lt;strong&gt;without checking the &lt;code&gt;readOnlyHint&lt;/code&gt; flag&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;_call_tool&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;req&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;types&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;CallToolRequest&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;types&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ServerResult&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;remote_app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;call_tool&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="n"&gt;req&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;params&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;req&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;params&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;arguments&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="p"&gt;{})&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;types&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;ServerResult&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The MCP protocol specification defines &lt;code&gt;readOnlyHint&lt;/code&gt; as a field on &lt;code&gt;Tool&lt;/code&gt; objects returned by &lt;code&gt;ListToolsResult&lt;/code&gt;, intended to signal read-only intent. Since the proxy never validates this flag, an attacker can invoke destructive write operations through the proxy even when the client was configured for read-only access.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Impact&lt;/strong&gt;: Any MCP proxy server that lacks readOnlyHint validation effectively nullifies the protocol's access control mechanism. This affects all deployments using fdp-mcp-server as a transparent proxy.&lt;/p&gt;

&lt;h3&gt;
  
  
  Case 2: CodeAnalysis Path Traversal (腾讯)
&lt;/h3&gt;

&lt;p&gt;The CodeAnalysis client's &lt;code&gt;taskdirmgr.py&lt;/code&gt; constructs file paths using &lt;code&gt;os.path.join()&lt;/code&gt; with a &lt;code&gt;task_id&lt;/code&gt; taken directly from the server API response:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;acquire_task_dir&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;task_id&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;task_dir&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;_task_dirs_root&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;task_&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;task_id&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;makedirs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;task_dir&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;exist_ok&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;task_dir&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;task_id&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Since &lt;code&gt;task_id&lt;/code&gt; at &lt;code&gt;looprunner.py:204&lt;/code&gt; comes from &lt;code&gt;task_request.get('id')&lt;/code&gt; with zero validation, an attacker controlling or MITM-ing the server can supply &lt;code&gt;../../etc/evil&lt;/code&gt; as the task ID, causing arbitrary directory creation outside the intended workspace. Confirmed on both Linux and Windows environments.&lt;/p&gt;

&lt;h2&gt;
  
  
  Building Your LLM Vulnerability Assessment Pipeline
&lt;/h2&gt;

&lt;p&gt;Based on our experience across 10 framework integrations and 80K API traces, here's a practical methodology for running &lt;strong&gt;LLM vulnerability assessment&lt;/strong&gt; at scale:&lt;/p&gt;

&lt;h3&gt;
  
  
  Phase 1: Static Analysis (24 Rules)
&lt;/h3&gt;

&lt;p&gt;Run the CCS rule set against your agent codebase:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Code injection checkers&lt;/strong&gt;: grep for &lt;code&gt;exec()&lt;/code&gt;, &lt;code&gt;eval()&lt;/code&gt;, &lt;code&gt;subprocess.Popen()&lt;/code&gt; with user input&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Path traversal checkers&lt;/strong&gt;: identify &lt;code&gt;os.path.join()&lt;/code&gt; or &lt;code&gt;Path()&lt;/code&gt; calls with unsanitized parameters&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Credential scanners&lt;/strong&gt;: regex for API keys, tokens, and hardcoded secrets&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP protocol checkers&lt;/strong&gt;: verify &lt;code&gt;readOnlyHint&lt;/code&gt; and tool registry access control&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Phase 2: Dynamic Testing
&lt;/h3&gt;

&lt;p&gt;For each identified static finding:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Reproduce with a minimal PoC that proves the vulnerability&lt;/li&gt;
&lt;li&gt;Document the full attack chain (not just the code location)&lt;/li&gt;
&lt;li&gt;Verify the impact with a controlled test environment&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Phase 3: Responsible Disclosure
&lt;/h3&gt;

&lt;p&gt;Submit findings through the appropriate channel:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Open source&lt;/strong&gt;: GitHub Advisory + direct maintainer contact&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enterprise SRC&lt;/strong&gt;: 蚂蚁SRC/腾讯SRC/字节SRC/360SRC for Chinese vendors&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bug bounty&lt;/strong&gt;: HackerOne / Bugcrowd for eligible programs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ZDI/MSRC&lt;/strong&gt;: For Microsoft ecosystem vulnerabilities&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What's Next for AI Agent Security
&lt;/h2&gt;

&lt;p&gt;The AI security landscape is evolving faster than most organizations can keep up. Based on our research pipeline, here are the top three areas we're watching:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Agent-to-agent protocol security&lt;/strong&gt; — As multi-agent systems grow, inter-agent communication channels become prime attack surfaces&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Supply chain audits of LLM dependencies&lt;/strong&gt; — Model loading, LoRA adapter downloads, and plugin ecosystems are largely unvetted&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Runtime guardrail bypasses&lt;/strong&gt; — Even with input validation, clever prompt engineering can bypass safety layers&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If your team is running an &lt;strong&gt;AI security audit&lt;/strong&gt; or needs &lt;strong&gt;MCP penetration testing&lt;/strong&gt; for your deployment, our CCS scanner and methodology are available as open-source tools. The 24 detection rules power both our public scanner and our enterprise audit service.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This research was conducted by the Correctover security team. CCS scanner is available on GitHub at github.com/Correctover/ccs-scanner. For enterprise security audits, contact us at &lt;a href="mailto:wangguigui@correctover.com"&gt;wangguigui@correctover.com&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>mcp</category>
      <category>llm</category>
      <category>pentesting</category>
    </item>
    <item>
      <title>为什么越来越多海外买家选择福建石材？</title>
      <dc:creator>correctover</dc:creator>
      <pubDate>Tue, 28 Jul 2026 07:04:41 +0000</pubDate>
      <link>https://dev.to/correctover/wei-shi-yao-yue-lai-yue-duo-hai-wai-mai-jia-xuan-ze-fu-jian-shi-cai--2kk7</link>
      <guid>https://dev.to/correctover/wei-shi-yao-yue-lai-yue-duo-hai-wai-mai-jia-xuan-ze-fu-jian-shi-cai--2kk7</guid>
      <description>&lt;h1&gt;
  
  
  为什么越来越多海外买家选择福建石材？
&lt;/h1&gt;

&lt;p&gt;近年来，福建石材在全球市场的份额持续增长。从欧洲建材超市到中东工程项目，福建石材的身影越来越常见。本文解析海外买家选择福建石材的核心原因。&lt;/p&gt;




&lt;h2&gt;
  
  
  一、出口规模领先
&lt;/h2&gt;

&lt;p&gt;福建是中国最大的石材出口省份，出口额占全国石材出口的较大比重。（来源：中国石材行业协会公开数据）&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;主要出口市场：&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;东南亚（东盟国家）&lt;/li&gt;
&lt;li&gt;中东（阿联酋、沙特、卡塔尔）&lt;/li&gt;
&lt;li&gt;欧洲（德国、英国、法国）&lt;/li&gt;
&lt;li&gt;美洲（美国、加拿大、巴西）&lt;/li&gt;
&lt;li&gt;大洋洲（澳大利亚、新西兰）&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  二、六大竞争力优势
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. 产业链完整
&lt;/h3&gt;

&lt;p&gt;从矿山开采到成品出口的全链条能力，意味着：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;原材料采购成本更低&lt;/li&gt;
&lt;li&gt;加工环节衔接紧密&lt;/li&gt;
&lt;li&gt;配套辅料就地采购&lt;/li&gt;
&lt;li&gt;出口服务一站式&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. 技术成熟
&lt;/h3&gt;

&lt;p&gt;数十年石材加工经验积累：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;成熟的石英石板材生产工艺&lt;/li&gt;
&lt;li&gt;数控加工精度&lt;/li&gt;
&lt;li&gt;丰富的异形定制经验&lt;/li&gt;
&lt;li&gt;持续的技术升级投入&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. 交期可靠
&lt;/h3&gt;

&lt;p&gt;产业集群带来的供应稳定性：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;原材料库存充足&lt;/li&gt;
&lt;li&gt;多家工厂可并行生产&lt;/li&gt;
&lt;li&gt;厦门港/泉州港密集航运线路&lt;/li&gt;
&lt;li&gt;专业的出口物流团队&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. 品质稳步提升
&lt;/h3&gt;

&lt;p&gt;福建石材的品质管控对标国际标准：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ISO质量管理体系认证&lt;/li&gt;
&lt;li&gt;出口产品的检测标准与欧洲同步&lt;/li&gt;
&lt;li&gt;第三方检测机构便捷接入&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  5. 成本竞争力
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;规模化生产摊薄固定成本&lt;/li&gt;
&lt;li&gt;产业集群降低采购成本&lt;/li&gt;
&lt;li&gt;熟练工人提高生产效率&lt;/li&gt;
&lt;li&gt;良性竞争促进价格透明&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  6. 服务意识
&lt;/h3&gt;

&lt;p&gt;福建石材企业近年来在客户服务方面明显提升：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;英语销售团队覆盖&lt;/li&gt;
&lt;li&gt;样品快速送达&lt;/li&gt;
&lt;li&gt;项目管理沟通&lt;/li&gt;
&lt;li&gt;售后技术支持和质量保障&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  三、福建石材采购实操建议
&lt;/h2&gt;

&lt;h3&gt;
  
  
  供应商筛选要点
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;核实工厂资质&lt;/strong&gt;：营业执照、生产许可、检测报告&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;考察生产现场&lt;/strong&gt;：设备水平、质量管控、产能规模&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;验证出口经验&lt;/strong&gt;：出口记录、客户案例、国际认证&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;评估服务能力&lt;/strong&gt;：英语沟通、项目管理、售后响应&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  双基地供应商的额外优势
&lt;/h3&gt;

&lt;p&gt;拥有&lt;strong&gt;中国+海外&lt;/strong&gt;双基地的供应商（如泉州+泰国曼谷），提供了额外的供应保障和灵活性，特别适合对供应链安全要求高的客户。&lt;/p&gt;







&lt;p&gt;&lt;strong&gt;厦门九头牛实业有限公司 / 泉州君诺美建筑材料有限公司&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;双生产基地：中国福建泉州 + 泰国曼谷&lt;/li&gt;
&lt;li&gt;主营：石英石、岩板、人造石&lt;/li&gt;
&lt;li&gt;联系人：王桂桂 | 电话：15960098402 | 邮箱：&lt;a href="mailto:wgg234114134@163.com"&gt;wgg234114134@163.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;泉州工厂：德国进口生产线，22项专利技术&lt;/li&gt;
&lt;li&gt;泰国工厂：曼谷生产基地，服务东盟及全球市场&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;本文信息来源于公开行业资料和企业资质文件。价格数据来源于公开市场报价，实际价格以供应商报价为准。&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;本文产业信息来源于公开行业数据。企业信息来源于国家企业信用信息公示系统。&lt;/em&gt;&lt;/p&gt;

</description>
      <category>quartz</category>
      <category>fujian</category>
      <category>export</category>
      <category>buyer</category>
    </item>
    <item>
      <title>AI Security Audit and MCP Penetration Testing: A Practical Guide for AI Agent Security</title>
      <dc:creator>correctover</dc:creator>
      <pubDate>Mon, 27 Jul 2026 08:29:57 +0000</pubDate>
      <link>https://dev.to/correctover/ai-security-audit-and-mcp-penetration-testing-a-practical-guide-for-ai-agent-security-52bb</link>
      <guid>https://dev.to/correctover/ai-security-audit-and-mcp-penetration-testing-a-practical-guide-for-ai-agent-security-52bb</guid>
      <description>&lt;h2&gt;
  
  
  AI Security Audit and MCP Penetration Testing: A Practical Guide for AI Agent Security
&lt;/h2&gt;

&lt;p&gt;MCP（Model Context Protocol）正在迅速成为 AI Agent 与外部工具交互的标准协议。随着 MCP 生态从实验阶段进入生产部署，针对 MCP Server 的安全评估——包括 LLM vulnerability assessment 和 AI agent security audit——已经成为 AI 基础设施安全团队必须面对的新课题。&lt;/p&gt;

&lt;h3&gt;
  
  
  为什么 MCP 安全如此重要
&lt;/h3&gt;

&lt;p&gt;MCP 赋予了 AI Agent 调用外部工具的能力，但这也意味着攻击面从纯文本交互扩展到了操作系统命令执行、文件系统访问和网络请求。我们的 CCS（Correctover Code Scanner）安全审计团队在 2026 年 7 月对 12 个主流 AI Agent 框架执行了全量扫描，累计发现 1,730 项已验证的安全发现，覆盖 AutoGen、Semantic Kernel、Dify、FastMCP、MCP Python SDK、Griptape 等框架（来源：CCS v4.2 全量扫描，2026-07-21）。&lt;/p&gt;

&lt;h3&gt;
  
  
  MCP Server 攻击面分析
&lt;/h3&gt;

&lt;p&gt;基于我们的实际审计经验，MCP Server 的核心攻击面集中在以下四个方面：&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. 工具注入（Tool Injection）&lt;/strong&gt;：LLM 生成的 tool_call 参数直接传递给操作系统命令执行函数。CrewAI 的 MCP StdioTransport 是典型案例，其 &lt;code&gt;__init__()&lt;/code&gt; 方法将命令参数无校验传递至 &lt;code&gt;stdio_client()&lt;/code&gt;，触发任意 OS 子进程执行，已分配 CVE-2026-2287（来源：MSRC Case 126356，2026-07-10）。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. 反序列化 RCE&lt;/strong&gt;：LlamaIndex Workflows 使用 pickle 作为默认序列化器，攻击者可以通过控制序列化数据触发任意代码执行（LI-PICKLE-001，CVSS 9.8，来源：Phase 2 狩猎报告，2026-07-10）。Haystack Pipeline 的 &lt;code&gt;Pipeline.loads()&lt;/code&gt; 通过 &lt;code&gt;import_class_by_name()&lt;/code&gt; 动态加载任意 Python 模块，同样导致反序列化 RCE（HS-PIPE-001，CVSS 9.8，来源：Haystack 2.31.0 安全审计，2026-07-10）。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. 凭据泄露&lt;/strong&gt;：MCP Python SDK 的 CLI 层（&lt;code&gt;cli.py:280&lt;/code&gt;）将 &lt;code&gt;os.environ&lt;/code&gt; 直接传递给子进程，导致环境变量泄露（AGT-ENV-LEAK，CVSS 7.0，来源：CCS v4.2 扫描，2026-07-21）。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. SSRF 与服务端请求伪造&lt;/strong&gt;：AutoGen Studio 通过 MCP STDIO 协议暴露双路径 RCE，已提交 MSRC（来源：CrewAI MCP RCE 报告，2026-07-10）。&lt;/p&gt;

&lt;h3&gt;
  
  
  5-Step MCP Penetration Testing Checklist
&lt;/h3&gt;

&lt;p&gt;以下是我们在实际审计中使用的五步检查清单：&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1: 协议传输层审计&lt;/strong&gt;&lt;br&gt;
检查 MCP STDIO 传输层是否对 &lt;code&gt;command&lt;/code&gt; 和 &lt;code&gt;args&lt;/code&gt; 参数做输入校验。重点检查 &lt;code&gt;stdio_client()&lt;/code&gt; 调用路径，确认是否有 allowlist/denylist 机制。CrewAI 零防护的 StdioTransport 是反面教材（来源：CVE-2026-2287）。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2: 反序列化边界扫描&lt;/strong&gt;&lt;br&gt;
扫描所有序列化/反序列化入口点，特别是 pickle、yaml.load、eval/exec 调用。LlamaIndex Workflows 的 pickle 反序列化（CVE 待分配）和 Haystack 的 &lt;code&gt;Pipeline.loads()&lt;/code&gt; 都属于此类（来源：Phase 2 + Haystack 审计报告，2026-07-10）。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3: 环境变量与凭据暴露检测&lt;/strong&gt;&lt;br&gt;
检查 &lt;code&gt;os.environ&lt;/code&gt; 是否会传递给子进程或写入日志。MCP Python SDK 和 FastMCP 均有环境变量泄露问题（来源：CCS v4.2，2026-07-21）。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4: LLM 输出注入测试&lt;/strong&gt;&lt;br&gt;
构造恶意 prompt 诱导 Agent 调用危险工具函数。使用 prompt injection payload 库覆盖工具调用场景。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 5: 运行时行为监控&lt;/strong&gt;&lt;br&gt;
传统静态扫描无法覆盖运行时动态行为。部署运行时验证层，对每个 tool_call 做策略检查，确保参数类型、权限范围、执行路径符合安全基线。&lt;/p&gt;

&lt;h3&gt;
  
  
  Runtime Verification：填补静态扫描的空白
&lt;/h3&gt;

&lt;p&gt;静态代码扫描可以发现已知模式的安全漏洞，但对于运行时动态行为——如 LLM 生成的 tool_call 参数是否越权、序列化数据是否被篡改——需要 runtime verification 能力。&lt;/p&gt;

&lt;p&gt;CCS（Correctover Code Scanner）采用 Interceptor 架构，在 AI Agent 的 tool_call 执行路径中插入策略检查点，对每次调用执行参数校验、权限验证和审计日志记录。实测数据显示，CCS 核心 evaluate 操作的 P50 低于 10µs，P99 低于 25µs（来源：CCS v1.0 性能基准测试，50K 次迭代，2026-07-25），性能开销可忽略不计。&lt;/p&gt;

&lt;h3&gt;
  
  
  总结
&lt;/h3&gt;

&lt;p&gt;MCP 生态的安全成熟度仍处于早期阶段。我们通过全量扫描发现的 1,730 项安全问题和多个 CVSS 9.8 RCE 漏洞表明，当前主流 AI Agent 框架在工具注入、反序列化、凭据保护方面存在系统性缺陷。AI agent security 需要从静态扫描走向运行时验证，才能真正覆盖全攻击面。&lt;/p&gt;

&lt;p&gt;Correctover 提供面向 AI Agent 的运行时安全层（AI Runtime Security Layer），通过 CCS 在工具调用路径中实施策略校验和实时防护，在不影响性能的前提下填补传统安全工具的空白。&lt;/p&gt;

&lt;p&gt;了解更多：&lt;a href="https://correctover.github.io" rel="noopener noreferrer"&gt;https://correctover.github.io&lt;/a&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>mcp</category>
      <category>pentesting</category>
      <category>ai</category>
    </item>
    <item>
      <title>石英石台面日常保养与维护指南</title>
      <dc:creator>correctover</dc:creator>
      <pubDate>Mon, 27 Jul 2026 08:23:33 +0000</pubDate>
      <link>https://dev.to/correctover/shi-ying-shi-tai-mian-ri-chang-bao-yang-yu-wei-hu-zhi-nan-560h</link>
      <guid>https://dev.to/correctover/shi-ying-shi-tai-mian-ri-chang-bao-yang-yu-wei-hu-zhi-nan-560h</guid>
      <description>&lt;h1&gt;
  
  
  石英石台面日常保养与维护指南
&lt;/h1&gt;

&lt;p&gt;石英石以其高硬度和低维护成本著称，但正确的日常保养能显著延长台面的使用寿命和美观度。本文提供实用的石英石台面保养指南。&lt;/p&gt;




&lt;h2&gt;
  
  
  一、日常清洁
&lt;/h2&gt;

&lt;h3&gt;
  
  
  每日清洁
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;步骤&lt;/th&gt;
&lt;th&gt;方法&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1. 表面清理&lt;/td&gt;
&lt;td&gt;用软布或海绵清除表面杂物&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2. 清水擦拭&lt;/td&gt;
&lt;td&gt;用温水湿润的软布擦拭&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3. 擦干&lt;/td&gt;
&lt;td&gt;用干布擦干表面&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  推荐清洁工具
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;可以使用：&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;软布、超细纤维布&lt;/li&gt;
&lt;li&gt;海绵（非金属面）&lt;/li&gt;
&lt;li&gt;中性清洁剂&lt;/li&gt;
&lt;li&gt;温水&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;不建议使用：&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;钢丝球、研磨海绵&lt;/li&gt;
&lt;li&gt;含漂白剂或强酸强碱的清洁剂&lt;/li&gt;
&lt;li&gt;去漆剂、脱漆剂&lt;/li&gt;
&lt;li&gt;烤箱清洁剂&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  二、污渍处理方法
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;污渍类型&lt;/th&gt;
&lt;th&gt;处理方法&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;普通污渍（油渍/酱汁）&lt;/td&gt;
&lt;td&gt;中性清洁剂+温水擦拭&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;咖啡/茶/红酒&lt;/td&gt;
&lt;td&gt;小苏打糊敷15分钟后清洗&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;油墨/记号笔&lt;/td&gt;
&lt;td&gt;酒精擦拭（立即处理）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;胶水残留&lt;/td&gt;
&lt;td&gt;温水浸泡后轻刮&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;对于顽固污渍，建议先在小面积试用清洁方法。&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  三、日常注意事项
&lt;/h2&gt;

&lt;h3&gt;
  
  
  温度的注意事项
&lt;/h3&gt;

&lt;p&gt;虽然石英石耐温约150℃，但建议：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;热锅/热壶下使用隔热垫&lt;/li&gt;
&lt;li&gt;避免冷热急剧交替&lt;/li&gt;
&lt;li&gt;电热锅等持续高温器具下加隔热板&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  切割的注意事项
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;石英石硬度高（莫氏6-7），日常切割不易留痕&lt;/li&gt;
&lt;li&gt;但建议使用砧板（保护刀具，也保护台面）&lt;/li&gt;
&lt;li&gt;避免在台面上剁硬物&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  四、长期维护
&lt;/h2&gt;

&lt;h3&gt;
  
  
  定期检查
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;每月检查接缝处是否完好&lt;/li&gt;
&lt;li&gt;检查水槽周边密封是否严密&lt;/li&gt;
&lt;li&gt;检查表面抛光是否退化&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  专业维护
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;维护项目&lt;/th&gt;
&lt;th&gt;频率&lt;/th&gt;
&lt;th&gt;说明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;表面抛光&lt;/td&gt;
&lt;td&gt;2-3年一次&lt;/td&gt;
&lt;td&gt;恢复光泽度&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;接缝修复&lt;/td&gt;
&lt;td&gt;按需&lt;/td&gt;
&lt;td&gt;变黄或松动的接缝重新处理&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;深度清洁&lt;/td&gt;
&lt;td&gt;每年一次&lt;/td&gt;
&lt;td&gt;专业清洁&amp;amp;密封检查&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;







&lt;p&gt;&lt;strong&gt;厦门九头牛实业有限公司 / 泉州君诺美建筑材料有限公司&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;双生产基地：中国福建泉州 + 泰国曼谷&lt;/li&gt;
&lt;li&gt;主营：石英石、岩板、人造石&lt;/li&gt;
&lt;li&gt;联系人：王桂桂 | 电话：15960098402 | 邮箱：&lt;a href="mailto:wgg234114134@163.com"&gt;wgg234114134@163.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;泉州工厂：德国进口生产线，22项专利技术&lt;/li&gt;
&lt;li&gt;泰国工厂：曼谷生产基地，服务东盟及全球市场&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;本文信息来源于公开行业资料和企业资质文件。价格数据来源于公开市场报价，实际价格以供应商报价为准。&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;本文维护建议基于行业常规保养指南。具体产品请以供应商提供的保养手册为准。&lt;/em&gt;&lt;/p&gt;

</description>
      <category>quartz</category>
      <category>care</category>
      <category>maintenance</category>
      <category>cleaning</category>
    </item>
    <item>
      <title>We Found 56+ Security Vulnerabilities (6 Critical RCEs) Across 13 AI Agent Frameworks - Here Is What Systematic Auditing Taught Us</title>
      <dc:creator>correctover</dc:creator>
      <pubDate>Sat, 25 Jul 2026 10:00:49 +0000</pubDate>
      <link>https://dev.to/correctover/we-found-56-security-vulnerabilities-6-critical-rces-across-13-ai-agent-frameworks-here-is-2ji6</link>
      <guid>https://dev.to/correctover/we-found-56-security-vulnerabilities-6-critical-rces-across-13-ai-agent-frameworks-here-is-2ji6</guid>
      <description>&lt;h1&gt;
  
  
  We Found 56+ Security Vulnerabilities (6 Critical RCEs) Across 13 AI Agent Frameworks — Here Is What Systematic Auditing Taught Us
&lt;/h1&gt;

&lt;p&gt;The AI agent ecosystem is growing faster than its security practices can keep up. Over the past six weeks, we ran a systematic security audit across 13+ mainstream AI agent frameworks — CrewAI, AutoGen, AG2, LlamaIndex, Haystack, LiteLLM, Semantic Kernel, LangChain, Dify, FastMCP, MCP Python SDK, Griptape, and Docker MCP. The results were sobering: 56+ verified security vulnerabilities, including 7 that we responsibly disclosed to MSRC, ZDI, HackerOne, and GitHub Security. Six of those are Remote Code Execution (RCE) vulnerabilities with CVSS scores of 9.8 or 9.3. One is a critical SSRF that bypasses existing guardrail protections.&lt;/p&gt;

&lt;p&gt;This is not a theoretical exercise. Every vulnerability listed here was verified with a working proof of concept and, where possible, submitted through a formal bounty channel. Some produced same-day responses from Microsoft's Security Response Center.&lt;/p&gt;




&lt;h2&gt;
  
  
  The 7 Responsibly Disclosed Vulnerabilities
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. CrewAI MCP StdioTransport RCE (CVSS 9.8)
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;StdioTransport.__init__()&lt;/code&gt; method in CrewAI passes user-controlled command strings directly to &lt;code&gt;stdio_client()&lt;/code&gt; with zero validation. Any MCP server configuration pointing to a malicious command triggers arbitrary OS process execution. CrewAI was the most vulnerable mainstream framework we tested — no allowlist, no input sanitization, nothing. We filed this with MSRC and received a case number (126356) the same day. It is now tracked as CVE-2026-2287.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. AutoGen Studio RCE (CVSS 9.8)
&lt;/h3&gt;

&lt;p&gt;Microsoft AutoGen's &lt;code&gt;magentic-one-cli&lt;/code&gt; accepts a &lt;code&gt;--config&lt;/code&gt; parameter that is passed directly to Python's &lt;code&gt;open()&lt;/code&gt; without any path validation. Combined with AutoGen's &lt;code&gt;exec()&lt;/code&gt; usage in &lt;code&gt;captainagent&lt;/code&gt; (another MSRC-reported RCE), an attacker who controls the configuration file path achieves full remote code execution on the host. We submitted both vectors to MSRC alongside the path traversal disclosure.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. AG2 eval() &lt;code&gt;__str__\&lt;/code&gt; Bypass RCE (CVSS 9.8)
&lt;/h3&gt;

&lt;p&gt;AG2 (the community fork of AutoGen) uses &lt;code&gt;eval()&lt;/code&gt; in &lt;code&gt;context_expression.py&lt;/code&gt; for string interpolation during agent group chat. The code does escape string values, but objects that implement a custom &lt;code&gt;__str__()&lt;/code&gt; method bypass that escape mechanism entirely. The source code even contains a comment explicitly acknowledging that "custom &lt;code&gt;__str__&lt;/code&gt; injection is out of scope." An LLM-controlled &lt;code&gt;context_variables&lt;/code&gt; value with a crafted &lt;code&gt;__str__&lt;/code&gt; method produces full RCE with no additional exploit steps. Filed as GitHub Issue #3073.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. LlamaIndex Pickle Deserialization RCE (CVSS 9.8)
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;Workflows&lt;/code&gt; serializer in LlamaIndex calls &lt;code&gt;pickle.loads(base64.b64decode(value))&lt;/code&gt; — textbook pickle RCE against one of the most widely used LLM orchestration frameworks. The &lt;code&gt;PickleSerializer&lt;/code&gt; is registered as one of the default serializers for workflow state persistence, meaning any workflow that serializes intermediate state is exploitable. A malicious workflow definition triggers arbitrary code execution at deserialization time. Filed as GitHub Issue #22296.&lt;/p&gt;

&lt;h3&gt;
  
  
  5-6. Haystack Pipeline Deserialization RCEs (CVSS 9.8 and 9.3)
&lt;/h3&gt;

&lt;p&gt;Haystack 2.31.0 has two independent deserialization RCE pathways, both critical.&lt;/p&gt;

&lt;p&gt;The first (CVSS 9.8): &lt;code&gt;Pipeline.loads()&lt;/code&gt; calls &lt;code&gt;import_class_by_name()&lt;/code&gt; to dynamically import any Python class from YAML or JSON input. The chain &lt;code&gt;thread_safe_import()&lt;/code&gt; followed by &lt;code&gt;getattr(module, class_name)&lt;/code&gt; gives an attacker full control over class instantiation — no module allowlist is enforced.&lt;/p&gt;

&lt;p&gt;The second (CVSS 9.3): &lt;code&gt;deserialize_callable("os.system")&lt;/code&gt; returns a callable &lt;code&gt;os.system&lt;/code&gt; function object directly. This deserialized callable is used by &lt;code&gt;Tool.from_dict()&lt;/code&gt; and &lt;code&gt;OutputAdapter.from_dict()&lt;/code&gt;, meaning any pipeline loading serialized tool definitions can be hijacked. No type restrictions or module allowlists are applied.&lt;/p&gt;

&lt;h3&gt;
  
  
  7. LiteLLM Guardrail SSRF (CVSS 8.6)
&lt;/h3&gt;

&lt;p&gt;LiteLLM's guardrail hook system uses &lt;code&gt;is_valid_url()&lt;/code&gt; to validate URLs — but this function performs only a syntax check. The platform separately provides &lt;code&gt;validate_url()&lt;/code&gt;, which performs DNS resolution, IP blacklist checking, and URL rewriting, but it is never called from the guardrail &lt;code&gt;http_request()&lt;/code&gt; path. This gap allows an attacker who can inject a guardrail configuration to access cloud metadata endpoints (169.254.169.254), Azure Wire Server, and internal network services, all through a validated-by-syntax URL. Filed as GitHub Issue #32862.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Scale of the Problem
&lt;/h2&gt;

&lt;p&gt;These seven disclosures are the visible part of a much larger finding. Our automated scanning using the Correctover CCS (Call Correctness Standard) v1.0 detection engine identified &lt;strong&gt;56+ verified vulnerabilities&lt;/strong&gt; across 13+ frameworks — after false positive filtering and manual PoC verification.&lt;/p&gt;

&lt;p&gt;The largest single source of vulnerabilities is what we call the &lt;strong&gt;MCP readOnlyHint gap&lt;/strong&gt;. The &lt;code&gt;modelcontextprotocol/python-sdk&lt;/code&gt; defines a &lt;code&gt;readOnlyHint&lt;/code&gt; boolean on tools to indicate read-only intent, but the runtime never enforces it. Every downstream framework inherits this broken contract. We found 87 production code instances of unguarded tool invocation across six frameworks — AutoGen, Semantic Kernel, FastMCP, Dify, Griptape, and MCP Python SDK itself. The readOnlyHint acts as documentation only, with zero runtime consequences.&lt;/p&gt;

&lt;p&gt;Beyond the readOnlyHint gap, three vulnerability patterns appeared consistently across frameworks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tool argument injection&lt;/strong&gt;: Frameworks pass LLM-generated tool call arguments directly to OS-level functions like &lt;code&gt;subprocess.Popen()&lt;/code&gt; with no validation or escaping. This was most severe in CrewAI (zero mitigations) but also present in LiteLLM (allowlist with known bypasses).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Path traversal in config loaders&lt;/strong&gt;: User-controlled file paths in CLI arguments and configuration files feed directly into &lt;code&gt;open()&lt;/code&gt; calls. AutoGen and Dify both had this pattern at CVSS 9.8.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Environment variable leakage&lt;/strong&gt;: CLI tools pass &lt;code&gt;os.environ&lt;/code&gt; to child processes, leaking API keys and secrets. Found in MCP Python SDK and FastMCP.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  How We Found Them: Methodology
&lt;/h2&gt;

&lt;p&gt;The audit process combines automated scanning with manual validation:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;24 CCS detection rules&lt;/strong&gt; — compiled from real vulnerability research across six months of agent framework analysis. Each rule targets a specific exploit class: eval/exec misuse, unsafe deserialization (pickle, yaml.load, import_by_name), subprocess injection, path traversal, SSRF, and environment leakage.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dual-path detection&lt;/strong&gt; — AST scanning identifies structural patterns (e.g., function calls to &lt;code&gt;eval()&lt;/code&gt;, &lt;code&gt;pickle.loads()&lt;/code&gt;, &lt;code&gt;subprocess.Popen()&lt;/code&gt;) while regex verification cross-checks against known exploit signatures. This dual-path approach significantly reduces false positives.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PoC-gated classification&lt;/strong&gt; — every candidate finding receives a working proof of concept before being classified as a confirmed vulnerability. Only PoC-verified findings enter the final count.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The 24 detection rules are published as part of the &lt;strong&gt;CCS v1.0 standard&lt;/strong&gt; at github.com/Correctover/standards. The accompanying open dataset includes 20,000 production API traces from 13 LLM providers and 33 models — part of a total 80,000-trace corpus collected through real API measurements.&lt;/p&gt;

&lt;p&gt;Runtime verification latency is P50=22 microseconds (measured across 1 million samples), making it feasible to insert into production agent call paths with no perceptible overhead.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why This Matters for AI Agents in Production
&lt;/h2&gt;

&lt;p&gt;The vulnerabilities we found share a disturbing pattern: they are not obscure edge cases. They are fundamental architectural gaps in how agent frameworks handle untrusted input from LLMs.&lt;/p&gt;

&lt;p&gt;Every framework we tested assumes LLM outputs are authoritative. The architecture treats "what the LLM says" as trusted and routes it directly to tool execution — with no verification layer in between. This is the equivalent of running &lt;code&gt;eval()&lt;/code&gt; on user input in a web application, a practice the security industry stopped tolerating two decades ago.&lt;/p&gt;

&lt;p&gt;The frameworks that have implemented security measures — LiteLLM's allowlist, AutoGen's partial mitigations — apply them inconsistently with known bypasses. The MCP readOnlyHint is the clearest example: a security contract defined in the protocol specification but never enforced in the runtime, giving developers a false sense of safety.&lt;/p&gt;

&lt;p&gt;When an agent framework runs in production with access to internal APIs, databases, filesystem, and code execution, every one of these vulnerabilities becomes a potential data breach or full host compromise.&lt;/p&gt;




&lt;h2&gt;
  
  
  Runtime Call Verification: The Missing Security Layer
&lt;/h2&gt;

&lt;p&gt;What the AI agent ecosystem needs is not more per-framework security patches applied after vulnerabilities are found. It needs a &lt;strong&gt;verification layer&lt;/strong&gt; that sits on the execution path between the LLM and tool execution — enforcing policy regardless of which framework is in use.&lt;/p&gt;

&lt;p&gt;The Correctover CCS SDK implements this as a synchronous interceptor: a &lt;code&gt;@govern()&lt;/code&gt; decorator that validates every tool call against a policy before the tool executes. Unlike observer-pattern hooks (which produce a callback but do not block execution — a CWE-636 fail-open pattern present in every major framework we audited), the CCS interceptor operates on the execution path itself. If governance crashes, the tool is blocked. Fail-closed, not fail-open.&lt;/p&gt;

&lt;p&gt;The SDK integrates with CrewAI, AutoGen, LangChain, and LangGraph in 2-4 lines of code. The CCS v1.0 standard, detection rules, and integration kit are all open source at &lt;strong&gt;github.com/Correctover&lt;/strong&gt;.&lt;/p&gt;




&lt;p&gt;The 56+ vulnerabilities we found are not someone else's problem. If you are deploying AI agents in production today — with access to internal APIs, databases, or code execution — you are exposed to these same attack surfaces. The question is not whether your framework has these vulnerabilities, but whether you have a runtime verification layer catching them before they reach production.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This research was conducted by the Correctover security research team. Responsible disclosure timeline and individual advisory details are available at &lt;a href="https://github.com/Correctover/standards" rel="noopener noreferrer"&gt;github.com/Correctover/standards&lt;/a&gt; and &lt;a href="https://github.com/Correctover/mcp-security-audit" rel="noopener noreferrer"&gt;github.com/Correctover/mcp-security-audit&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>ai</category>
      <category>bugbounty</category>
      <category>rce</category>
    </item>
    <item>
      <title>AI Agent Security is Broken — We Integrated Runtime Call Verification into 4 Major Frameworks</title>
      <dc:creator>correctover</dc:creator>
      <pubDate>Sat, 25 Jul 2026 07:37:07 +0000</pubDate>
      <link>https://dev.to/correctover/ai-agent-security-is-broken-we-integrated-runtime-call-verification-into-4-major-frameworks-4o43</link>
      <guid>https://dev.to/correctover/ai-agent-security-is-broken-we-integrated-runtime-call-verification-into-4-major-frameworks-4o43</guid>
      <description>&lt;h2&gt;
  
  
  The Blind Spot in AI Agent Security
&lt;/h2&gt;

&lt;p&gt;Every major AI security framework today — LangChain, Promptfoo, Garak, PyRIT — shares a critical blind spot: &lt;strong&gt;they check what comes into the model, but not what the model tells its tools to do.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In 2026, AI agents don't just chat. They:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Execute shell commands via MCP servers&lt;/li&gt;
&lt;li&gt;Make HTTP requests to internal services&lt;/li&gt;
&lt;li&gt;Read and write filesystem paths&lt;/li&gt;
&lt;li&gt;Authenticate to third-party APIs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When an LLM tells a tool to &lt;code&gt;os.system("rm -rf /data")&lt;/code&gt; or &lt;code&gt;curl http://169.254.169.254/latest/meta-data/&lt;/code&gt;, that's not a "prompt" — it's a &lt;strong&gt;runtime call&lt;/strong&gt;. And none of the existing frameworks were designed to inspect that.&lt;/p&gt;

&lt;p&gt;We built &lt;strong&gt;Correctover CCS (Call Shield)&lt;/strong&gt; to fill this gap, and today we're announcing production-grade integrations with all four major frameworks.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is CCS?
&lt;/h2&gt;

&lt;p&gt;CCS is a deterministic runtime call verification engine for AI agents. It inspects LLM-generated tool call payloads against 24 rules across 7 categories in 22µs (P50):&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Category&lt;/th&gt;
&lt;th&gt;Rules&lt;/th&gt;
&lt;th&gt;What It Detects&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Prompt Injection&lt;/td&gt;
&lt;td&gt;6 rules&lt;/td&gt;
&lt;td&gt;System prompt override, role hijacking, delimiter injection&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RCE&lt;/td&gt;
&lt;td&gt;5 rules&lt;/td&gt;
&lt;td&gt;os.system(), subprocess.Popen(), eval(), rm -rf, curl | bash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SSRF&lt;/td&gt;
&lt;td&gt;3 rules&lt;/td&gt;
&lt;td&gt;Localhost, metadata endpoints (169.254.169.254), private network ranges&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Path Traversal&lt;/td&gt;
&lt;td&gt;3 rules&lt;/td&gt;
&lt;td&gt;../, /etc/passwd, ~/.ssh, Windows boot.ini&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Credential Leak&lt;/td&gt;
&lt;td&gt;4 rules&lt;/td&gt;
&lt;td&gt;AWS keys, SSH private keys, API tokens, Bearer auth&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Insecure Deserialization&lt;/td&gt;
&lt;td&gt;3 rules&lt;/td&gt;
&lt;td&gt;pickle.loads(), unsafe yaml.load(), eval()&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sensitive Data Exposure&lt;/td&gt;
&lt;td&gt;2 rules&lt;/td&gt;
&lt;td&gt;Database URLs, kubectl/terraform/gcloud commands&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;No LLM dependency. No false positive tuning. No API call to an external service.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Four Integrations
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. LangChain (&lt;code&gt;langchain-core&lt;/code&gt; Callback)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;PR: &lt;a href="https://github.com/langchain-ai/langchain/pull/39067" rel="noopener noreferrer"&gt;#39067&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The most native integration. A &lt;code&gt;BaseCallbackHandler&lt;/code&gt; subclass that hooks into LangChain's &lt;code&gt;on_agent_action&lt;/code&gt; callback — right at the moment a tool call is generated and before it's executed.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;correctover_langchain&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;CorrectoverCallbackHandler&lt;/span&gt;

&lt;span class="c1"&gt;# Mode 1: Log — detect but don't block
&lt;/span&gt;&lt;span class="n"&gt;handler&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;CorrectoverCallbackHandler&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mode&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;log&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Mode 2: Block — raise on violation
&lt;/span&gt;&lt;span class="n"&gt;handler&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;CorrectoverCallbackHandler&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mode&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;block&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Mode 3: Report — collect and summarize
&lt;/span&gt;&lt;span class="n"&gt;handler&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;CorrectoverCallbackHandler&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mode&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;report&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;agent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;initialize_agent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;llm&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;llm&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;callbacks&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;handler&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Also includes &lt;code&gt;CorrectoverCCSRunnable&lt;/code&gt; — an LCEL-compatible Runnable wrapper for tool-level validation in LangGraph pipelines. Install via &lt;code&gt;pip install correctover-langchain&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Promptfoo (Plugin)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;PR: &lt;a href="https://github.com/promptfoo/promptfoo/pull/10207" rel="noopener noreferrer"&gt;#10207&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A lightweight plugin that adds CCS checks to Promptfoo's red-teaming assertions. Works with Promptfoo's existing test harness — no configuration beyond adding &lt;code&gt;ccs-tool-call&lt;/code&gt; to your promptfooconfig.yaml:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;targets&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;python&lt;/span&gt;
    &lt;span class="na"&gt;config&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;tools&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;read_file&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;write_file&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;exec_shell&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;

&lt;span class="na"&gt;assert&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ccs-tool-call&lt;/span&gt;
    &lt;span class="na"&gt;rules&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;RCE&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;SSRF&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;PATH_TRAVERSAL&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. Garak (Detector Plugin)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;PR: &lt;a href="https://github.com/NVIDIA/garak/pull/1987" rel="noopener noreferrer"&gt;#1987&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A Garak &lt;code&gt;Detector&lt;/code&gt; subclass that integrates CCS scanning into Garak's probe → detector pipeline. Works with any probe that generates tool-calling prompts (e.g., &lt;code&gt;agent_breaker&lt;/code&gt;):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;garak &lt;span class="nt"&gt;--model_type&lt;/span&gt; &amp;lt;model&amp;gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--probes&lt;/span&gt; agent_breaker &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--detectors&lt;/span&gt; ccs.CCSDetector
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Returns 0.0 (clean) / 0.7–1.0 (violation severity) per output. Tags: &lt;code&gt;quality:Security:AgentSecurity&lt;/code&gt;, &lt;code&gt;owasp:llm06&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. PyRIT (Scorer Plugin)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;PR: &lt;a href="https://github.com/microsoft/PyRIT/pull/2273" rel="noopener noreferrer"&gt;#2273&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A &lt;code&gt;RegexScorer&lt;/code&gt; subclass following the same pattern as PyRIT's existing &lt;code&gt;XSSOutputScorer&lt;/code&gt;, &lt;code&gt;SQLInjectionOutputScorer&lt;/code&gt;, and &lt;code&gt;ShellCommandOutputScorer&lt;/code&gt;. 24 compiled regex patterns, configurable by category:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;pyrit.score&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;CCSOutputScorer&lt;/span&gt;

&lt;span class="n"&gt;scorer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;CCSOutputScorer&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;score&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;scorer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;score_text_async&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;subprocess.run(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;rm -rf /data&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;, shell=True)&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;# score = True (detected)
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Why "Deterministic" Matters
&lt;/h2&gt;

&lt;p&gt;Every integration above uses &lt;strong&gt;deterministic rule matching&lt;/strong&gt; — no LLM calls during inference. This is a deliberate architectural choice:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Latency&lt;/strong&gt;: 22µs P50 vs 500ms+ for LLM-based scanners&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cost&lt;/strong&gt;: Zero inference cost vs paying per-token for LLM judges&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Certainty&lt;/strong&gt;: No false positives from model drift. A regex either matches or it doesn't&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auditability&lt;/strong&gt;: Every detection is explainable — "pattern X matched string Y at position Z"&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For production AI agents handling millions of tool calls per day, this matters.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Bigger Picture
&lt;/h2&gt;

&lt;p&gt;These four integrations cover four different use cases:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Framework&lt;/th&gt;
&lt;th&gt;Best For&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;LangChain&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Production AI agent deployment with real-time blocking&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Promptfoo&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Red-teaming and security testing during CI/CD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Garak&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Large-scale adversarial probing and benchmarking&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;PyRIT&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Security research and scoring automation&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Together, they mean any team building with AI agents can slot in runtime call verification regardless of their framework choice.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;MCP Server validation&lt;/strong&gt; — shield mode for MCP connections (Q3 2026)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OpenTelemetry integration&lt;/strong&gt; — CCS metrics in your observability stack&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Custom rules&lt;/strong&gt; — BYO regex patterns per deployment&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All integrations are open source under Correctover's commercial license. Try them:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/Correctover" rel="noopener noreferrer"&gt;github.com/Correctover&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;CCS Standard: &lt;a href="https://github.com/Correctover/standards" rel="noopener noreferrer"&gt;github.com/Correctover/standards&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Website: &lt;a href="https://correctover.com" rel="noopener noreferrer"&gt;correctover.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;MCP Server: &lt;code&gt;pip install correctover-mcp-server&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Correctover CCS — Runtime Call Verification for AI Agents. Because your AI should execute what you intended, not what the prompt tricked it into.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>aisecurity</category>
      <category>agents</category>
      <category>infosec</category>
      <category>python</category>
    </item>
    <item>
      <title>MCP Penetration Testing: A Practical Guide for AI Agent Infrastructure Security</title>
      <dc:creator>correctover</dc:creator>
      <pubDate>Sat, 25 Jul 2026 02:28:34 +0000</pubDate>
      <link>https://dev.to/correctover/mcp-penetration-testing-a-practical-guide-for-ai-agent-infrastructure-security-1027</link>
      <guid>https://dev.to/correctover/mcp-penetration-testing-a-practical-guide-for-ai-agent-infrastructure-security-1027</guid>
      <description>&lt;h1&gt;
  
  
  MCP Penetration Testing: A Practical Guide for AI Agent Infrastructure Security
&lt;/h1&gt;

&lt;p&gt;The rapid adoption of the Model Context Protocol (MCP) has created a new attack surface that traditional security tools — SAST, DAST, WAFs — were never designed to cover. When an AI agent speaks to a database, a file system, a cloud API, or a CI/CD pipeline, it does so through an MCP server. If that server is vulnerable, the agent becomes a delivery vehicle for exploitation.&lt;/p&gt;

&lt;p&gt;This guide covers what &lt;strong&gt;MCP penetration testing&lt;/strong&gt; actually looks like in practice, the most common vulnerability patterns we have identified across production AI systems, and how &lt;strong&gt;LLM vulnerability assessment&lt;/strong&gt; differs from conventional web app testing.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why MCP Security Is a New Category
&lt;/h2&gt;

&lt;p&gt;Unlike a REST API where each endpoint is documented and version-controlled, an MCP server exposes a dynamic tool surface. Tools are registered at runtime, invoked by natural-language prompts, and often chain results across multiple backends. This creates three unique risks:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Tool injection&lt;/strong&gt; — An attacker-controlled input reaches an MCP tool and is executed with the agent's privilege level&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cross-tool data leakage&lt;/strong&gt; — Information from one tool response is inadvertently passed to another tool with broader access&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prompt-to-tool escalation&lt;/strong&gt; — A carefully crafted prompt causes the agent to invoke a dangerous tool combination&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Our &lt;strong&gt;AI security audit&lt;/strong&gt; practice has analyzed over 80,000 (20K public + 60K internal) production traces across 13 providers and 33 model architectures. The data shows that approximately 1 in 4 MCP deployments have at least one high-severity exposure in their tool surface.&lt;/p&gt;




&lt;h2&gt;
  
  
  The MCP Attack Surface: 6 Critical Dimensions
&lt;/h2&gt;

&lt;p&gt;When conducting &lt;strong&gt;MCP penetration testing&lt;/strong&gt;, we evaluate six distinct dimensions:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Unvalidated Tool Arguments
&lt;/h3&gt;

&lt;p&gt;Most MCP servers define tools with typed parameters but do not validate the values passed to those parameters. A tool like &lt;code&gt;read_file(path: string)&lt;/code&gt; trusts the agent to provide a valid path — but a compromised or jailbroken agent can pass &lt;code&gt;../../etc/passwd&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real finding&lt;/strong&gt;: We discovered and reported a path traversal in a popular MCP file-server package that allowed reading arbitrary files outside the workspace directory. The fix required adding canonical path validation to every tool entry point.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Missing Authorization Boundaries
&lt;/h3&gt;

&lt;p&gt;In production MCP deployments, multiple users or agents share the same MCP server. Without per-tool authorization, Agent A can invoke tools that were designed for Agent B alone.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real finding&lt;/strong&gt;: In a financial AI platform, the execute_trade and read_portfolio tools were registered on the same MCP server with no access control. Agent isolation was the recommended remediation.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Implicit Tool Chaining
&lt;/h3&gt;

&lt;p&gt;MCP allows one tool output to be passed as another tool input. Attackers exploit this by crafting inputs that produce side effects in downstream tools.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real finding&lt;/strong&gt;: We identified an RCE chain in a CrewAI MCP deployment where read_file output containing shell metacharacters was passed to run_command, resulting in remote code execution. This finding was validated with a working PoC and reported through responsible disclosure.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Resource Exhaustion
&lt;/h3&gt;

&lt;p&gt;MCP tools that perform expensive operations (database queries, file I/O, API calls) can be triggered repeatedly by an agent, causing denial of service.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Insecure Default Configurations
&lt;/h3&gt;

&lt;p&gt;Many MCP servers ship with debug mode enabled, overly permissive CORS, or default credentials. These configurations are rarely hardened before deployment.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Prompt Injection via Tool Responses
&lt;/h3&gt;

&lt;p&gt;When an MCP tool returns data that contains instructions, a vulnerable agent may interpret those instructions as commands. This is the MCP-specific variant of indirect prompt injection.&lt;/p&gt;




&lt;h2&gt;
  
  
  How We Discovered 53 PoCs Across 8 Frameworks
&lt;/h2&gt;

&lt;p&gt;Between June and July 2026, our security research team conducted a systematic &lt;strong&gt;LLM vulnerability assessment&lt;/strong&gt; across the 8 most popular AI agent frameworks:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Framework&lt;/th&gt;
&lt;th&gt;Critical Findings&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;CrewAI MCP&lt;/td&gt;
&lt;td&gt;1 RCE&lt;/td&gt;
&lt;td&gt;Tool injection chain&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AutoGen Studio&lt;/td&gt;
&lt;td&gt;1 RCE (CVSS 9.8)&lt;/td&gt;
&lt;td&gt;Tool argument injection&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AG2&lt;/td&gt;
&lt;td&gt;1 RCE&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;str&lt;/strong&gt; method exploit&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LlamaIndex&lt;/td&gt;
&lt;td&gt;1 RCE&lt;/td&gt;
&lt;td&gt;Pickle deserialization&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Haystack&lt;/td&gt;
&lt;td&gt;2 RCE&lt;/td&gt;
&lt;td&gt;Pipeline injection&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LiteLLM&lt;/td&gt;
&lt;td&gt;1 SSRF&lt;/td&gt;
&lt;td&gt;Proxy bypass&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Docker MCP&lt;/td&gt;
&lt;td&gt;2 vulns&lt;/td&gt;
&lt;td&gt;Container escape + credential leak&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LangChain&lt;/td&gt;
&lt;td&gt;Multiple&lt;/td&gt;
&lt;td&gt;Prompt injection surface&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Every finding includes a working Proof of Concept validated in a sandboxed environment. We follow responsible disclosure: findings go to the vendor PSIRT or bug bounty program prior to public disclosure, with a 90-day disclosure window.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Total&lt;/strong&gt;: 53 PoCs reproduced, 1,730+ validated findings across a corpus of 80,000 (20K public + 60K internal) production traces.&lt;/p&gt;




&lt;h2&gt;
  
  
  Automated MCP Security Auditing with CCS
&lt;/h2&gt;

&lt;p&gt;Manual MCP penetration testing is essential for deep analysis, but automated scanning catches the low-hanging fruit at scale. Our CCS (Correctover Classification System) engine applies 24 detection rules that map to the 6 dimensions above.&lt;/p&gt;

&lt;p&gt;How CCS works for MCP:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Discover&lt;/strong&gt; — Enumerate all tools registered on the MCP server&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fuzz&lt;/strong&gt; — Inject boundary values, special characters, and known exploit patterns into each tool parameter&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Chain&lt;/strong&gt; — Test tool combinations for escalation paths&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Report&lt;/strong&gt; — Classify findings by CCS rule ID with CVSS scoring&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The engine processes a typical MCP server in under 30 seconds, with a false positive rate below 3% on production-tested configurations. This speed enables continuous auditing as part of a CI/CD pipeline.&lt;/p&gt;




&lt;h2&gt;
  
  
  5-Step MCP Penetration Testing Checklist
&lt;/h2&gt;

&lt;p&gt;If you are conducting your own &lt;strong&gt;AI security audit&lt;/strong&gt; of an MCP-based system, use this checklist:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Step&lt;/th&gt;
&lt;th&gt;Activity&lt;/th&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;Map all registered tools and their parameter schemas&lt;/td&gt;
&lt;td&gt;MCP inspector / custom script&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;Test each parameter for injection (path, command, SQL, SSRF)&lt;/td&gt;
&lt;td&gt;CCS scanner / manual fuzzing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;Test tool combinations for escalation chains&lt;/td&gt;
&lt;td&gt;Custom harness&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;Verify authorization boundaries between agents&lt;/td&gt;
&lt;td&gt;Configuration review&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;Audit transport security (TLS, auth tokens, credential storage)&lt;/td&gt;
&lt;td&gt;Network scan + code review&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;This checklist covers the most common failure modes we see in production deployments. For a deeper assessment, we recommend engaging a specialized &lt;strong&gt;MCP penetration testing&lt;/strong&gt; team with access to your actual production traces and tool configurations.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Bottom Line
&lt;/h2&gt;

&lt;p&gt;MCP is transforming how AI agents interact with the world, but every new capability is a new attack surface. The frameworks we analyzed in July 2026 contained an average of 2-3 high-severity vulnerabilities per deployment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key takeaways&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Treat every MCP tool as a public API endpoint — validate all inputs&lt;/li&gt;
&lt;li&gt;Never share MCP servers across authorization boundaries without isolation&lt;/li&gt;
&lt;li&gt;Run automated CCS scans on every new MCP release&lt;/li&gt;
&lt;li&gt;Include MCP tool chains in your regular &lt;strong&gt;LLM vulnerability assessment&lt;/strong&gt; rotation&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;Correctover&lt;/strong&gt; — AI Runtime Security &amp;amp; MCP Penetration Testing&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Real-time RCE, SSRF &amp;amp; Credential Protection in &lt;strong&gt;22µs&lt;/strong&gt; (P50)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;24 CCS&lt;/strong&gt; detection rules · &lt;strong&gt;80,000&lt;/strong&gt; production traces · &lt;strong&gt;1,730+&lt;/strong&gt; validated findings&lt;/li&gt;
&lt;li&gt;CVE-2026-2287 · MSRC · ZDI · HackerOne · Bugcrowd&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/correctover" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; · &lt;a href="https://correctover.com/en" rel="noopener noreferrer"&gt;correctover.com/en&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;This article is based on verified empirical data from production AI systems. All vulnerability findings were disclosed through responsible disclosure programs. Benchmark data from Correctover internal testing environment.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>pentesting</category>
      <category>ai</category>
      <category>infosec</category>
    </item>
    <item>
      <title>石材台面加工工艺流程：从大板切割到成品安装</title>
      <dc:creator>correctover</dc:creator>
      <pubDate>Sat, 25 Jul 2026 02:10:55 +0000</pubDate>
      <link>https://dev.to/correctover/shi-cai-tai-mian-jia-gong-gong-yi-liu-cheng-cong-da-ban-qie-ge-dao-cheng-pin-an-zhuang-plg</link>
      <guid>https://dev.to/correctover/shi-cai-tai-mian-jia-gong-gong-yi-liu-cheng-cong-da-ban-qie-ge-dao-cheng-pin-an-zhuang-plg</guid>
      <description>&lt;h1&gt;
  
  
  石材台面加工工艺流程：从大板切割到成品安装
&lt;/h1&gt;

&lt;p&gt;石英石和人造石台面的加工质量直接决定最终效果。了解加工工艺流程有助于采购方判断供应商的专业水平。本文详解台面加工的核心环节。&lt;/p&gt;




&lt;h2&gt;
  
  
  一、原材料准备
&lt;/h2&gt;

&lt;h3&gt;
  
  
  大板检验
&lt;/h3&gt;

&lt;p&gt;加工前对大板进行质量检查：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;表面缺陷（裂纹、气泡、色斑）&lt;/li&gt;
&lt;li&gt;厚度一致性&lt;/li&gt;
&lt;li&gt;颜色与封样对比&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  排版优化
&lt;/h3&gt;

&lt;p&gt;利用专业软件优化切割排版，目标是：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;材料利用率最大化（优质工厂可达90%以上）&lt;/li&gt;
&lt;li&gt;纹理方向一致性&lt;/li&gt;
&lt;li&gt;减少拼接数量&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  二、切割加工
&lt;/h2&gt;

&lt;h3&gt;
  
  
  数控切割（CNC）
&lt;/h3&gt;

&lt;p&gt;现代石英石加工采用CNC数控设备：&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;设备&lt;/th&gt;
&lt;th&gt;用途&lt;/th&gt;
&lt;th&gt;精度&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;CNC桥切机&lt;/td&gt;
&lt;td&gt;大板切割&lt;/td&gt;
&lt;td&gt;±0.5mm&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;水刀切割机&lt;/td&gt;
&lt;td&gt;异形切割&lt;/td&gt;
&lt;td&gt;±0.3mm&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;数控开孔机&lt;/td&gt;
&lt;td&gt;水槽/灶孔&lt;/td&gt;
&lt;td&gt;±0.5mm&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  切割注意事项
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;使用水冷切割（防止石英石过热开裂）&lt;/li&gt;
&lt;li&gt;切割速度需根据板材厚度调整&lt;/li&gt;
&lt;li&gt;边缘预留抛光余量（约1-2mm）&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  三、边缘处理
&lt;/h2&gt;

&lt;h3&gt;
  
  
  边缘造型类型
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;边缘类型&lt;/th&gt;
&lt;th&gt;特点&lt;/th&gt;
&lt;th&gt;适用风格&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;直边&lt;/td&gt;
&lt;td&gt;简洁利落&lt;/td&gt;
&lt;td&gt;现代简约&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;斜边&lt;/td&gt;
&lt;td&gt;45°倒角&lt;/td&gt;
&lt;td&gt;轻奢风格&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;圆弧边&lt;/td&gt;
&lt;td&gt;圆润安全&lt;/td&gt;
&lt;td&gt;北欧/日式&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;牛鼻边&lt;/td&gt;
&lt;td&gt;经典传统&lt;/td&gt;
&lt;td&gt;美式/欧式&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;双级边&lt;/td&gt;
&lt;td&gt;层次感&lt;/td&gt;
&lt;td&gt;高端定制&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  抛光工艺
&lt;/h3&gt;

&lt;p&gt;边缘抛光分多道工序：&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;粗磨（50-100目）：去除切割痕迹&lt;/li&gt;
&lt;li&gt;中磨（200-400目）：平整表面&lt;/li&gt;
&lt;li&gt;细磨（800-1500目）：提升光泽度&lt;/li&gt;
&lt;li&gt;精抛（3000目+）：达到最终镜面效果&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  四、开孔与拼接
&lt;/h2&gt;

&lt;h3&gt;
  
  
  水槽/灶孔加工
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;孔位四角需做圆弧处理（半径≥5mm）&lt;/li&gt;
&lt;li&gt;孔边缘加固处理&lt;/li&gt;
&lt;li&gt;安装水槽支撑条&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  拼接工艺
&lt;/h3&gt;

&lt;p&gt;台面拼接的关键要点：&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;工序&lt;/th&gt;
&lt;th&gt;标准&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;接缝处理&lt;/td&gt;
&lt;td&gt;接缝≤0.3mm&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;胶水选用&lt;/td&gt;
&lt;td&gt;与板材颜色一致的专用胶&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;固化时间&lt;/td&gt;
&lt;td&gt;≥24小时&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;打磨抛光&lt;/td&gt;
&lt;td&gt;接缝处打磨至与母材光泽一致&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;优质拼接几乎看不出接缝，这是衡量加工水平的重要指标。&lt;/p&gt;




&lt;h2&gt;
  
  
  五、表面处理
&lt;/h2&gt;

&lt;h3&gt;
  
  
  表面类型
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;表面&lt;/th&gt;
&lt;th&gt;光泽度&lt;/th&gt;
&lt;th&gt;特点&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;抛光面&lt;/td&gt;
&lt;td&gt;70-90°&lt;/td&gt;
&lt;td&gt;光亮如镜，主流选择&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;哑光面&lt;/td&gt;
&lt;td&gt;20-40°&lt;/td&gt;
&lt;td&gt;低调质感，2026年趋势&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;酸洗面&lt;/td&gt;
&lt;td&gt;10-20°&lt;/td&gt;
&lt;td&gt;防滑，适合潮湿环境&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;皮纹面&lt;/td&gt;
&lt;td&gt;30-50°&lt;/td&gt;
&lt;td&gt;微糙质感，介于哑光和抛光之间&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  六、包装与运输
&lt;/h2&gt;

&lt;h3&gt;
  
  
  出口包装标准
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;表面覆膜保护&lt;/li&gt;
&lt;li&gt;泡沫或EVA缓冲层&lt;/li&gt;
&lt;li&gt;木箱或钢架固定&lt;/li&gt;
&lt;li&gt;立式装箱（严禁平放运输）&lt;/li&gt;
&lt;li&gt;标记易碎标识&lt;/li&gt;
&lt;/ol&gt;







&lt;p&gt;&lt;strong&gt;厦门九头牛实业有限公司 / 泉州君诺美建筑材料有限公司&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;双生产基地：中国福建泉州 + 泰国曼谷&lt;/li&gt;
&lt;li&gt;主营：石英石、岩板、人造石&lt;/li&gt;
&lt;li&gt;联系人：王桂桂 | 电话：15960098402 | 邮箱：&lt;a href="mailto:wgg234114134@163.com"&gt;wgg234114134@163.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;泉州工厂：德国进口生产线，22项专利技术&lt;/li&gt;
&lt;li&gt;泰国工厂：曼谷生产基地，服务东盟及全球市场&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;本文信息来源于公开行业资料和企业资质文件。价格数据来源于公开市场报价，实际价格以供应商报价为准。&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;本文加工工艺信息参考行业通用技术标准。企业信息来源于国家企业信用信息公示系统。&lt;/em&gt;&lt;/p&gt;

</description>
      <category>quartz</category>
      <category>processing</category>
      <category>fabrication</category>
      <category>guide</category>
    </item>
  </channel>
</rss>
