Dangerous exec
- Finding
- Shell command execution detected (child_process).
Security checks across static analysis, malware telemetry, and agentic risk
The skill matches its meeting-bot purpose, but it ships hardcoded Vexa API keys and sets up webhook-driven agent actions that can persist meeting data, so it needs review before use.
Do not use this package as-is. Ask the publisher to remove and rotate the bundled API keys, declare the Vexa credential and webhook requirements, and add authenticated webhook validation. If you must test it, delete skills/vexa/secrets first, set your own VEXA_API_KEY, verify the endpoint, and avoid exposing the webhook until it is authenticated.
VirusTotal findings are pending for this skill version.
Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.
Meeting links, bot sessions, transcripts, webhook settings, and reports could be associated with an unknown bundled Vexa account, exposing meeting data to whoever controls that credential.
A production Vexa API key is packaged with the skill; the scripts auto-load secret env files, so a user may unknowingly operate under a bundled/shared credential rather than their own account.
VEXA_API_KEY=X8CuD3cGmajw...811L8H8
Remove all bundled secret files, rotate/revoke the exposed Vexa keys, require the user to provide their own key, and declare the credential requirement in metadata.
The published package contains sensitive local configuration and credentials, making the package provenance and account boundary unsafe to trust.
The provided file manifest and file contents include secrets/vexa.env, secrets/vexa-prod.env, and secrets/vexa-local.env despite the skill's own instruction to exclude that directory.
When publishing the skill to ClawHub, ensure `secrets/` is excluded.
Publish a clean package without secrets/, add automated secret scanning before release, and rotate any credentials that were included.
Users may install or run the skill without realizing it needs account credentials and sends meeting data through a Vexa API endpoint.
This conflicts with SKILL.md's `VEXA_API_KEY` requirement and the code's credential loading, under-disclosing the skill's cloud account access needs.
Required env vars: none ... Primary credential: none
Update metadata to declare VEXA_API_KEY, the Vexa API endpoint, webhook capability, and meeting transcript/report data handling.
If a spoofed or malformed webhook reaches the hook, it could cause the agent to run an unintended command or operate on an unintended meeting.
Webhook-controlled strings are interpolated into a command presented to the agent without visible validation or quoting.
const reportCmd = `node skills/vexa/scripts/vexa.mjs report --platform ${platform} --native_meeting_id ${nativeMeetingId}`;Authenticate webhooks, validate platform and meeting IDs against strict allowlists, pass structured arguments instead of command text, and require approval before executing webhook-derived commands.
A reachable hook endpoint may allow external requests to trigger agent work, fetch meeting data, and create reports if the gateway accepts the request.
The documented public webhook mapping wakes the agent immediately, but the setup text does not document a Vexa signature, shared secret, or other origin verification.
"action": "agent", "wakeMode": "now", "match": { "path": "vexa" }Require signed webhooks or a secret token, document the authentication path clearly, and reject unauthenticated or unexpected payloads before they reach the agent.
Incorrect or malicious meeting/webhook content could be stored as trusted memory and influence later agent behavior.
External webhook and meeting content is inserted into agent context and can lead to persistent memory/entity updates.
Update/create entity files under memory/entities/ ... Raw payload (for reference): ${JSON.stringify(p, null, 2)}Treat webhook payloads and transcripts as untrusted data, require user approval before updating persistent memory/entities, and record provenance for generated notes.