Agent-first AI SEO (AEO/GEO) operating platform.
- capability exposure inferred + 35
- recent drift inferred + 20
- tool safety inferred + 24
- trust mitigators mixed − 3
inferred mixed
The A–E grade is our heuristic synthesis — a "review this" prompt, not a verdict. Each factor is tagged by what backs it: attested (a verifiable record), reported (a third party's claim), or inferred (our own heuristic, e.g. permissions). See methodology.
grade last moved 3d ago · see ecosystem CVEs →
- D · 79 → D · 76
- D · 76 → D · 79
- D · 68 → D · 76
- C · 44 → D · 68
No known CVEs for this server.
- high dangerous code
dynamic exec: new Function() · credential logged in 2 file(s)
- high hidden prompt content
1 file(s) with hidden prompt content: Canonry-canonry-2bcbc86/packages/canonry/AGENTS.md (skill-exfil): "secret→sink: | `src/server.ts` | Fastify server setup — mounts api-routes,…
analyzed commit 2bcbc86 · analyzer v33 · 4h ago
skills & prompt files 81
- hidden: agent-rules: skill-exfil Canonry-canonry-2bcbc86/packages/canonry/AGENTS.md :39
secret→sink: | `src/server.ts` | Fastify server setup — mounts api-routes, serves SPA, registers providers. Read-only embed mode (#716): resolves `resolveEmbedConfig(process.env, config)` at boot; whe
- agent-rules Canonry-canonry-2bcbc86/AGENTS.md
- agent-rules Canonry-canonry-2bcbc86/CLAUDE.md
- agent-rules Canonry-canonry-2bcbc86/apps/api/AGENTS.md
- agent-rules Canonry-canonry-2bcbc86/apps/api/CLAUDE.md
- agent-rules Canonry-canonry-2bcbc86/apps/vals/ai-visibility-check/AGENTS.md
- agent-rules Canonry-canonry-2bcbc86/apps/vals/ai-visibility-check/CLAUDE.md
- agent-rules Canonry-canonry-2bcbc86/apps/vals/brand-perception-check/AGENTS.md
- agent-rules Canonry-canonry-2bcbc86/apps/vals/brand-perception-check/CLAUDE.md
- agent-rules Canonry-canonry-2bcbc86/apps/web/AGENTS.md
- agent-rules Canonry-canonry-2bcbc86/apps/web/CLAUDE.md
- agent-rules Canonry-canonry-2bcbc86/apps/worker/AGENTS.md
- agent-rules Canonry-canonry-2bcbc86/apps/worker/CLAUDE.md
- agent-rules Canonry-canonry-2bcbc86/docs/providers/claude.md
- agent-rules Canonry-canonry-2bcbc86/docs/providers/gemini.md
- agent-rules Canonry-canonry-2bcbc86/packages/api-client-generated/AGENTS.md
- agent-rules Canonry-canonry-2bcbc86/packages/api-client-generated/CLAUDE.md
- agent-rules Canonry-canonry-2bcbc86/packages/api-routes/AGENTS.md
- agent-rules Canonry-canonry-2bcbc86/packages/api-routes/CLAUDE.md
- agent-rules Canonry-canonry-2bcbc86/packages/canonry/CLAUDE.md
- agent-rules Canonry-canonry-2bcbc86/packages/canonry/assets/agent-workspace/AGENTS.md
- agent-rules Canonry-canonry-2bcbc86/packages/config/AGENTS.md
- agent-rules Canonry-canonry-2bcbc86/packages/config/CLAUDE.md
- agent-rules Canonry-canonry-2bcbc86/packages/contracts/AGENTS.md
- agent-rules Canonry-canonry-2bcbc86/packages/contracts/CLAUDE.md
- agent-rules Canonry-canonry-2bcbc86/packages/db/AGENTS.md
- agent-rules Canonry-canonry-2bcbc86/packages/db/CLAUDE.md
- agent-rules Canonry-canonry-2bcbc86/packages/integration-bing/AGENTS.md
- agent-rules Canonry-canonry-2bcbc86/packages/integration-bing/CLAUDE.md
- agent-rules Canonry-canonry-2bcbc86/packages/integration-cloud-run/AGENTS.md
- agent-rules Canonry-canonry-2bcbc86/packages/integration-cloud-run/CLAUDE.md
- agent-rules Canonry-canonry-2bcbc86/packages/integration-cloudflare-queue/AGENTS.md
- agent-rules Canonry-canonry-2bcbc86/packages/integration-cloudflare-queue/CLAUDE.md
- agent-rules Canonry-canonry-2bcbc86/packages/integration-cloudflare-worker/AGENTS.md
- agent-rules Canonry-canonry-2bcbc86/packages/integration-cloudflare-worker/CLAUDE.md
- agent-rules Canonry-canonry-2bcbc86/packages/integration-commoncrawl/AGENTS.md
- agent-rules Canonry-canonry-2bcbc86/packages/integration-commoncrawl/CLAUDE.md
- agent-rules Canonry-canonry-2bcbc86/packages/integration-google-ads/AGENTS.md
- agent-rules Canonry-canonry-2bcbc86/packages/integration-google-ads/CLAUDE.md
- agent-rules Canonry-canonry-2bcbc86/packages/integration-google-analytics/AGENTS.md
- agent-rules Canonry-canonry-2bcbc86/packages/integration-google-analytics/CLAUDE.md
- agent-rules Canonry-canonry-2bcbc86/packages/integration-google-business-profile/AGENTS.md
- agent-rules Canonry-canonry-2bcbc86/packages/integration-google-business-profile/CLAUDE.md
- agent-rules Canonry-canonry-2bcbc86/packages/integration-google-places/AGENTS.md
- agent-rules Canonry-canonry-2bcbc86/packages/integration-google-places/CLAUDE.md
- agent-rules Canonry-canonry-2bcbc86/packages/integration-google-tag-manager/AGENTS.md
- agent-rules Canonry-canonry-2bcbc86/packages/integration-google-tag-manager/CLAUDE.md
- agent-rules Canonry-canonry-2bcbc86/packages/integration-google/AGENTS.md
- agent-rules Canonry-canonry-2bcbc86/packages/integration-google/CLAUDE.md
- agent-rules Canonry-canonry-2bcbc86/packages/integration-openai-ads/AGENTS.md
- agent-rules Canonry-canonry-2bcbc86/packages/integration-openai-ads/CLAUDE.md
- agent-rules Canonry-canonry-2bcbc86/packages/integration-traffic/AGENTS.md
- agent-rules Canonry-canonry-2bcbc86/packages/integration-traffic/CLAUDE.md
- agent-rules Canonry-canonry-2bcbc86/packages/integration-vercel/AGENTS.md
- agent-rules Canonry-canonry-2bcbc86/packages/integration-vercel/CLAUDE.md
- agent-rules Canonry-canonry-2bcbc86/packages/integration-wordpress-traffic/AGENTS.md
- agent-rules Canonry-canonry-2bcbc86/packages/integration-wordpress-traffic/CLAUDE.md
- agent-rules Canonry-canonry-2bcbc86/packages/integration-wordpress/AGENTS.md
- agent-rules Canonry-canonry-2bcbc86/packages/integration-wordpress/CLAUDE.md
- agent-rules Canonry-canonry-2bcbc86/packages/intelligence/AGENTS.md
- agent-rules Canonry-canonry-2bcbc86/packages/intelligence/CLAUDE.md
- agent-rules Canonry-canonry-2bcbc86/packages/provider-cdp/AGENTS.md
- agent-rules Canonry-canonry-2bcbc86/packages/provider-cdp/CLAUDE.md
- agent-rules Canonry-canonry-2bcbc86/packages/provider-claude/AGENTS.md
- agent-rules Canonry-canonry-2bcbc86/packages/provider-claude/CLAUDE.md
- agent-rules Canonry-canonry-2bcbc86/packages/provider-gemini/AGENTS.md
- agent-rules Canonry-canonry-2bcbc86/packages/provider-gemini/CLAUDE.md
- agent-rules Canonry-canonry-2bcbc86/packages/provider-local/AGENTS.md
- agent-rules Canonry-canonry-2bcbc86/packages/provider-local/CLAUDE.md
- agent-rules Canonry-canonry-2bcbc86/packages/provider-openai/AGENTS.md
- agent-rules Canonry-canonry-2bcbc86/packages/provider-openai/CLAUDE.md
- agent-rules Canonry-canonry-2bcbc86/packages/provider-perplexity/AGENTS.md
- agent-rules Canonry-canonry-2bcbc86/packages/provider-perplexity/CLAUDE.md
- agent-rules Canonry-canonry-2bcbc86/packages/val-kit/AGENTS.md
- agent-rules Canonry-canonry-2bcbc86/packages/val-kit/CLAUDE.md
- agent-rules Canonry-canonry-2bcbc86/packages/wordpress-traffic-logger-plugin/AGENTS.md
- agent-rules Canonry-canonry-2bcbc86/packages/wordpress-traffic-logger-plugin/CLAUDE.md
- skill Canonry-canonry-2bcbc86/plugins/canonry/skills/aero/SKILL.md
- skill Canonry-canonry-2bcbc86/plugins/canonry/skills/canonry/SKILL.md
- skill Canonry-canonry-2bcbc86/skills/aero/SKILL.md
- skill Canonry-canonry-2bcbc86/skills/canonry/SKILL.md
danger signals17
- dynamic code execution new Function() Canonry-canonry-2bcbc86/packages/integration-cloudflare-worker/test/script.test.ts :81
const exposePredicate = new Function( - suspicious endpoint 8.8.8.8 Canonry-canonry-2bcbc86/packages/api-routes/test/export-roundtrip.test.ts :54
url: 'https://8.8.8.8/hook', - suspicious endpoint 169.254.169.254 (cloud metadata) Canonry-canonry-2bcbc86/packages/api-routes/test/measurement-discovery-v2.test.ts :329
const response = await importSitemap({ sitemapUrl: 'http://169.254.169.254/latest/meta-data', rule: RULE }) - suspicious endpoint discord.com Canonry-canonry-2bcbc86/packages/api-routes/test/notification-destinations.test.ts :37
expect(resolveDestination('https://discord.com/api/webhooks/1/a').destination) - suspicious endpoint ptb.discord.com Canonry-canonry-2bcbc86/packages/api-routes/test/notification-destinations.test.ts :39
expect(resolveDestination('https://ptb.discord.com/api/webhooks/1/a').destination) - suspicious endpoint 8.8.8.8 Canonry-canonry-2bcbc86/packages/api-routes/test/security.test.ts :432
const secretUrl = 'https://8.8.8.8/hooks/secret-token?api_key=super-secret' - suspicious endpoint 8.8.8.8 Canonry-canonry-2bcbc86/packages/api-routes/test/traffic.test.ts :407
body: { baseUrl: 'https://8.8.8.8', username: 'race', applicationPassword: 'wp-secret' }, - suspicious endpoint 169.254.169.254 (cloud metadata) Canonry-canonry-2bcbc86/packages/api-routes/test/traffic.test.ts :960
'http://169.254.169.254/wp-json/', // AWS / GCP metadata - suspicious endpoint 1.1.1.1 Canonry-canonry-2bcbc86/packages/api-routes/test/traffic.test.ts :3107
payload: { ...wpConnectBody, baseUrl: 'https://1.1.1.1' }, - suspicious endpoint 8.8.8.8 Canonry-canonry-2bcbc86/packages/api-routes/test/webhooks.test.ts :44
const result = await resolveWebhookTarget('https://8.8.8.8/hook') - suspicious endpoint 169.254.169.254 (cloud metadata) Canonry-canonry-2bcbc86/packages/api-routes/test/wordpress.test.ts :212
'http://169.254.169.254/', // cloud metadata - suspicious endpoint 8.8.8.8 Canonry-canonry-2bcbc86/packages/api-routes/test/wordpress.test.ts :246
url: 'https://8.8.8.8/', // public literal — passes - suspicious endpoint 1.1.1.1 Canonry-canonry-2bcbc86/packages/canonry/test/cli-operator-contract.test.ts :462
'https://1.1.1.1/canonry-webhook', - suspicious endpoint 169.254.169.254 (cloud metadata) Canonry-canonry-2bcbc86/packages/canonry/test/sitemap-parser.test.ts :204
await expect(() => fetchAndParseSitemap('http://169.254.169.254/sitemap.xml')).rejects.toThrow(/rejected/) - over-broad OAuth scope https://mail.google.com/ Canonry-canonry-2bcbc86/packages/integration-cloudflare-worker/test/script.test.ts :214
expect(shouldForward(request('https://example.com/', 'https://mail.google.com/'))).toBe(false) - credential in logs credential in log Canonry-canonry-2bcbc86/packages/canonry/src/commands/bootstrap.ts :180
console.log(`API key: ${generatedApiKey}`) - credential in logs credential in log Canonry-canonry-2bcbc86/packages/canonry/src/commands/init.ts :384
console.log(`API key: ${rawApiKey}`)
- recent drift +20 capability drift →
Heuristic, inferred signals — false positives (legitimately powerful tools, forks, language ports) are expected. Treat each as "review this", not a verdict. See the ecosystem-wide picture on the security hub, or the fleet security of Canonry.