MCPInstall

supabase-report

Generate a comprehensive Markdown security audit report with executive summary, findings, and remediation guidance.

Installs
496
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/yoanbernabeu/supabase-pentest-skills --skill supabase-report
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads supabase-report automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

Security Report Generator

🔴 CRITICAL: PROGRESSIVE FILE UPDATES REQUIRED

You MUST write to context files AS YOU GO, not just at the end.

  • Write to .sb-pentest-audit.log IMMEDIATELY as you process each section
  • Update .sb-pentest-context.json with report metadata progressively
  • DO NOT wait until the entire report is generated to update files
  • If the skill crashes or is interrupted, the partial progress must already be saved

This is not optional. Failure to write progressively is a critical error.

This skill generates a comprehensive Markdown security audit report from all collected findings.

When to Use This Skill

  • After completing security audit phases
  • To document findings for stakeholders
  • To create actionable remediation plans
  • For compliance and audit trail purposes

Prerequisites

  • Audit phases completed (context file populated)
  • Findings collected in .sb-pentest-context.json

Report Structure

The generated report includes:

  1. Executive Summary — High-level overview for management
  2. Security Score — Quantified risk assessment
  3. Critical Findings (P0) — Immediate action required
  4. High Findings (P1) — Address soon
  5. Medium Findings (P2) — Plan to address
  6. Detailed Analysis — Per-component breakdown
  7. Remediation Plan — Prioritized action items
  8. Appendix — Technical details, methodology

Usage

Generate Report

Generate security report from audit findings

Custom Report Name

Generate report as security-audit-2025-01.md

Specific Sections

Generate executive summary only

Output Format

The skill generates supabase-audit-report.md:

# Supabase Security Audit Report

**Target:** https://myapp.example.com
**Project:** abc123def.supabase.co
**Date:** January 31, 2025
**Auditor:** Internal Security Team

---

## Executive Summary

### Overview

This security audit identified **12 vulnerabilities** across the Supabase implementation, including **3 critical (P0)** issues requiring immediate attention.

### Key Findings

| Severity | Count | Status |
|----------|-------|--------|
| 🔴 P0 (Critical) | 3 | Immediate action required |
| 🟠 P1 (High) | 4 | Address within 7 days |
| 🟡 P2 (Medium) | 5 | Address within 30 days |

### Security Score

**Score: 35/100 (Grade: D)**

The application has significant security gaps that expose user data and allow privilege escalation. Critical issues must be addressed before the application can be considered secure.

### Most Critical Issues

1. **Service Role Key Exposed** — Full database access possible
2. **Database Backups Public** — All data downloadable
3. **Admin Function No Auth** — Any user can access admin features

### Recommended Actions

1. ⚡ **Immediate (Today):**
   - Rotate service role key
   - Make backup bucket private
   - Add admin role verification

2. 🔜 **This Week:**
   - Enable RLS on all tables
   - Enable email confirmation
   - Fix IDOR in Edge Functions

3. 📅 **This Month:**
   - Strengthen password policy
   - Restrict CORS origins
   - Add rate limiting to functions

---

## Critical Findings (P0)

### P0-001: Service Role Key Exposed in Client Code

**Severity:** 🔴 Critical
**Component:** Key Management
**CVSS:** 9.8 (Critical)

#### Description

The Supabase service_role key was found in client-side JavaScript code. This key bypasses all Row Level Security policies and provides full database access.

#### Location

File: /static/js/admin.chunk.js Line: 89 Code: const SUPABASE_KEY = 'eyJhbGciOiJIUzI1NiI...'


#### Impact

- Full read/write access to all database tables
- Bypass of all RLS policies
- Access to auth.users table (all user data)
- Ability to delete or modify any data

#### Proof of Concept

