En sikkerhetsforsker hos Akamai som heter – eller i alle fall kaller seg – Larry Cashdollar, oppdaget nylig en alvorlig sårbarhet i den populære jQuery-pluginen File Upload. Pluginen gjør det relativt enkelt å utstyre websider med avansert funksjonalitet for opplasting av filer.
Sårbarheten gjør det blant annet mulig å laste opp alle typer filer til servere, inkludert såkalte «web shell», som gjør det mulig fjernkjøre kommandoer på serveren. Eksempelkode finnes her.
Apache-endring
I samarbeid med utvikleren av File Upload, skal Cashdollar ha funnet ut at pluginen ikke har tatt hensyn til en endring som skal ha blitt innført i Apache HTTP Server med testutgaven 2.3.9, som kom i 2010. Endringen har etter alt å dømme blitt innført på produksjonsservere med versjon 2.4.x av Apache HTTP Server.
Det endringen egentlig går ut på, er at støtten for .htaccess-filer har blitt deaktivert som standard i Apache HTTP Server.
Dette er filer som gjør det mulig å gjøre konfigurasjonsendringer på mappenivå på webserveren. Den primære hensikten er å gi brukere som ikke har tilgang til å endre den sentrale konfigurasjonen til webserveren, mulighet til å etablere egne sikkerhetsregler, omskriving av webadresser og annet for det innholdet som de selv er ansvarlige for.
Gode grunner
Det er særlig to årsaker til at støtten for .htaccess-filer skal ha blitt deaktivert som standard. Det ene er at slike filer har en negativ effekt på ytelsen, sammenlignet med å oppgi de samme direktivene i de de sentrale konfigurasjonsfilene for webserveren. Det andre er at det ikke nødvendigvis er ønskelig at brukere skal kunne overstyre sikkerhetsfunksjonalitet som er aktivert i de sentrale konfigurasjonsfilene.
Støtte for .htaccess-filer er derfor normalt et bevisst valg gjort på webservere med Apache HTTP Server 2.4.x. Men dette har fått negative konsekvenser for mange, kanskje uten at de egentlig vet om det.
Ny versjon tilgjengelig
Den aktuelle File Upload-pluginen har fram til nå brukt .htaccess til sikkerhetsfunksjonalitet. Men på mange webservere blir altså .htaccess-filen som pluginen baserer seg på, ignorert. Dermed fungerer ikke den sikkerheten som pluginen har forsøkt å tilby.
Pluginen har nå blitt endret slik at kun vanlige bildefiler kan lastes opp. Det er dog mulig for den enkelte bruker å endre dette. Men de bes sikre at filene som lastes opp, ikke kan kjøres verken på serveren eller i nettleseren.
For å fjerne sårbarheten, må brukere av File Upload-pluginen ta i bruk versjon 9.22.1 eller nyere.
Problemet stopper ikke der
Det er mange GitHub-prosjekter som bygger videre på File Upload-pluginen. Antallet «forks» er for øyeblikket 7835. Ifølge Bleeping Computer har Cashdollar testet tusen av disse og registrert at så godt som alle er sårbare.
Det vil si at alle disse prosjektene må oppdateres med de nye endringene, og alle som har tatt i bruk pluginen fra ett av disse prosjektene, i stedet for originalen, må laste ned en ny versjon når den eventuelt blir utgitt.
Har vært kjent lenge
Dessverre er det ikke slik at Cashdollar er den første til å oppdage denne sårbarheten. Han forteller at det bare skulle et raskt Google-søk til for å finne andre som har omtalt hvordan sårbarheten kan utnyttes. En del av dette materialet skal være minst tre år gammelt.
Husk å oppdatere: Også mange norske nettsteder bruker sårbare JavaScript-biblioteker