Open communication and task handoffs for AI agents — self-hosted email, task threads, approvals, and webhooks over MCP and REST. Apache-2.0.
- capability exposure inferred + 35
- tool safety inferred + 12
- trust mitigators mixed − 11
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 4d ago · see ecosystem CVEs →
- B · 29 → C · 36
- B · 32 → B · 29
- B · 27 → B · 32
- C · 35 → B · 27
No known CVEs for this server.
- high dangerous code
committed secret: OpenAI key · dynamic exec: new Function() · obfuscated payload: dynamic require()/import()
- low dangerous code
env-secret-flows-to-network-js: A process environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a ke
- low dangerous code
env-secret-flows-to-network-js: A process environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a ke
- low dangerous code
env-secret-flows-to-network-js: A process environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a ke
- low dangerous code
env-secret-flows-to-network-js: A process environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a ke
- low dangerous code
env-secret-flows-to-network-js: A process environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a ke
- low dangerous code
env-secret-flows-to-network-js: A process environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a ke
- low dangerous code
env-secret-flows-to-network-js: A process environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a ke
- low dangerous code
env-secret-flows-to-network-js: A process environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a ke
- low dangerous code
env-secret-flows-to-network-js: A process environment value reaches a network call. Review whether it is a credential leaving the process; the ordinary API-wrapper shape (read a ke
analyzed commit c5e8186 · analyzer v33 · 1d ago
danger signals15
- dynamic code execution new Function() openagentemail-openagentemail-c5e8186/packages/api/test/ui-assets.test.ts :80
new Function(UI_JS); - dynamic code execution new Function() openagentemail-openagentemail-c5e8186/packages/api/test/ui-connect-bfcache.test.ts :80
new Function( - dynamic code execution new Function() openagentemail-openagentemail-c5e8186/packages/api/test/ui-connect-claude-token.test.ts :39
new Function( - dynamic code execution new Function() openagentemail-openagentemail-c5e8186/packages/api/test/ui-connect-loadgen.test.ts :64
new Function( - dynamic code execution new Function() openagentemail-openagentemail-c5e8186/packages/api/test/ui-device-load.test.ts :83
new Function( - dynamic code execution new Function() openagentemail-openagentemail-c5e8186/packages/api/test/ui-modal-buttons.test.ts :99
const run = new Function( - dynamic code execution new Function() openagentemail-openagentemail-c5e8186/packages/api/test/ui-tasks.test.ts :856
const fn = new Function( - dynamic code execution new Function() openagentemail-openagentemail-c5e8186/packages/api/test/ui-token-query.test.ts :365
const runner = new Function( - suspicious endpoint 1.2.3.4 openagentemail-openagentemail-c5e8186/packages/api/test/mcp-http.test.ts :131
expect(allowInsecureIssuerUrl('http://1.2.3.4:3100')).toBe(false); - suspicious endpoint 169.254.169.254 (cloud metadata) openagentemail-openagentemail-c5e8186/packages/api/test/mcp-http.test.ts :150
expect(allowInsecureIssuerUrl('http://169.254.169.254')).toBe(false); - suspicious endpoint 169.254.169.254 (cloud metadata) openagentemail-openagentemail-c5e8186/packages/api/test/oauth-cimd.test.ts :351
await expect(pinnedCimdFetcher('https://169.254.169.254/cimd.json')).rejects.toThrow('ssrf_blocked_ip'); - suspicious endpoint 169.254.169.254 (cloud metadata) openagentemail-openagentemail-c5e8186/packages/api/test/pinned-fetch-ssrf.test.ts :210
await expect(pinnedFetch('http://169.254.169.254/')).rejects.toThrow('ssrf_blocked_ip'); - suspicious endpoint 1.1.1.1 openagentemail-openagentemail-c5e8186/packages/api/test/webhook-delivery.test.ts :455
expect(validateWebhookUrlStatic('https://1.1.1.1/hook', { allowPrivateTargets: false }).valid).toBe(false); - committed secret OpenAI key openagentemail-openagentemail-c5e8186/examples/adapters/test/persisted-string-matrix.test.ts :56
sk-liv…(23 chars, redacted) - committed secret OpenAI key openagentemail-openagentemail-c5e8186/examples/adapters/test/r1d-evidence-matrix.test.ts :18
sk-liv…(23 chars, redacted)
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 openagentemail.