CVE-2019-25748: SQL-injektion i Joomla JHotelReservation
SQL-indsprøjtning i Joomla-udvidelsen JHotelReservation 6.0.7 lader angribere uden login hente data fra databasen. Fjern eller isolér modulet nu.
Hvad er det?
CVE-2019-25748 er en sårbarhed i JHotelReservation, en hotelbookingudvidelse til Joomla CMS, version 6.0.7. Fejlen er en SQL-indsprøjtning, hvor en angriber kan indsætte egen databasekode i et felt kaldet ‘rooms’ på søgefunktionen for hoteller. Koden bliver sendt videre til databasen uden ordentlig kontrol, så angriberen kan læse data, denne ikke burde have adgang til, for eksempel oplysninger om databaseversion og andre tabeller.
Hvem rammer det?
Det rammer virksomheder, der kører Joomla med JHotelReservation-udvidelsen i version 6.0.7. I Danmark drejer det sig typisk om hoteller, bed and breakfasts, feriehuse og andre turismevirksomheder, der bruger Joomla som hjemmesidesystem med indbygget booking. Alle sider, hvor søgefunktionen ‘search-hotels’ er tilgængelig for besøgende, er potentielt udsatte, uanset om siden har login eller ej.
Hvad kan ske?
En angriber kan uden at være logget ind sende et forespørgselskald direkte til databasen og trække følsomme oplysninger ud, for eksempel gæsteoplysninger, bookingdata eller administratoroplysninger, hvis de ligger i samme database. Da sårbarheden kun giver læseadgang med mulighed for begrænset ændring, er der størst risiko for datalæk, ikke for at systemet lukkes ned. For en dansk hotelvirksomhed kan det betyde brud på persondataforordningen, hvis gæstedata bliver eksponeret.
Hvor alvorligt er det?
CVSS-scoren er 8,2 ud af 10, alvorlig. Angrebet kræver ingen login og ingen handling fra en bruger, det foregår over netværket og er teknisk enkelt at udføre. Konsekvensen er høj for fortrolighed, altså adgang til data, men lav for integritet og ingen for tilgængelighed. Der er ikke oplyst om aktiv udnyttelse i praksis, men den detaljerede beskrivelse af angrebsmetoden gør det sandsynligt, at et konceptbevis er offentligt tilgængeligt.
Hvad gør jeg nu?
Følg punkterne i rækkefølge for at lukke hullet og begrænse skaden:
- Opdatér JHotelReservation til en version nyere end 6.0.7, hvis en sådan findes. Findes der ingen rettet version, deaktivér udvidelsen eller blokér adgangen til søgefunktionen ‘search-hotels’ med det samme.
- Undersøg, om jeres Joomla-installation bruger JHotelReservation, og bekræft versionsnummeret.
- Gennemgå webserverens logfiler for usædvanlige POST-forespørgsler til search-hotels, især med uventede tegn i rooms-feltet.
- Sæt en webapplikationsfirewall op med regler mod SQL-indsprøjtning, hvis udvidelsen skal forblive aktiv midlertidigt.
- Skift adgangskoder til databasen og relaterede konti, hvis I finder tegn på, at sårbarheden er blevet udnyttet.
- Kontakt en sikkerhedsleverandør, hvis I ikke selv kan verificere, om jeres system er ramt, eller hvis I ikke har en opdateret version at installere.
Luk hullet inden for 48 timer
Vi anbefaler, at I straks fjerner eller isolerer JHotelReservation 6.0.7, hvis I ikke kan finde en rettet version, da angrebet ikke kræver login og let kan automatiseres. Det er ikke forsvarligt at vente til en planlagt opdateringsrunde, da sårbarheden er offentligt beskrevet i detaljer. Vent kun, hvis søgefunktionen allerede er utilgængelig udefra, for eksempel bag et login eller en firewall, der blokerer eksterne forespørgsler til endpointet.
Tidslinje
Konkrete eksempler
Dansk kroejer med Joomla-booking
En mindre dansk kro bruger Joomla med JHotelReservation til at håndtere onlinebookinger. En angriber finder søgefunktionen på hjemmesiden og sender en manipuleret forespørgsel gennem rooms-feltet, som gør det muligt at hente gæsternes navne og bookingoplysninger direkte fra databasen, uden at logge ind noget sted på siden.
Ofte stillede spørgsmål
Hvordan finder vi ud af, om vi bruger den sårbare version?
Tjek listen over installerede Joomla-udvidelser i administrationspanelet under Udvidelser, og se om JHotelReservation er installeret, og hvilken version der står. Er versionen 6.0.7 eller ældre, bør I handle.
Kan vi vente til weekenden med at rette det?
Det frarådes. Angrebet kræver ingen login og kan udføres automatisk af scanningsværktøjer, så jo længere I venter, desto større er risikoen for, at nogen finder og udnytter hullet.
Skal vi anmelde det til Datatilsynet, hvis vi bliver ramt?
Hvis I opdager, at persondata som gæste- eller bookingoplysninger er blevet udtrukket, skal I vurdere anmeldepligten efter persondataforordningen. Kontakt jeres databeskyttelsesrådgiver eller os for hjælp til vurderingen.
Er der en officiel rettelse fra leverandøren?
Der er ikke oplyst om en officiel rettet version i de tilgængelige data. Kontrollér leverandørens hjemmeside eller Joomla-udvidelsesbiblioteket for en opdatering, og indtil da bør udvidelsen tages ud af drift eller isoleres.
Hvordan ved vi, om vi allerede er blevet angrebet?
Gennemgå webserverens logfiler for POST-forespørgsler til search-hotels med usædvanlige tegn eller SQL-nøgleord i rooms-parameteren. Mange forsøg fra samme IP-adresse over kort tid er også et tegn på scanning eller angreb.
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 JHotelReservation 6.0.7 contains an SQL injection vulnerability that allows unauthenticated attackers to execute arbitrary SQL queries by injecting malicious code through the rooms parameter. Attackers can send POST requests to the search-hotels endpoint with crafted SQL payloads in the rooms parameter to extract sensitive database information including version details.
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.