CVE-2017-20260: SQL-fejl i Joomla Price Alert
SQL-indsprøjtning i Joomla-udvidelsen Price Alert lader angribere uden login læse jeres database. Fjern eller opdatér modulet.
Hvad er det?
CVE-2017-20260 er en sårbarhed i Joomla-udvidelsen Price Alert version 3.0.2. Fejlen er en SQL-indsprøjtning, hvor en angriber kan indsætte egen databasekode i parameteren product_id, når der sendes forespørgsler til funktionen subscribeajax. SQL-indsprøjtning betyder, at systemet ikke renser brugerens input, før det bruges direkte i en databaseforespørgsel. Det gør det muligt for en angriber at trække data ud af databasen, som ikke er beregnet til at være offentlige, for eksempel adgangskoder og konfigurationsoplysninger. Angrebet kræver hverken login eller nogen handling fra en bruger på jeres side.
Hvem rammer det?
Sårbarheden rammer Joomla-installationer, hvor udvidelsen Price Alert version 3.0.2 er installeret og aktiv. Det drejer sig typisk om webshops eller produktsider, hvor kunder kan tilmelde sig prisalarmer på varer. Danske virksomheder med en ældre Joomla-baseret webshop, hvor komponenten er tilføjet af et bureau eller en tidligere udvikler, bør tjekke, om den stadig ligger på serveren, også selvom den ikke bruges aktivt længere.
Hvad kan ske?
En angriber kan uden at logge ind hente data direkte fra databasen, herunder kundeoplysninger, adgangskoder til administratorkonti og databasekonfiguration. Med disse oplysninger kan angriberen ofte gå videre og overtage administratoradgang til hele Joomla-sitet. For en dansk virksomhed betyder det risiko for læk af persondata, hvilket udløser pligt til at vurdere anmeldelse til Datatilsynet, samt risiko for at hele webshoppen bliver kompromitteret og misbrugt til svindel eller spredning af skadelig kode.
Hvor alvorligt er det?
CVSS-scoren er 8,2 ud af 10, hvilket klassificeres som alvorlig. Angrebet kræver ikke login og ingen handling fra en almindelig bruger, og det kan udføres over internettet uden særlig teknisk kompleksitet. Konsekvensen er alvorlig for fortrolighed, da angriberen kan læse følsomme data i databasen, mens der ikke er direkte risiko for at ændre data eller lukke sitet ned. Der er offentliggjort teknisk detaljeret beskrivelse af, hvordan angrebet udføres, hvilket gør det sandsynligt, at der findes eller hurtigt vil opstå færdige angrebsscripts.
Hvad gør jeg nu?
Da udvidelsen er gammel og der ikke er dokumenteret en officiel opdatering, er den mest effektive løsning at fjerne eller deaktivere komponenten.
- Undersøg om Price Alert-udvidelsen er installeret på jeres Joomla-site, og deaktivér eller afinstallér den, indtil en rettet version findes.
- Tjek jeres webserverlogfiler for forespørgsler mod subscribeajax med mistænkelige tegn i product_id-parameteren, som kan indikere forsøg på udnyttelse.
- Skift adgangskoder til databasen og til Joomla-administratorkonti, hvis I finder tegn på misbrug.
- Sæt en webapplikationsfirewall foran sitet, hvis komponenten ikke kan fjernes med det samme, og bloker mistænkelige forespørgsler mod subscribeajax.
- Vurdér om hændelsen skal anmeldes til Datatilsynet, hvis der er tegn på, at persondata er blevet udtrukket.
- Kontakt en sikkerhedsrådgiver, hvis I ikke selv kan afgøre, om komponenten er i brug, eller hvis I finder spor af indbrud i loggene.
Fjern eller opdatér komponenten hurtigst muligt
Vi anbefaler, at I straks kontrollerer, om Price Alert-udvidelsen findes på jeres Joomla-site, og fjerner den, da der ikke findes en officiel rettelse. Det er ikke forsvarligt at vente til en planlagt opdatering, fordi angrebet kan udføres uden login og teknisk detaljerede oplysninger er offentligt tilgængelige. Har I ikke denne specifikke udvidelse installeret, er der ingen umiddelbar handling påkrævet ud over generel opdatering af jeres Joomla-platform.
Tidslinje
Konkrete eksempler
Dansk webshop med gammel Joomla-installation
En mindre dansk webshop har i flere år kørt på Joomla med en prisalarm-funktion, som et tidligere webbureau installerede. Ingen i virksomheden har siden holdt øje med, om udvidelsen stadig er i brug eller opdateret. En angriber finder sitet via en automatisk scanning, sender en manipuleret forespørgsel til subscribeajax og trækker kundedata samt administratoroplysninger ud af databasen, uden at nogen i virksomheden opdager det, før kunder begynder at modtage phishingmails.
Ofte stillede spørgsmål
Hvordan finder vi ud af, om vi bruger denne Joomla-udvidelse?
Tjek jeres Joomla-administrationspanel under Udvidelser, eller søg i filsystemet efter mapper med navnet priceal eller pricealert. Er I i tvivl, kan jeres webbureau eller hostingudbyder hjælpe med at bekræfte det.
Er vi ramt, hvis vi ikke bruger prisalarm-funktionen aktivt?
Ja. Selv en inaktiv eller ubrugt komponent kan stadig være tilgængelig på serveren og dermed sårbar, hvis den ikke er fjernet helt fra systemet.
Kan vi vente til den ugentlige opdateringsrunde med at rette det?
Nej. Da der ikke findes en officiel rettelse, og angrebet kan udføres uden login, bør komponenten fjernes eller blokeres straks, ikke ved næste planlagte vedligeholdelse.
Skal vi anmelde hændelsen til Datatilsynet?
Hvis I finder tegn på, at nogen har trukket persondata ud via denne sårbarhed, skal I vurdere anmeldelsespligten efter databeskyttelsesforordningen inden for 72 timer fra opdagelsen.
Findes der en opdateret version af Price Alert, vi kan installere i stedet?
Der er på offentliggørelsestidspunktet ikke dokumentation for en officiel rettet version. Vi anbefaler at fjerne komponenten og finde et alternativt modul, hvis funktionen stadig skal bruges.
Hvordan kan vi tjekke, om vi allerede er blevet angrebet?
Gennemgå webserverens adgangslogfiler for forespørgsler mod subscribeajax med usædvanlige tegn som anførselstegn eller SQL-nøgleord i product_id-parameteren.
CVSS-detaljer
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:N
CWE-svaghedstyper
Original NVD-beskrivelse (engelsk)
Joomla! Component Price Alert 3.0.2 contains an SQL injection vulnerability that allows unauthenticated attackers to execute arbitrary SQL queries by injecting malicious code through the product_id parameter. Attackers can send requests to the subscribeajax view with crafted SQL payloads in the product_id parameter to extract sensitive database information including credentials and configuration data.
Referencer & kilder
Eksterne kilder
Brug for hjælp med jeres sikkerhed?
Vi hjælper SMV’er med at omsætte trusler som denne til konkrete handlingsplaner.