Back to skill

Security audit

Oganim Deploy

Security checks across malware telemetry and agentic risk

Overview

This deployment skill is coherent, but it gives an agent broad live-production powers over deploys, databases, admin login, and customer accounts without enough guardrails.

Install only if you administer this exact Vercel/Supabase project and want the agent to operate on production. Add explicit human approval before deploys, migrations, admin login, magic-link generation, or account changes; prefer staging and dedicated test users; avoid changing real customer passwords; and ensure secrets are never printed, logged, or copied into reports.

SkillSpector

By NVIDIA
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (7)

Missing User Warnings

Medium
Confidence
85% confidence
Finding
The skill is explicitly designed to deploy to production and modify a live Supabase-backed system, but it does not require an explicit confirmation, backup/checkpoint, or warning that actions affect real users and data. In an agent setting, this increases the chance of unreviewed or accidental live changes, which is a real operational security and safety risk even if the author's intent is legitimate.

Missing User Warnings

High
Confidence
96% confidence
Finding
The migration workflow instructs use of the Supabase pooler as the postgres superuser, which can bypass normal privilege boundaries and make destructive schema or policy changes across the entire database. Without a strong user-facing warning, dry-run guidance, and rollback safeguards, an agent could cause irreversible production data loss or weaken access controls with a single migration.

Missing User Warnings

Medium
Confidence
90% confidence
Finding
The recipe instructs operators to set a temporary password for a real customer account and later scramble it, which forcibly changes the user's authentication state and can lock them out until they complete a password reset. Even though the note mentions the consequence afterward, this is still an unsafe testing procedure because it modifies production credentials for a customer account and creates avoidable service disruption and account-integrity risk.

Credential Access

High
Category
Privilege Escalation
Content
## Project Secrets Reference

- `~/.openclaw/credentials/vercel/token` (chmod 600)
- `~/.openclaw/credentials/supabase/credentials.env` — `SUPABASE_URL`, `SUPABASE_PROJECT_REF`, `SUPABASE_ANON_KEY`, `SUPABASE_SERVICE_ROLE_KEY`, `SUPABASE_DB_PASSWORD`
- `~/.openclaw/credentials/supabase/admin_password.txt` — your CRM admin password. Treat as production credential.

## See Also
Confidence
95% confidence
Finding
credentials.env

Credential Access

High
Category
Privilege Escalation
Content
- `~/.openclaw/credentials/vercel/token` (chmod 600)
- `~/.openclaw/credentials/supabase/credentials.env` — `SUPABASE_URL`, `SUPABASE_PROJECT_REF`, `SUPABASE_ANON_KEY`, `SUPABASE_SERVICE_ROLE_KEY`, `SUPABASE_DB_PASSWORD`
- `~/.openclaw/credentials/supabase/admin_password.txt` — your CRM admin password. Treat as production credential.

## See Also
Confidence
97% confidence
Finding
password.txt

Credential Access

High
Category
Privilege Escalation
Content
const fs = require('fs');
const { chromium } = require('playwright');
const cred = Object.fromEntries(
  fs.readFileSync(process.env.HOME + '/.openclaw/credentials/supabase/credentials.env', 'utf8')
    .split('\n').filter(l => l.includes('='))
    .map(l => { const i = l.indexOf('='); return [l.slice(0, i), l.slice(i + 1)]; })
);
Confidence
94% confidence
Finding
credentials.env

Credential Access

High
Category
Privilege Escalation
Content
const fs = require('fs');
const { chromium } = require('playwright');
const cred = Object.fromEntries(
  fs.readFileSync(process.env.HOME + '/.openclaw/credentials/supabase/credentials.env', 'utf8')
    .split('\n').filter(l => l.includes('='))
    .map(l => { const i = l.indexOf('='); return [l.slice(0, i), l.slice(i + 1)]; })
);
Confidence
94% confidence
Finding
.env'

VirusTotal

65/65 vendors flagged this skill as clean.

View on VirusTotal

Static analysis

Detected: suspicious.exposed_secret_literal

File appears to expose a hardcoded API secret or token.

Critical
Code
suspicious.exposed_secret_literal
Location
references/playwright-recipes.md:38