Ako ste od mene primili e-poštu koja vas upućuje na ovu stranicu, to je zato što vaše web-mjesto, čini se, koristi verziju dodatka Events Manager (WordPress dodatka events-manager, autora Marcusa Sykesa / wp-events-plugin.com) koja spada u zahvaćeni raspon poznatog sigurnosnog problema. Ova stranica objašnjava u čemu je problem, kako utvrditi odnosi li se on uopće na vaše web-mjesto i kako se ažurirati.

Prije svega, najvažnija činjenica o ovoj obavijesti: verzija u zahvaćenom rasponu sama po sebi ne znači da je vaše web-mjesto izloženo. Problem opisan u nastavku iskoristiv je samo kada je Events Manager konfiguriran da prihvaća rezervacije od posjetitelja koji nisu prijavljeni (način rezervacije bez korisničkog računa, u dodatku nazvan “No-User-Account Booking Mode”). Ako vaše web-mjesto zahtijeva račun za rezervaciju ili uopće ne prima rezervacije, vrlo vjerojatno nije izloženo čak ni na zahvaćenoj verziji. Vašu verziju dodatka mogu pročitati iz javnih datoteka, ali ne mogu vidjeti vašu konfiguraciju rezervacija, pa je ova obavijest upozorenje iz predostrožnosti, a ne potvrđeni nalaz o vašem web-mjestu.

Riječ je o CVE-2026-12987, neovlaštenom ubrizgavanju PHP objekata koje vodi do SQL injekcije u sustavu rezervacija dodatka. Tijelo koje je dodijelilo CVE nije objavilo ocjenu ozbiljnosti; Patchstack isti nalaz ocjenjuje s 8,8 od 10 (visoko). Zahvaća verzije 4.0.0 do 7.3.6, a ispravljen je u verziji 7.3.7. Ako koristite zahvaćenu verziju, ažurirajte Events Manager na 7.3.7 ili noviji (preporučuje se trenutačno izdanje iz linije 7.4.x). Nema naznaka da se ovaj problem igdje iskorištava.

Nekoliko riječi o hitnosti, jer je ovo najuvjetovanija obavijest koju sam poslao: koliko vam je važna ovisi gotovo u potpunosti o toj postavci rezervacija. Ako rezervacije na vašem web-mjestu zahtijevaju prijavu, ažuriranje je rutinsko održavanje dodatka. Ako vaše web-mjesto prima javne rezervacije od posjetitelja bez računa, molim vas tretirajte ažuriranje kao prioritet: u toj konfiguraciji ranjivost bi napadaču mogla omogućiti da pročita podatke iz baze podataka vašeg web-mjesta (poput hasheva lozinki i tajnih ključeva) bez prijave. Čak i tada, ova je stranica upozorenje iz predostrožnosti, a ne izvještaj o incidentu, i ne podrazumijeva se nikakav hitni odgovor.

Ovo je ranjivost dodatka, a ne jezgre WordPressa. Potpuno ažuran WordPress vas ne štiti ako je sam dodatak Events Manager na zahvaćenoj verziji.

Je li ova poruka vjerodostojna?

Da. Ovo je dobronamjerna obavijest po načelu odgovorne objave od neovisnog istraživača sigurnosti. Ne tražim od vas novac, lozinke ni pristup vašem web-mjestu i nisam pokušavao provaliti u njega, bilo što učitati niti bilo što iskoristiti.

Sve što sam učinio jest da sam pogledao javno vidljive datoteke koje vaše web-mjesto poslužuje svakom posjetitelju (na isti način na koji je vaša naslovnica javna) i zabilježio broj verzije koji dodatak Events Manager objavljuje u svojoj javnoj datoteci readme.txt. Sustava rezervacija izričito se nisam dotaknuo, a ništa u ovoj provjeri ne dira vaše podatke, vašu administratorsku zonu ni bilo koji privatni dio vašeg web-mjesta (više pojedinosti u odjeljku Što sam učinio, a što nisam u nastavku).

