FixVibe
Covered by FixVibehigh

Aċċess għal Dejta mhux awtorizzat permezz tas-Sigurtà tal-Livell ta' Ringiela Supabase Nieqsa (RLS)

F'applikazzjonijiet sostnuti minn Supabase, is-sigurtà tad-dejta tiddependi fuq is-Sigurtà fil-Livell tar-Ringiela (RLS). Jekk RLS ma jkunx espliċitament attivat u kkonfigurat b'politiki, kwalunkwe utent biċ-ċavetta anonima pubblika jista' jaqra, jaġġorna jew iħassar id-data madwar id-database kollha. Dan huwa partikolarment kritiku f'ambjenti Next.js fejn il-klijent Supabase spiss ikun inizjalizzat b'ċavetta pubblika API.

CWE-284

Impatt

In-nuqqas li timplimenta s-Sigurtà fil-Livell tar-Ringiela (RLS) tippermetti lil attakkanti mhux awtentikati li jitolbu dejta minn database Supabase meta tabelli pubbliċi jkunu esposti permezz tal-konfini anon [S1]. Minħabba li l-applikazzjonijiet Next.js tipikament jesponu ċ-ċavetta Supabase anon fil-kodiċi tan-naħa tal-klijent, attakkant jista 'juża din iċ-ċavetta biex jagħmel REST dirett API sejħiet għad-database ta' informazzjoni sensittiva tal-utent u jevita sejħiet għall-informazzjoni sensittiva tal-utent u jaċċessa d-database intenzjonata. [S2].

Kawża Għerq

B'mod awtomatiku, it-tabelli Postgres f'Supabase jeħtieġu attivazzjoni espliċita ta' Row Level Security biex jipprevjenu l-aċċess pubbliku [S1]. Meta żviluppatur joħloq tabella iżda jinsa li jippermetti RLS jew jonqos milli jiddefinixxi politiki restrittivi, id-database tista' tesponi d-dejta lil kull min ikollu ċ-ċavetta anon tal-proġett [S1]. Fl-applikazzjonijiet Next.js, ir-rendiment min-naħa tas-server u l-ġbir min-naħa tal-klijent jeħtieġu wkoll setup tal-klijent Supabase bir-reqqa sabiex il-kuntest tal-utent awtentikat jilħaq is-saff tad-database [S2].

Fixs tal-Konkrit

  • Ippermetti RLS: Esegwixxi ALTER TABLE "your_table_name" ENABLE ROW LEVEL SECURITY; għal kull tabella pubblika li taħżen id-dejta tal-app [S1].
  • Iddefinixxi Politika: Oħloq politiki speċifiċi li jirrestrinġu l-aċċess ibbażati fuq l-istatus ta 'awtentikazzjoni tal-utent, bħal CREATE POLICY "Users can see their own data" ON your_table_name FOR SELECT USING (auth.uid() = user_id); [S1].
  • Klijenti Sikura fuq in-naħa tas-Server: Meta tuża Next.js, żomm il-klijenti tar-rwol tas-servizz server-server biss u xorta applika filtri ta' sjieda qabel ma tirritorna d-dejta lill-utenti [S2].

Kif FixVibe jittestja għaliha

FixVibe diġà jħaddem kontroll Supabase RLS li jinqara biss permezz ta' baas.supabase-rls. L-iskaner jiskopri l-URL tal-proġett Supabase u ċ-ċavetta pubblika anonima minn bundles JavaScript tal-istess oriġini, jitlob lil PostgREST għal metadejta ta 'tabella pubblika, u jipprova jagħżel jaqra biss limitat biex jikkonferma jekk id-dejta hijiex esposta mingħajr sessjoni tal-utent. Ma ddaħħalx, taġġorna, tħassar, jew tuża kredenzjali ta' rwol ta' servizz. Repo scans jistgħu wkoll jaqbdu dan aktar kmieni permezz ta 'repo.supabase.missing-rls, li jimmarka migrazzjonijiet SQL li joħolqu tabelli pubbliċi mingħajr ENABLE ROW LEVEL SECURITY.