File size: 9,687 Bytes
0e3c00e c1adac9 0e3c00e a52fd2b | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 | <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>HOL Plugin Security</title>
<meta name="description" content="Hashgraph Online plugin-security dataset explorer: 205 scored plugins, 22 public Guard advisories, modeled runtime fixtures, and an honest OWASP MCP Top 10 mapping. Scan is not a safety guarantee. Guard is local-first, not a cloud MCP gateway." />
<link rel="stylesheet" href="style.css" />
</head>
<body>
<div class="wrap">
<header>
<h1>HOL Plugin Security</h1>
<p>Explorer for <strong>HashgraphOnline/hol-plugin-security</strong>: 205 scored registry plugins, 22 public Guard advisories, 220 modeled runtime fixtures, and an honest OWASP MCP Top 10 mapping.</p>
<div class="links">
<a href="https://huggingface.co/datasets/HashgraphOnline/hol-plugin-security">dataset</a>
<a href="https://hol.org/plugins">hol.org/plugins</a>
<a href="https://hol.org/guard">hol.org/guard</a>
<a href="https://owasp.org/www-project-mcp-top-10/">OWASP MCP Top 10</a>
<a href="llms.txt">llms.txt</a>
</div>
<div class="note">
<strong>Not claimed here:</strong> first firewall, unlabeled 450K+ anything, or Guard-only GitHub stars.
Hashgraph Online org-wide stars (3.5K+) are not attributed to this Space, this dataset, or Guard.
</div>
<div class="limits">
<strong>Honest limits</strong>
<ul>
<li>205 scored <strong>plugins</strong> ≠ Registry Broker agent counts (do not confuse with 249k agents / 24k MCP servers).</li>
<li>Scanner on plugin rows is <code>registry-broker-fallback</code>. <strong>Scan ≠ safety.</strong> Most findings are publishability, not confirmed vulns.</li>
<li>HOL Guard is <strong>local-first</strong> (shell, secrets/file reads, MCP server change, plugin/skill install). <strong>Not a cloud MCP gateway.</strong></li>
<li>Runtime fixtures are <strong>modeled</strong>. Same outcome across harnesses. Latency values are placeholders. No real secrets or attacks executed.</li>
<li>Cursor artifact trust is <strong>not</strong> full pre-exec of every tool description / MCP tool call.</li>
<li><strong>Not</strong> a complete prompt-injection preventer.</li>
<li>MCP08 has <strong>0 advisory rows</strong> in this snapshot.</li>
<li>HOL publishes this. Not independent third-party validation.</li>
</ul>
</div>
</header>
<nav class="tabs" aria-label="Sections">
<button class="active" data-tab="plugins">Plugins</button>
<button data-tab="advisories">Advisories</button>
<button data-tab="runtime">Runtime fixtures</button>
<button data-tab="owasp">OWASP map</button>
</nav>
<section id="plugins" class="panel active">
<p>Default config: <strong>plugins</strong> (205 scored registry plugins). Filterable and sortable. <code>scanner_provider</code> is <code>registry-broker-fallback</code> on every current row. Scan ≠ safety.</p>
<div class="controls" id="plugin-controls"></div>
<div class="status" id="plugin-status"></div>
<div class="table-wrap"><table id="plugin-table"></table></div>
</section>
<section id="advisories" class="panel">
<p>22 public HOL Guard advisory pages. <code>owasp_mcp</code> is HOL's primary mapping to one OWASP MCP Top 10 (beta) ID. <code>threat_class</code> comes from hub listing badges on <a href="https://hol.org/guard/security">hol.org/guard/security</a>, not inferred from titles. A mapped advisory is not proof a plugin is safe. <strong>MCP08 has 0 rows.</strong></p>
<div class="controls" id="advisory-controls"></div>
<div class="status" id="advisory-status"></div>
<div class="table-wrap"><table id="advisory-table"></table></div>
</section>
<section id="runtime" class="panel">
<p>220 <strong>modeled</strong> harness outcomes from the published Guard benchmark record. Same outcome across all 5 harnesses. Latency values are placeholders. No real secrets or attacks executed. This is not a live exploit test.</p>
<div class="controls" id="runtime-controls"></div>
<div class="status" id="runtime-status"></div>
<div class="table-wrap"><table id="runtime-table"></table></div>
</section>
<section id="owasp" class="panel">
<h2>OWASP MCP Top 10 mapping (beta)</h2>
<p>Copied from the <a href="https://huggingface.co/datasets/HashgraphOnline/hol-plugin-security">dataset card</a>. HOL's mapping of local Guard + catalog scanner to the <a href="https://owasp.org/www-project-mcp-top-10/">OWASP MCP Top 10</a> beta (Phase 3). <strong>Not complete coverage.</strong></p>
<p>MCP06 on the Top 10 list is <strong>Intent Flow Subversion</strong>. The same OWASP page later also titles that item "Prompt Injection via Contextual Payloads". HOL Guard is <strong>not</strong> a complete prompt-injection preventer.</p>
<p>IDs and names are cited; long OWASP descriptions are not copied. OWASP document license: CC BY-NC-SA 4.0. <code>advisory_rows</code> is counted from this snapshot's <code>advisories.owasp_mcp</code> (one primary ID per advisory).</p>
<div class="table-wrap">
<table class="owasp">
<thead>
<tr>
<th>ID</th><th>Name</th><th>Advisory rows</th><th>Detect</th><th>Prevent</th><th>Gap</th>
</tr>
</thead>
<tbody>
<tr>
<td>MCP01</td><td>Token Mismanagement & Secret Exposure</td><td>4</td>
<td>catalog/advisory secret-exfil + mcp-token-theft</td>
<td>Guard can block secret-file / env reads at the local action boundary</td>
<td>not a secrets manager; does not rotate tokens; does not scrub secrets already inside model context</td>
</tr>
<tr>
<td>MCP02</td><td>Privilege Escalation via Scope Creep</td><td>1</td>
<td>tool-permission-creep advisory</td>
<td>Guard approval on plugin/skill install and MCP server change</td>
<td>not an OAuth scope-expiry gateway</td>
</tr>
<tr>
<td>MCP03</td><td>Tool Poisoning</td><td>2</td>
<td>tool-description-poisoning advisory + scanner MCP posture</td>
<td>Guard on changed MCP servers / plugin install</td>
<td>Cursor path is artifact trust, not full pre-exec of every tool description</td>
</tr>
<tr>
<td>MCP04</td><td>Software Supply Chain Attacks & Dependency Tampering</td><td>4</td>
<td>catalog scores, lockfile/publishability findings, supply-chain advisories</td>
<td>Guard on plugin/skill install</td>
<td>not a signing/SBOM authority</td>
</tr>
<tr>
<td>MCP05</td><td>Command Injection & Execution</td><td>1</td>
<td>unsafe-command / rm-rf advisory</td>
<td>Guard intercepts local shell/file-destructive actions</td>
<td>does not sandbox every MCP server's own backend</td>
</tr>
<tr>
<td>MCP06</td><td>Intent Flow Subversion</td><td>5</td>
<td>several prompt-injection advisories (Intent Flow Subversion / contextual payloads)</td>
<td>limited (some injected-instruction to shell paths hit Guard)</td>
<td>NOT a complete prompt-injection preventer</td>
</tr>
<tr>
<td>MCP07</td><td>Insufficient Authentication & Authorization</td><td>1</td>
<td>MCP transport hardening (insecure HTTP, wildcard binds, missing auth posture) on Guard pages</td>
<td>local only</td>
<td>not an MCP gateway identity layer</td>
</tr>
<tr class="mcp08">
<td>MCP08</td><td>Lack of Audit and Telemetry</td><td class="zero">0</td>
<td>local decision trail / receipts on the developer machine</td>
<td>local decision trail / receipts</td>
<td>not an immutable SIEM; local logs</td>
</tr>
<tr>
<td>MCP09</td><td>Shadow MCP Servers</td><td>1</td>
<td>shadow-mcp-server-discovery advisory</td>
<td>Guard on new/changed MCP servers before the harness launches</td>
<td>not continuous org-wide network discovery of shadow servers</td>
</tr>
<tr>
<td>MCP10</td><td>Context Injection & Over-Sharing</td><td>3</td>
<td>context-window-scraping / data-overexposure advisories</td>
<td>Guard on excessive local file reads</td>
<td>does not quarantine or partition model context windows</td>
</tr>
</tbody>
</table>
</div>
<p>This mapping does not replace the disclaimers above. Guard is local-first, not a cloud MCP gateway. Fixtures are modeled. 205 plugins ≠ Registry Broker agent counts. Scan ≠ safety.</p>
</section>
<footer>
Source dataset: <a href="https://huggingface.co/datasets/HashgraphOnline/hol-plugin-security">HashgraphOnline/hol-plugin-security</a>.
License Apache-2.0. OWASP MCP Top 10: <a href="https://owasp.org/www-project-mcp-top-10/">owasp.org/www-project-mcp-top-10</a>.
Tables are snapshot JSON from the parquet configs; this Space does not download large files.
</footer>
</div>
<script src="app.js"></script>
</body>
</html>
|