```bash
curl 'https://abc123def.supabase.co/rest/v1/users' \
  -H 'apikey: [service_role_key]' \
  -H 'Authorization: Bearer [service_role_key]'

# Returns ALL users with full data

Remediation

Immediate:

  1. Rotate the service role key in Supabase Dashboard
    • Settings → API → Regenerate service_role key
  2. Remove the key from client code
  3. Redeploy the application

Long-term:

// Move privileged operations to Edge Functions
// supabase/functions/admin-action/index.ts

import { createClient } from '@supabase/supabase-js'

Deno.serve(async (req) => {
  // Service key only on server
  const supabase = createClient(
    Deno.env.get('SUPABASE_URL')!,
    Deno.env.get('SUPABASE_SERVICE_ROLE_KEY')!
  )

  // Verify caller is admin before proceeding
  // ...
})

Documentation:


P0-002: Database Backups Publicly Accessible

Severity: 🔴 Critical Component: Storage CVSS: 9.1 (Critical)

Description

The storage bucket named "backups" is configured as public, exposing database dumps, user exports, and environment secrets.

Exposed Files

FileSizeContent
db-backup-2025-01-30.sql125MBFull database dump
users-export.csv2.3MBAll user data with PII
secrets.env1KBAPI keys and passwords

Impact

  • Complete data breach (all database content)
  • Exposed credentials for third-party services
  • User PII exposed (emails, names, etc.)

Remediation

Immediate:

-- Make bucket private
UPDATE storage.buckets
SET public = false
WHERE name = 'backups';

-- Delete or move files
-- Consider incident response procedures

Credential Rotation:

  • Stripe API keys
  • Database password
  • JWT secret
  • Any other keys in secrets.env

P0-003: Admin Edge Function Privilege Escalation

Severity: 🔴 Critical Component: Edge Functions CVSS: 8.8 (High)

Description

The /functions/v1/admin-panel Edge Function is accessible to any authenticated user without role verification.

[... additional P0 findings ...]


High Findings (P1)

P1-001: Email Confirmation Disabled

Severity: 🟠 High Component: Authentication

[... P1 findings ...]


Medium Findings (P2)

P2-001: Weak Password Policy

Severity: 🟡 Medium Component: Authentication

[... P2 findings ...]


Detailed Analysis by Component

API Security

TableRLSAccess LevelStatus
users❌Full read🔴 P0
orders✅None✅
posts✅Published only✅

Storage Security

BucketPublicSensitive FilesStatus
avatarsYesNo✅
backupsYesYes (45 files)🔴 P0

Authentication

SettingCurrentRecommendedStatus
Email confirmDisabledEnabled🟠 P1
Password min68+🟡 P2

Remediation Plan

Phase 1: Critical (Immediate)

IDActionOwnerDeadline
P0-001Rotate service keyDevOpsToday
P0-002Make backups privateDevOpsToday
P0-003Add admin role checkBackendToday

Phase 2: High Priority (This Week)

IDActionOwnerDeadline
P1-001Enable email confirmationBackend3 days
P1-002Fix IDOR in get-user-dataBackend3 days

Phase 3: Medium Priority (This Month)

IDActionOwnerDeadline
P2-001Strengthen password policyBackend14 days
P2-002Restrict CORS originsDevOps14 days

Appendix

A. Methodology

This audit was performed using the Supabase Pentest Skills toolkit, which includes:

  • Passive reconnaissance of client-side code
  • API endpoint testing with anon and service keys
  • Storage bucket enumeration and access testing
  • Authentication flow analysis
  • Real-time channel subscription testing

B. Tools Used

  • supabase-pentest-skills v1.0.0
  • curl for API testing
  • Browser DevTools for client code analysis

C. Audit Scope

  • Target URL: https://myapp.example.com
  • Supabase Project: abc123def
  • Components tested: API, Storage, Auth, Realtime, Edge Functions
  • Exclusions: None

D. Audit Log

Full audit log available in .sb-pentest-audit.log


Report generated by supabase-pentest-skills Audit completed: January 31, 2025 at 15:00 UTC


## Score Calculation

The security score is calculated based on:

| Factor | Weight | Calculation |
|--------|--------|-------------|
| P0 findings | -25 per issue | Critical vulnerabilities |
| P1 findings | -10 per issue | High severity issues |
| P2 findings | -5 per issue | Medium severity issues |
| RLS coverage | +10 if 100% | All tables have RLS |
| Auth hardening | +10 | Email confirm, strong passwords |
| Base score | 100 | Starting point |

### Grade Scale

| Score | Grade | Description |
|-------|-------|-------------|
| 90-100 | A | Excellent security posture |
| 80-89 | B | Good, minor improvements needed |
| 70-79 | C | Acceptable, address issues |
| 60-69 | D | Poor, significant issues |
| 0-59 | F | Critical, immediate action needed |

## Context Input

The report generator reads from `.sb-pentest-context.json`:

```json
{
  "target_url": "https://myapp.example.com",
  "supabase": {
    "project_url": "https://abc123def.supabase.co",
    "project_ref": "abc123def"
  },
  "findings": [
    {
      "id": "P0-001",
      "severity": "P0",
      "component": "keys",
      "title": "Service Role Key Exposed",
      "description": "...",
      "location": "...",
      "remediation": "..."
    }
  ],
  "audit_completed": "2025-01-31T15:00:00Z"
}

