Crna kocka stoji tamo gdje bi trebalo da bude ulaz u gravirano klasicističko zdanje

Sistemi

verify_jwt nije autentifikacija

Supabase edge funkcije imaju podešavanje koje se zove verify_jwt, i kada ga uključiš, djeluje kao da si zaključao vrata. Prva verzija pravila koje Rhomn Scan koristi za neautentifikovane funkcije vjerovala je isto to, pa je tražila one kod kojih je podešavanje isključeno. Pušteno preko dvije stvarne kodne baze u kojima je bilo dvanaest pravih problema, pronašlo je dva.

Ono što podešavanje zapravo traži jeste važeći JWT potpisan od strane projekta, a anonimni ključ je tačno to. Isporučuje se unutar browser bundle-a, često je hardkodiran u klijentskom kodu, pa je za njegovo čitanje potrebno tridesetak sekundi. Uključivanje verify_jwt sužava krug onih koji mogu pozvati funkciju sa svakoga ko zna URL na svakoga ko zna URL i ko je bar jednom otvorio developer tools.

Deset propuštenih nisu bili suptilni. Jedan repozitorijum uopšte nije imao sekciju functions u konfiguraciji, pa je pravilo vezano za tu sekciju dalo nulu na četiri funkcije koje su radile sa service role ulogom i nikada nisu pitale ko ih zove. Drugi je imao dvije gotovo identične funkcije za povezivanje bota, a pravilo je prijavilo jednu od njih, bez boljeg razloga od toga što je za nju postojao konfiguracioni unos, a za njenog blizanca nije.

Prepravka je prestala da konfiguraciju tretira kao dokaz. Svaka funkcija u projektu je sada kandidat, provjera autentifikacije se dešava u samom kodu i prati bilo koji wrapper pod koji je zakopana, a konfiguracija se i dalje čita, samo da bi se nalaz formulisao, ne da bi se odlučio. Funkcija sa isključenim podešavanjem može se pozvati bez ičega, ona sa uključenim može se pozvati ključem koji svako može kopirati, i izvještaj obje naziva anonimnim pozivaocima, jer to i jesu.

Ozbiljnost se iz istog razloga preselila na sam nalaz. Otvoren mail relay i funkcija koja troši samo sopstveni protok oboje su završavali kao visok rizik, pa je ta riječ značila vrlo malo. Pravilo sada nosi devedeset fixture slučajeva uzetih iz stvarnih repozitorijuma, a četrdeset sedam ih je tu da dokažu da ostaje tiho na kodu koji samo liči na problem.

Share this post:

LinkedInX

Žurnal

Explore More Posts