CVE-2017-20282: SQL-sårbarhed i jCart til OpenCart
SQL-indsprøjtning i jCart-komponenten til OpenCart lader uautoriserede hente databaseoplysninger uden login.
Hvad er det?
CVE-2017-20282 er en sårbarhed i Joomla-komponenten jCart, som bruges til at drive webshopfunktioner baseret på OpenCart 2.0. Fejlen er en SQL-indsprøjtning, hvor en angriber kan indsætte egen databasekode gennem parameteren product_id i en almindelig webadresse. SQL-indsprøjtning betyder, at angriberens input bliver fortolket som en del af databasens forespørgsel i stedet for almindelig tekst, hvilket giver adgang til data, angriberen normalt ikke må se. Angrebet kræver ingen adgangskode og ingen handling fra en bruger på sitet, kun en almindelig GET-forespørgsel til index.php med bestemte parametre.
Hvem rammer det?
Sårbarheden rammer Joomla-installationer, der har jCart-komponenten til OpenCart 2.0 installeret. Det drejer sig typisk om mindre og mellemstore danske webshops, der har fået bygget en Joomla-baseret side med denne ældre e-handelsudvidelse, ofte af et webbureau for flere år siden. Er komponenten ikke installeret, er sitet ikke berørt af denne konkrete fejl.
Hvad kan ske?
En angriber kan hente oplysninger fra databasen, herunder kundedata som navne, adresser, ordrehistorik og i nogle tilfælde adgangskodehash. Angrebet påvirker ikke muligheden for at ændre data eller lukke sitet ned, men lækket af kundeoplysninger kan udløse pligt til at anmelde bruddet til Datatilsynet efter databeskyttelsesforordningen, og det kan skade tilliden til virksomhedens webshop.
Hvor alvorligt er det?
CVSS-score er 8,2 ud af 10, alvorlig. Angrebet kan udføres over internettet, kræver ingen forudgående adgang og ingen handling fra en bruger på sitet. Konsekvensen er høj for fortrolighed, det vil sige at angriberen kan læse data, mens integritet og tilgængelighed ikke påvirkes direkte. Der er ingen kendte tilfælde af aktiv udnyttelse i naturen, men den offentliggjorte beskrivelse indeholder så præcise detaljer om angrebsmetoden, at den reelt fungerer som en opskrift, angribere kan bruge direkte.
Hvad gør jeg nu?
jCart til OpenCart 2.0 er en ældre, ikke længere vedligeholdt komponent. Der findes ingen officiel rettelse, så indsatsen bør fokusere på at fjerne eller afskærme komponenten.
- Undersøg om jeres Joomla-installation har jCart-komponenten installeret, og notér versionen.
- Er komponenten ikke i aktiv brug, fjern den helt fra Joomla-installationen med det samme.
- Er den i brug, blokér forespørgsler med option=com_jcart og route=product/product via en webapplikationsfirewall, indtil komponenten kan udskiftes.
- Planlæg overgang til en understøttet e-handelsløsning, da jCart ikke opdateres længere.
- Gennemgå adgangslogs for mistænkelige forespørgsler mod index.php med parameteren option=com_jcart for at vurdere, om data allerede er blevet udtrukket.
- Har I ikke selv ressourcer til at vurdere logs eller gennemføre en migrering, bør I hente hjælp fra en ekstern sikkerhedsrådgiver eller jeres webbureau.
Fjern eller afskærm komponenten snarest
Vi anbefaler, at I straks undersøger, om jCart til OpenCart er installeret på jeres Joomla-site, og fjerner komponenten, hvis den ikke bruges aktivt. Er den i brug, bør I afskærme den med en webapplikationsfirewall og lægge en plan for udskiftning, da der ikke findes en officiel rettelse. Det er ikke forsvarligt at vente, da angrebet kan udføres uden login og med en offentligt kendt fremgangsmåde.
Tidslinje
Konkrete eksempler
Dansk webshop med gammel Joomla-løsning
En mindre dansk virksomhed har for flere år siden fået bygget en webshop i Joomla med jCart-komponenten til at håndtere produktvisning fra OpenCart. Ingen har siden fulgt op på, om komponenten stadig vedligeholdes. En angriber finder sitet, sender en forespørgsel med et manipuleret product_id og udtrækker kundeoplysninger fra databasen, uden at det opdages før måneder senere ved en rutinemæssig sikkerhedsgennemgang.
Ofte stillede spørgsmål
Hvordan finder vi ud af, om vi bruger jCart-komponenten?
Tjek Joomla-administrationens komponentliste for en post kaldet jCart eller com_jcart. I kan også søge i webserverens filsystem efter mapper med navnet jcart under komponenter-mappen.
Kan vi vente med at handle til efter weekenden?
Er komponenten installeret og tilgængelig fra internettet, bør I handle inden weekenden, da angrebet ikke kræver login og kan udføres af enhver, der kender webadressen til sitet.
Er vi allerede blevet ramt?
Gennemgå jeres webserverlogs for forespørgsler mod index.php med parametrene option=com_jcart og route=product/product, hvor product_id indeholder usædvanlige tegn som anførselstegn eller SQL-nøgleord. Sådanne forespørgsler er tegn på et forsøg.
Skal vi anmelde det til Datatilsynet?
Kun hvis I finder konkrete tegn på, at persondata faktisk er blevet udtrukket. Er der tale om et sikkert konstateret databrud med personoplysninger, skal det anmeldes inden for 72 timer efter opdagelsen.
Findes der en opdatering, der løser problemet?
Nej, jCart til OpenCart 2.0 vedligeholdes ikke længere, og der er ikke offentliggjort en officiel rettelse. Løsningen er at fjerne komponenten eller afskærme den, indtil I kan skifte til en aktivt vedligeholdt e-handelsløsning.
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 jCart for OpenCart 2.0 contains an SQL injection vulnerability that allows unauthenticated attackers to manipulate database queries by injecting SQL code through the product_id parameter. Attackers can send GET requests to index.php with the option=com_jcart&route=product/product parameters and malicious product_id values to extract sensitive database information.
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.