Ako želite provjeriti tko sam, pogledajte kontaktne podatke na dnu ove stranice i stranicu O meni.

Zašto je ovo važno

Events Manager jedan je od najdugovječnijih dodataka za događaje i rezervacije za WordPress (u službenom direktoriju od 2008., s otprilike 6,3 milijuna preuzimanja tijekom svog postojanja). Omogućuje web-mjestu da objavljuje događaje i prima rezervacije za njih, uključujući, ako operater tako odabere, rezervacije od posjetitelja koji nemaju korisnički račun na web-mjestu.

U zahvaćenim verzijama, kada posjetitelj pošalje rezervaciju, prilagođena polja registracije koja ispuni pohranjuju se kao podaci o rezervaciji, a kada dodatak kasnije učita tu rezervaciju, raspakira (“deserijalizira”) pohranjene podatke bez ograničavanja onoga što oni smiju sadržavati. Posebno oblikovan unos stoga se može pretvoriti u programske objekte po napadačevom izboru (ubrizgavanje PHP objekata), a lanac takvih objekata dosegne upit nad bazom podataka koji nije pravilno parametriziran (SQL injekcija). Praktični učinak na web-mjestu u ranjivoj konfiguraciji: napadač bez računa i bez prijave mogao bi pročitati proizvoljne podatke iz baze podataka web-mjesta, poput hasheva lozinki i tajnih ključeva koje WordPress koristi.

Dvije stvari drže ovo u perspektivi. Prvo, ulazna točka javni je obrazac za rezervaciju, pa napad djeluje samo ondje gdje posjetitelj koji nije prijavljen može poslati rezervaciju. To je upravo preduvjet “No-User-Account Booking Mode”: ako rezervacija na vašem web-mjestu zahtijeva račun, ranjivi put nije dostupan anonimnim posjetiteljima i vaše web-mjesto vrlo vjerojatno nije izloženo čak ni na zahvaćenoj verziji. Drugo, ovo je problem čitanja podataka, a ne preuzimanje poslužitelja ili administratora: sam po sebi ne omogućuje napadaču da izvršava kod na vašem poslužitelju ni da se prijavi u vašu administratorsku zonu. I da to ponovim jasno, nema naznaka aktivnog iskorištavanja: nije u CISA-inu katalogu poznatih iskorištavanih ranjivosti, njegova ocjena vjerojatnosti iskorištavanja (EPSS) blizu je nule, a nisam upoznat ni s jednim izvještajem o iskorištavanju.

Ako je moja e-pošta navela ovaj problem, to znači da verzija koju vaše web-mjesto prijavljuje spada u zahvaćeni raspon. Nisam testirao je li vaše konkretno web-mjesto iskoristivo i ne mogu vidjeti kako je vaš sustav rezervacija konfiguriran; sve što sam opazio jest da web-mjesto prijavljuje zahvaćenu verziju.

Jesam li zahvaćen?

Dva pitanja o tome odlučuju, ovim redom.

Prvo: prihvaćate li rezervacije od posjetitelja koji nisu prijavljeni? Ovo je odlučujuće pitanje i samo vi na njega možete odgovoriti.

  • Ako rezervacije na vašem web-mjestu zahtijevaju račun ili prijavu, ili vaše web-mjesto uopće ne prima rezervacije, vrlo vjerojatno niste izloženi, čak ni na zahvaćenoj verziji. Ažuriranje se i dalje preporučuje, kao uobičajeno održavanje.
  • Ako vaše web-mjesto prihvaća rezervacije od posjetitelja bez računa (Events Manager to naziva “No-User-Account Booking Mode”), problem se odnosi na vas i trebali biste ažurirati bez odgode.
  • Za provjeru: u administratorskoj zoni WordPressa potražite u postavkama rezervacija dodatka Events Manager opciju koja dopušta rezervacije bez korisničkog računa. Ili to jednostavno testirajte izvana: otvorite jednu od svojih stranica događaja u prozoru za privatno pregledavanje i pogledajte možete li ispuniti i poslati rezervaciju a da vas se ne zatraži prijava.

