FixVibe
Covered by FixVibemedium

Next.js Feilkonfigurasjon av sikkerhetsheader i next.config.js

Next.js-applikasjoner som bruker next.config.js for overskriftsadministrasjon er mottakelige for sikkerhetshull hvis banetilpasningsmønstre er upresise. Denne forskningen undersøker hvordan feilkonfigurasjoner med jokertegn og regulære uttrykk fører til manglende sikkerhetshoder på sensitive ruter, og hvordan konfigurasjonen skjerpes.

CWE-1021CWE-200

Virkning

Manglende sikkerhetshoder kan utnyttes til å utføre clickjacking, skripting på tvers av nettsteder (XSS), eller samle informasjon om servermiljøet [S2]. Når overskrifter som Content-Security-Policy (CSP) eller X-Frame-Options brukes inkonsekvent på tvers av ruter, kan angripere målrette mot spesifikke ubeskyttede stier for å omgå sikkerhetskontroller for hele nettstedet [S2].

Grunnårsak

Next.js lar utviklere konfigurere svarhoder i next.config.js ved å bruke headers-egenskapen [S2]. Denne konfigurasjonen bruker banetilpasning som støtter jokertegn og regulære uttrykk [S2]. Sikkerhetssårbarheter oppstår vanligvis fra:

  • Ufullstendig banedekning: Jokertegnmønstre (f.eks. /path*) dekker kanskje ikke alle tiltenkte underruter, og etterlater nestede sider uten sikkerhetsoverskrifter [S2].
  • Informasjonsavsløring: Som standard kan Next.js inkludere X-Powered-By-overskriften, som avslører rammeversjonen med mindre de er eksplisitt deaktivert via poweredByHeader-konfigurasjonen [S2].
  • CORS Feilkonfigurasjon: Feilaktig definerte Access-Control-Allow-Origin-hoder i headers-arrayen kan tillate uautorisert kryssopprinnelsestilgang til sensitive data [S2].

Betongrettinger

  • Revisjonsbanemønstre: Sørg for at alle source-mønstre i next.config.js bruker passende jokertegn (f.eks. /:path*) for å bruke overskrifter globalt der det er nødvendig [S2].
  • Deaktiver fingeravtrykk: Sett poweredByHeader: false i next.config.js for å forhindre at X-Powered-By-overskriften sendes [S2].
  • Begrens CORS: Sett Access-Control-Allow-Origin til spesifikke klarerte domener i stedet for jokertegn i headers-konfigurasjonen [S2].

Hvordan FixVibe tester for det

FixVibe kunne utføre en aktiv gated probe ved å gjennomsøke applikasjonen og sammenligne sikkerhetshodene til forskjellige ruter. Ved å analysere X-Powered-By-overskriften og konsistensen til Content-Security-Policy på tvers av forskjellige banedybder, kan FixVibe identifisere konfigurasjonshull i next.config.js.