CVE-2022-50972: Kritisk RCE-sårbarhed i WooCommerce
Kritisk fejl i WooCommerce 7.1.0 lader angribere uploade og køre PHP-kode uden login. Opdatér pluginet nu.
Hvad er det?
CVE-2022-50972 er en sårbarhed i WooCommerce, det mest brugte plugin til at drive webshop i WordPress. Fejlen ligger i filen class-wc-meta-box-product-images.php, hvor parameteren product-type ikke bliver renset for farlige tegn, før den bruges. Det gør det muligt for en angriber at sende en forespørgsel, der får serveren til at skrive en fil med PHP-kode, et programmeringssprog webserveren kører, direkte til webshoppens rodmappe. Når filen ligger der, kan angriberen tilgå den og få serveren til at udføre vilkårlig kode. Sårbarheden kræver ikke login og er registreret i WooCommerce version 7.1.0.
Hvem rammer det?
Sårbarheden rammer virksomheder, der driver webshop med WordPress og har installeret WooCommerce-pluginet, særligt version 7.1.0. Det gælder danske detailhandlere, webshops og virksomheder, der sælger varer eller tjenester online via WordPress. Er WooCommerce sat op af et bureau eller en freelancer, er det stadig jeres ansvar som dataansvarlig at holde pluginet opdateret.
Hvad kan ske?
En angriber kan uden at logge ind skrive en skadelig fil til webshoppens rodmappe og derefter få serveren til at udføre den. I praksis giver det fuld kontrol over webshoppen: angriberen kan stjæle kundedata og betalingsoplysninger, installere skimmer-kode der opsnapper betalingskort ved kassen, omdirigere besøgende til andre sider eller lægge hele shoppen ned. Da WooCommerce ofte er koblet til et betalingsmodul, kan et angreb også udløse krav om anmeldelse til Datatilsynet, hvis kundedata er kompromitteret.
Hvor alvorligt er det?
Sårbarheden har en CVSS-score på 9,8 ud af 10 og er kategoriseret som kritisk. Angrebet kræver ikke login og ingen handling fra en bruger. Det kan udføres over internettet mod hvem som helst, der kan nå webshoppens adresse. Konsekvensen er fuld kompromittering af fortrolighed, integritet og tilgængelighed, det vil sige, at angriberen både kan læse, ændre og lægge systemet ned. Der er ikke belæg for, at sårbarheden er udnyttet i angreb i naturen, men detaljerne om den sårbare kode er offentligt tilgængelige, hvilket gør det nemt at bygge et angreb.
Hvad gør jeg nu?
Det vigtigste er at få lukket adgangen til den sårbare funktion hurtigst muligt.
- Opdatér WooCommerce til den nyeste tilgængelige version, hvor input til product-type-parameteren bliver renset korrekt.
- Tjek webshoppens rodmappe og plugin-mapper for uventede PHP-filer, særligt filer oprettet omkring tidspunktet for opdateringen.
- Gennemgå webserverens logfiler for forespørgsler mod class-wc-meta-box-product-images.php med usædvanlige parametre.
- Skift adgangskoder til administrator-konti og databaser, hvis I finder tegn på, at systemet allerede er kompromitteret.
- Sørg for, at der findes en aktuel sikkerhedskopi af webshoppen, taget før eventuel kompromittering, så I kan gendanne en ren version.
- Kontakt en sikkerhedsrådgiver, hvis I finder fremmede filer, eller hvis I ikke selv kan afgøre, om systemet er blevet udnyttet.
Opdatér inden for 24 timer
Vi anbefaler, at I opdaterer WooCommerce til nyeste version så hurtigt som muligt, da sårbarheden kan udnyttes af en angriber uden login og uden brugerinteraktion. Det er kun forsvarligt at vente, hvis webshoppen ikke er tilgængelig fra internettet, hvilket sjældent er tilfældet for en aktiv webshop. Har I ikke mulighed for at opdatere med det samme, bør I midlertidigt blokere adgang til filen class-wc-meta-box-product-images.php via jeres webserver eller en webapplikationsfirewall.
Tidslinje
Konkrete eksempler
Webshop med forsømt plugin-opdatering
En dansk tøjbutik driver sin webshop på WordPress med WooCommerce, men har ikke opdateret plugins i flere måneder. En angriber finder den sårbare product-type-parameter og lægger en skjult PHP-fil i rodmappen. Herfra får angriberen adgang til kundernes ordrehistorik og betalingsoplysninger, som butikken efterfølgende skal undersøge og potentielt anmelde til Datatilsynet.
Ofte stillede spørgsmål
Hvordan ved vi, om vores webshop er ramt?
Gå ind under Plugins i jeres WordPress-administration og se, hvilken version af WooCommerce der er installeret. Er den 7.1.0 eller en ældre version, som ikke er opdateret siden fejlen blev kendt, bør I behandle webshoppen som sårbar.
Kan vi vente til weekenden med at opdatere?
Det kan vi ikke anbefale. Sårbarheden kan udnyttes uden login og uden brugerinteraktion over internettet, så webshoppen er udsat, indtil pluginet er opdateret.
Er sårbarheden udnyttet i angreb, vi kender til?
Der er ikke belæg for aktiv udnyttelse på offentliggørelsestidspunktet, men de tekniske detaljer om fejlen er offentligt tilgængelige, hvilket gør det muligt at bygge et angreb.
Skal vi anmelde noget til Datatilsynet?
Kun hvis I finder tegn på, at en angriber faktisk har fået adgang til personoplysninger eller betalingsdata via sårbarheden. Ren opdatering uden fund af kompromittering udløser ikke en anmeldelsespligt.
Hvad gør vi, hvis vi finder en fremmed fil i rodmappen?
Isolér webshoppen fra internettet, gendan fra en sikkerhedskopi taget før filen dukkede op, og skift alle adgangskoder til administratorer og databaser. Kontakt en sikkerhedsrådgiver, hvis I er i tvivl om omfanget.
Rammer det også andre e-handelsplugins end WooCommerce?
Nej, sårbarheden er specifik for WooCommerce-pluginet og filen class-wc-meta-box-product-images.php. Andre plugins er ikke berørt af denne konkrete fejl.
CVSS-detaljer
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CWE-svaghedstyper
Original NVD-beskrivelse (engelsk)
WooCommerce 7.1.0 contains a remote code execution vulnerability that allows attackers to execute arbitrary PHP code by injecting shell commands through the product-type parameter. Attackers can send requests to the class-wc-meta-box-product-images.php endpoint with unsanitized product-type values to write malicious PHP files to the web root.
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.