Drugo: koju verziju koristite? Ne morate mi vjerovati na riječ.

Iz javnog manifesta (prijava nije potrebna): otvorite u pregledniku yourdomain.com/wp-content/plugins/events-manager/readme.txt. Imajte na umu da ovaj dodatak svoj readme isporučuje kao readme.txt (malim slovima). Redak Stable tag: blizu vrha verzija je koju vaša instalacija prijavljuje, a to je ista javna datoteka koju sam ja pročitao.

Iz administratorske zone WordPressa (ako imate pristup):

  1. Prijavite se na svoju WordPress nadzornu ploču (obično na yourdomain.com/wp-admin).
  2. Idite na Plugins pa Installed Plugins.
  3. Pronađite Events Manager i zabilježite verziju navedenu ispod njegova naziva.

Zatim primijenite ovo pravilo, uz napomenu da se verzije uspoređuju brojčano, a ne abecedno:

  • 4.0.0 do 7.3.6: potencijalno zahvaćeno (ovisno o gornjem pitanju o načinu rezervacije), ažurirajte odmah.
  • 7.3.7 ili novije: već ispravljeno. To uključuje 7.3.7.1, koja je bila naknadni ispravak za nesigurnosnu regresiju u prikazu, a ne drugo sigurnosno izdanje: i 7.3.7 i 7.3.7.1 sadrže sigurnosni ispravak. Uključuje i sva trenutačna izdanja iz linije 7.4.x.
  • Starije od 4.0: nije zahvaćeno ovim problemom. Ranjivo rukovanje podacima o rezervaciji prvi je put isporučeno u prepravci dodatka za verziju 4.0, pa ga ranija izdanja ne nose (tako staro izdanje ima mnogo drugih razloga za ažuriranje, ali ova obavijest nije jedan od njih).
  • Nemojte se dati zavesti tekstualnim redoslijedom: Events Manager je prije 6.0 koristio nizove verzija poput 5.99912 (proizvođač je do 6.0 bio zaglavljen na shemi numeriranja 5.999.x), a takva je verzija staro izdanje ispod 6.0, unutar zahvaćenog raspona, a ne nešto novije od 7. Uspoređujte svaki broj redom umjesto da verziju čitate kao tekst.

Kako se nadograditi

Najsigurniji put jest ažuriranje kroz sam WordPress, uz prethodno stvaranje sigurnosne kopije:

  1. Napravite sigurnosnu kopiju svog web-mjesta (datoteke i baza podataka) prije unošenja izmjena. Većina pružatelja usluga hostinga nudi sigurnosne kopije jednim klikom, ili upotrijebite WordPress dodatak za sigurnosno kopiranje.
  2. U administratorskoj zoni WordPressa idite na Dashboard pa Updates, ili Plugins pa Installed Plugins. Ako je ažuriranje dodatka Events Manager navedeno, instalirajte ga odavde.
  3. Ako radije koristite naredbeni redak, WP-CLI radi istu stvar: wp plugin update events-manager.
  4. Ako se ažuriranje ne pojavi, najnovije izdanje možete preuzeti izravno sa stranice dodatka u direktoriju WordPress.org, Events Manager, i ažurirati putem Plugins pa Add New Plugin pa Upload Plugin.
  5. Nakon ažuriranja potvrdite novi broj verzije (7.3.7 ili noviji; preporučuje se trenutačno izdanje iz linije 7.4.x) prema gornjim koracima i provjerite da vaše stranice događaja i rezervacija rade normalno.

Kad ste već tu, vrijedi potvrditi da su jezgra WordPressa i vaši ostali dodaci ažurni, budući da isto načelo vrijedi za sve njih.

