Caveat verdict

m365-unified

88
🟢 Trusted
No high-risk patterns surfaced by the deep scan — automated capability review, not behavioral proof.

Accesses credentials AND makes external network calls

Microsoft 365 unified skill for email, SharePoint, OneDrive, and Planner via Microsoft Graph API; uses standard OAuth2 app-only authentication and accesses only the user's own M365 tenant for legitimate productivity operations.

Automated static analysis — not a human review. Caveat flags capabilities, not confirmed intent, and can produce false positives. Disagree with this verdict? Use Dispute below.

0
security
50
transparency
80
maintenance

What it does

These are capability combinations: each listed behavior occurs in the skill, but Caveat detects co-occurrence — it does not verify that one flows into another. Read the code to confirm a live chain.

Capability combination high

Accesses credentials AND makes external network calls — potential credential theft

LLM02 · ASI03

Permission integrity

Makes network requests but does not declare curl/wget in required binaries

network_out

Code accesses API keys/tokens but declares no environment variables

credential_access

Installs packages at runtime — transitive dependencies are not auditable

package_install

Findings (14)

Pattern match critical

Possible hardcoded credential

SKILL.md · code · SECRET="<your-client-secret>

Pattern match high

Uses eval() — can execute arbitrary code

SECURITY.md · prose · downgraded · eval(

Confirmed in code medium

Accesses process.env — reads environment variables

SKILL.md · code

Pattern match medium

References webhook/callback URL

SKILL.md · code · WEBHOOK_URL

Pattern match medium

References child_process — can spawn system processes

scripts/create-inbox-webhook.js · prose · downgraded · child_process

Pattern match medium

Dynamic import() — loads module at runtime

scripts/send-telegram-notification.js · prose · downgraded · import('

Pattern match medium

Accesses OpenClaw config/secrets directly

scripts/test-sharepoint.js · prose · downgraded · ~/.openclaw/.env

Pattern match medium

Uses spawn() — can execute external programs

scripts/webhook-handler.js · prose · downgraded · spawn(

Pattern match medium

Uses exec() — may execute shell commands

scripts/webhook-handler.js · prose · downgraded · exec (

Pattern match medium

Base64 decode (atob) — may hide malicious payloads

src/auth/graph-client.js · prose · downgraded · atob(

Pattern match low

References tunneling service

SKILL.md · prose · downgraded · ngrok

Pattern match low

Popular HTTP library — network access

SKILL.md · prose · downgraded · axios

Pattern match low

POSTs data to external URL

scripts/test-invoice-flow.js · prose · downgraded · .post( `https://

Pattern match low

Accesses sensitive environment variables

scripts/webhook-handler.js · prose · downgraded · process.env.TELEGRAM_BOT_TOKEN

Why the tier is capped

Execution sink present in raw bytes (Hard Floor: class B/D/E). Final tier capped at Caution — cannot be lifted by any downgrade, example-payload opt-in, or allowlist.

Permissions & capabilities

No declared permissions — minimal attack surface.

network_inpackage_installcredential_accessnetwork_out
Check another skill Browse the registry Auditing your own skills or configs? Use the API