Report Customization

Include/Exclude Sections

Generate report without appendix
Generate report with executive summary only

Different Formats

Generate report in JSON format
Generate report summary as HTML

MANDATORY: Context File Dependency

⚠️ This skill REQUIRES properly populated tracking files.

Prerequisites

Before generating a report, ensure:

  1. .sb-pentest-context.json exists and contains findings from audit skills
  2. .sb-pentest-audit.log exists with timestamped actions
  3. All relevant audit skills have updated these files

If Context Files Are Missing

If context files are missing or empty:

  1. DO NOT generate an empty report
  2. Inform the user that audit skills must be run first
  3. Recommend running supabase-pentest for a complete audit

Report Generation Output

After generating the report, this skill MUST:

  1. Log to .sb-pentest-audit.log:

    [TIMESTAMP] [supabase-report] [START] Generating security report
    [TIMESTAMP] [supabase-report] [SUCCESS] Report generated: supabase-audit-report.md
    [TIMESTAMP] [supabase-report] [CONTEXT_UPDATED] Report generation logged
    
  2. Update .sb-pentest-context.json with report metadata:

    {
      "report": {
        "generated_at": "...",
        "filename": "supabase-audit-report.md",
        "findings_count": { "p0": 3, "p1": 4, "p2": 5 }
      }
    }
    

FAILURE TO UPDATE CONTEXT FILES IS NOT ACCEPTABLE.

Related Skills

  • supabase-report-compare — Compare with previous reports
  • supabase-pentest — Run full audit first
  • supabase-help — List all available skills

FAQ

What does the supabase-report skill do?

Generate a comprehensive Markdown security audit report with executive summary, findings, and remediation guidance.

How do I install supabase-report?

Run npx skills add https://github.com/yoanbernabeu/supabase-pentest-skills --skill supabase-report in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/supabase-report/ (personal) or .claude/skills/supabase-report/ (project).

Which AI agents can use supabase-report?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is supabase-report safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains supabase-report?

It is published by yoanbernabeu in yoanbernabeu/supabase-pentest-skills. It has 496 recorded installs.

More from yoanbernabeu/supabase-pentest-skills

View all →

supabase-audit-rls

yoanbernabeu/supabase-pentest-skills

Test Row Level Security (RLS) policies for common bypass vulnerabilities and misconfigurations.

Security1.1K installs

supabase-audit-functions

yoanbernabeu/supabase-pentest-skills

Discover and test Supabase Edge Functions for security vulnerabilities and misconfigurations.

Security934 installs

supabase-pentest

yoanbernabeu/supabase-pentest-skills

Orchestrate a complete Supabase security audit with guided step-by-step execution and ownership confirmation.

Security701 installs

supabase-audit-auth-config

yoanbernabeu/supabase-pentest-skills

Analyze Supabase authentication configuration for security weaknesses and misconfigurations.

Data & Databases552 installs

supabase-audit-rpc

yoanbernabeu/supabase-pentest-skills

List and test exposed PostgreSQL RPC functions for security issues and potential RLS bypass.

Data & Databases527 installs

supabase-audit-realtime

yoanbernabeu/supabase-pentest-skills

Test Supabase Realtime WebSocket channels for unauthorized subscriptions and data exposure.

Data & Databases523 installs

Popular docs & writing skills

View category →

grill-with-docs

mattpocock/skills

A relentless interview to sharpen a plan or design, which also creates docs (ADR's and glossary) as we go.

Docs & Writing1.2M installs

lark-markdown

open.feishu.cn

飞书 Markdown:查看、创建、上传、编辑和比较飞书中的原生 Markdown 文件。当用户要操作飞书 Markdown 文件,或比较其远端版本及本地草稿时使用。纯本地 Markdown 文件操作不触发本 skill。不负责将 Markdown 导入为飞书在线文档,也不负责文件搜索、权限、评论、移动、删除等云空间管理操作。

Docs & Writing778.7K installs

writing-beats

mattpocock/skills

Writing, exploit; assemble raw material into a journey of beats, grounding each term before a beat leans on it.

Docs & Writing490.7K installs

writing-shape

mattpocock/skills

Writing, exploit: shape raw material into an article, paragraph by paragraph.

Docs & Writing490.2K installs

writing-fragments

mattpocock/skills

Writing, explore: mine raw fragments, no structure yet.

Docs & Writing489.6K installs

writing-for-agents

mattpocock/skills

Writing documents for agents. Use when creating or editing skills, or modifying AGENTS.md or CLAUDE.md.

Docs & Writing479.3K installs