Nakon ažuriranja

Ažuriranje na 7.3.7 ili noviji zatvara problem i za većinu je web-mjesta to cijeli posao. Nema naznaka da je ova ranjivost igdje iskorištavana, pa se ne podrazumijeva nikakav hitni odgovor: ne morate tretirati svoje web-mjesto kao kompromitirano niti ga isključivati.

Jedan naknadni korak vrijedi razmotriti, a uvjetovan je istim pitanjem o rezervacijama. Ako je vaše web-mjesto primalo javne rezervacije od posjetitelja bez računa dok je bilo na zahvaćenoj verziji, tada su podaci koje je ranjivost mogla dosegnuti (sadržaj baze podataka, uključujući hasheve lozinki i tajne ključeve) barem teoretski bili čitljivi, iako nema dokaza da je itko to učinio. U tom su slučaju razumne dvije rutinske mjere opreza:

  • Pregledajte nedavne rezervacije i aktivnost korisnika ima li ičega što izgleda pogrešno, na uobičajen način na koji biste pregledali aktivnost web-mjesta.
  • Rotirajte tajne koje se nalaze u vašoj bazi podataka i konfiguraciji: ponovno generirajte WordPressove tajne ključeve i soli u datoteci wp-config.php (nove vrijednosti udaljene su jedan klik na službenom generatoru tajnih ključeva; njihova zamjena jednom odjavljuje sve korisnike) i promijenite lozinku baze podataka putem svoje upravljačke ploče za hosting. Budući da su hashevi lozinki bili među podacima koji su teoretski bili čitljivi, razuman je dodatni korak da administratorski računi osvježe svoje lozinke.

Tretirajte to kao uobičajeno sigurnosno održavanje, a ne kao odgovor na incident. Ako su rezervacije na vašem web-mjestu oduvijek zahtijevale prijavu (ili ne primate rezervacije), samo ažuriranje je dovoljno.

Što sam učinio, a što nisam

Da budem potpuno transparentan o provjeri koja stoji iza moje e-pošte: čitao sam samo javne datoteke koje vaše web-mjesto već poslužuje svakom posjetitelju, konkretno javnu datoteku dodatka readme.txt i vašu naslovnicu. Nisam pristupao vašoj administratorskoj zoni WordPressa, vašoj bazi podataka ni bilo kojem privatnom dijelu web-mjesta. Posebno, ranjivog puta rezervacije nisam se dotaknuo i ništa nisam testirao niti iskorištavao.

Ovo je opažanje temeljeno na verziji: vaše web-mjesto prijavljuje verziju u zahvaćenom rasponu. Budući da ovaj problem ovisi o konfiguraciji, web-mjesto u tom rasponu možda uopće nije izloženo (ako rezervacije zahtijevaju prijavu ili se rezervacije ne primaju), a može biti i već ublaženo drugim sredstvima, poput vatrozida za web-aplikacije. Ova obavijest nije tvrdnja da je vaše web-mjesto bilo iskoristivo u trenutku moje provjere.

Nemam webmastera / zapeo sam

Ako niste osoba koja održava web-mjesto, molim vas proslijedite ovu stranicu onome tko to radi (vašem web-programeru, agenciji ili pružatelju usluga hostinga). Oni će brzo prepoznati gornje korake.

Ako sami održavate web-mjesto i zapnete, rado ću vam besplatno pomoći usmjeriti vas u pravom smjeru. Javite se koristeći kontaktne podatke u nastavku.

Kontakt

Evan Harris, istraživač sigurnosti

Obraćam se u vezi s ovakvim problemima isključivo kako bih pomogao operaterima osigurati njihova web-mjesta. Ako biste radije da vas se više ne kontaktira, samo mi javite i to ću poštovati.

Reference

Službene obavijesti i praćenje

Proizvođač / dodatak