Seguridad en Supabase

Checks de seguridad específicos para proyectos con Supabase. Row Level Security, service role keys, políticas de storage y funciones RPC.

8 vulnerabilidades

Row Level Security Deshabilitado

critical

Las tablas de Supabase sin RLS habilitado permiten a cualquier usuario autenticado o anónimo leer, insertar, actualizar y eliminar todas las filas usando la librería cliente.

CWE-862

Política RLS con USING(true)

critical

Las políticas RLS que usan USING(true) o WITH CHECK(true) efectivamente deshabilitan la seguridad a nivel de fila al permitir todas las operaciones para todos los usuarios.

CWE-862

RLS Habilitado Sin Políticas

high

RLS está habilitado en una tabla pero no hay políticas definidas, lo que silenciosamente bloquea todo el acceso incluyendo queries legítimos de tu aplicación.

CWE-862

Service Role Key Expuesta

critical

La service_role key de Supabase está hardcodeada en código frontend, comiteada en un repo o expuesta en bundles del cliente, dando acceso admin completo a la base de datos a cualquiera.

CWE-798

Buckets de Storage Públicos

medium

Los buckets de storage de Supabase con políticas permisivas permiten a cualquier usuario subir, leer o eliminar archivos incluyendo documentos privados e imágenes de otros usuarios.

CWE-732

Funciones RPC Sin Autenticación

high

Las funciones de base de datos de Supabase (RPC) son invocables desde el cliente sin verificar auth.uid(), permitiendo a usuarios anónimos ejecutar operaciones privilegiadas.

CWE-862

Anon Key con Permisos Excesivos

medium

El rol de base de datos anon tiene permisos en demasiadas tablas, expandiendo la superficie de ataque para cualquiera con la anon key públicamente disponible.

CWE-269

Migraciones de Base de Datos No en Repo

low

Los cambios de esquema de base de datos se aplican manualmente por el Dashboard de Supabase en vez de archivos de migración trackeados, haciendo imposible auditorías de seguridad y rollbacks.

CWE-1127