Ako ste od mene primili e-poruku koja upućuje na ovu stranicu, to je zato što se čini da vaše web-mjesto koristi verziju dodatka Simple Membership (WordPress dodatak za članstvo autora smp7 / wp.insider, koji se u vašim datotekama nalazi na putanji /wp-content/plugins/simple-membership/) koja spada u zahvaćeni raspon poznatog sigurnosnog propusta. Ova stranica objašnjava u čemu je propust, kako provjeriti koju verziju imate, kako se ažurirati te koji je naknadni korak najvažniji nakon toga.

Riječ je o propustu CVE-2026-15930, neautenticiranom preuzimanju administratorskog računa kroz dodatkov vlastiti obrazac za registraciju članstva. Zahvaća svako izdanje prije verzije 4.7.8, a ispravljen je u verziji 4.7.8. Ako koristite bilo što starije od 4.7.8, ažurirajte Simple Membership na 4.7.8 ili noviju verziju (4.7.9 izašla je kasnije i zadržava ispravak, pa je i ona u redu).

Jedna stvar treba biti jasna, jer se ova obavijest razlikuje od nekih drugih koje sam poslao: ne postoji starija verzija koja je sigurna. Ovo nije propust koji je uveden u nekom trenutku pa potom ispravljen. Bio je prisutan u dodatku od njegova najranijeg objavljenog izdanja pa sve do verzije 4.7.7, pa izlika „moja je instalacija prestara da bi bila zahvaćena” ovdje ne vrijedi. Jedine verzije koje nisu zahvaćene jesu 4.7.8 i novije.

Ova obavijest također ne ovisi o tome kako je vaše web-mjesto konfigurirano. Ne postoji postavka koju treba uključiti: kada se dodatak aktivira, objavljuje stranicu membership-registration sa svojim registracijskim obrascem, pa i neizmijenjena instalacija taj obrazac izlaže posjetiteljima koji nisu prijavljeni. Ako je vaša verzija starija od 4.7.8, ažuriranje se isplati provesti bez odgode.

Riječ je o propustu dodatka, a ne jezgre WordPressa. Potpuno ažuriran WordPress ne štiti vas ako je sam dodatak Simple Membership na zahvaćenoj verziji.

Je li ova poruka vjerodostojna?

Jest. Riječ je o dobronamjernoj obavijesti u duhu odgovornog objavljivanja, od nezavisnog sigurnosnog istraživača. Ne tražim od vas novac, lozinke ni pristup web-mjestu i nisam pokušao u njega provaliti, ništa mu poslati niti bilo što iskoristiti.

Sve što sam učinio jest pogledati javno vidljive datoteke koje vaše web-mjesto poslužuje svakom posjetitelju (jednako kao što je vaša naslovnica javna) i zabilježiti broj verzije koji dodatak objavljuje. Izričito nisam poslao vaš registracijski obrazac niti mu bilo što poslao, i ništa u ovoj provjeri ne dira vaše podatke, vašu administraciju 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, kontakt podaci nalaze se na dnu ove stranice i na stranici O meni.

Zašto je to važno

Simple Membership WordPress web-mjestu dodaje razine članstva i zaštićeni sadržaj, a posjetiteljima nudi javni obrazac za prijavu kako bi se sami mogli registrirati za članstvo. Taj je obrazac ovdje ulazna točka.

U zahvaćenim verzijama dodatak nije provjeravao je li WordPress doista stvorio novi račun prije nego što bi nastavio spremati poslane podatke. Kada traženu registraciju nije bilo moguće stvoriti kao istinski novog korisnika jer se odabrano ime sudarilo s računom koji je već postojao, dodatak bi svejedno nastavio i upisao poslane podatke na taj postojeći račun. Praktični je učinak da e-adresa i lozinka upisane u javni registracijski obrazac postaju podaci za prijavu na račun koji je već postojao na web-mjestu. U praksi je račun koji na kraju biva prepisan izvorni administrator web-mjesta, čime se kontrola nad web-mjestom predaje bilo kome tko je ispunio obrazac.

Dvije stvari vrijedi reći izravno. Prvo, prijava nije potrebna i ništa ne mora biti pogrešno konfigurirano: dovoljni su anonimni posjetitelj i registracijska stranica koju dodatak sam objavljuje. Drugo, ishod je administrativna kontrola, a ne ograničeno curenje podataka, zbog čega je ovdje preporuka ažurirati odmah, a ne to uklopiti u sljedeći redoviti termin održavanja.

Ovo opisujem na razini koja je vlasniku web-mjesta potrebna da bi postupio, i ništa dalje. Ne objavljujem pojedinosti koje bi nekome omogućile da to reproducira i molim vas da to ne pokušavate ni na vlastitom ni na tuđem web-mjestu. Očitavanje broja vaše verzije, kako je opisano u nastavku, govori vam sve što trebate da biste odlučili što učiniti.

Ako je moja e-poruka navela ovaj propust, to znači da je verzija koju vaše web-mjesto prijavljuje starija od 4.7.8. Nisam provjeravao je li baš vaše web-mjesto iskoristivo; sve što sam opazio jest verzija.

Jesam li zahvaćen?

Svodi se na jedno pitanje: koju verziju Simple Membershipa koristite? Ne morate mi vjerovati na riječ, a postoje tri načina provjere. Za razliku od nekih drugih dodataka o kojima pišem, sva su tri ovdje pouzdana, jer svi prijavljuju isti temeljni broj verzije.

Iz administracije WordPressa (mjerodavan izvor):

  1. Prijavite se u nadzornu ploču WordPressa (obično na yourdomain.com/wp-admin).
  2. Idite na Dodaci, zatim Instalirani dodaci.
  3. Pronađite Simple Membership, stavku čija je mapa simple-membership, i pogledajte verziju prikazanu ispod njezina naziva.

Iz javnog manifesta (bez prijave): otvorite yourdomain.com/wp-content/plugins/simple-membership/readme.txt u pregledniku. Redak Stable tag: pri vrhu jest verzija koju vaša instalacija prijavljuje, i riječ je o istoj javnoj datoteci koju sam ja pročitao.

Iz izvornog koda vaše stranice (bez prijave): pogledajte izvorni kod bilo koje stranice na svom web-mjestu i potražite stilsku datoteku dodatka, css/swpm.common.css, pod /wp-content/plugins/simple-membership/. Broj uz ?ver= pridodan toj datoteci jest verzija dodatka, preuzeta iz vlastite verzijske konstante dodatka, pa je kod ovog dodatka riječ o pouzdanom očitanju, a ne o obmani.

Zatim primijenite ovo pravilo, imajući na umu da se verzije uspoređuju brojčano, a ne abecedno, pa bi 4.7.10 bila novija od 4.7.8 iako kao tekst izgleda manja:

  • Bilo što starije od 4.7.8: zahvaćeno. Ažurirajte odmah. Ne postoji granica ispod koje starije izdanje ponovno postaje sigurno.
  • 4.7.8 ili novije: već ispravljeno. To uključuje i 4.7.9, koja zadržava ispravak.

Napomena o proširenjima (add-onima) za Simple Membership. Plaćena proširenja dodatka instaliraju se kao zasebni dodaci, u vlastitim mapama, s vlastitim nizovima verzija. Broj verzije proširenja ne govori ništa o ovom propustu. Važna je verzija na temeljnom dodatku Simple Membership, mapa simple-membership, dobivena bilo kojom od tri gornje provjere.

Kako se nadograditi

Najsigurniji je put ažurirati se kroz sam WordPress, uz prethodnu sigurnosnu kopiju:

  1. Napravite sigurnosnu kopiju web-mjesta (datoteke i baza podataka) prije bilo kakvih promjena. Većina pružatelja hostinga nudi sigurnosne kopije u jednom kliku, ili upotrijebite dodatak za sigurnosne kopije WordPressa.
  2. U administraciji WordPressa idite na Nadzorna ploča, zatim Ažuriranja, ili na Dodaci, zatim Instalirani dodaci. Ako je navedeno ažuriranje za Simple Membership, instalirajte ga odavde.
  3. Ako vam je draža naredbena linija, WP-CLI radi isto: wp plugin update simple-membership.
  4. Ako se ažuriranje ne pojavi, najnovije izdanje možete preuzeti izravno sa stranice dodatka u katalogu WordPress.org, Simple Membership, i ažurirati preko Dodaci, zatim Dodaj novi dodatak, zatim Prenesi dodatak.
  5. Nakon ažuriranja potvrdite novi broj verzije (4.7.8 ili noviji) prema gornjim koracima i provjerite rade li vaš registracijski obrazac, razine članstva i zaštićeni sadržaj i dalje ispravno.

Ako koristite plaćena proširenja za Simple Membership, ažurirajte ih zajedno s temeljnim dodatkom, jer su njihova izdanja obično usklađena.

Kad ste već tu, vrijedi provjeriti jesu li jezgra WordPressa i vaši ostali dodaci ažurni, jer isto načelo vrijedi za sve njih.

Nakon ažuriranja

Ažuriranje na verziju 4.7.8 ili noviju zatvara propust. Ovdje postoji jedan naknadni korak koji je važniji od uobičajenog održavanja, i vrijedi ga pročitati čak i ako ste sigurni da se ništa nije dogodilo.

Uobičajeni bi savjet ovdje promašio. Kad ljudi provjeravaju web-mjesto nakon propusta koji omogućuje preuzimanje računa, traže nepoznate nove administratorske račune. Ta provjera ovdje ništa ne bi pronašla, jer se ne stvara nijedan novi račun. Postojeći se račun prepisuje, pa se broj administratora ne mijenja i na popisu se ne pojavljuje nijedno neprepoznato ime. Ono što se mijenja jesu podaci za prijavu na račun koji već poznajete. Dakle:

  • Provjerite e-adresu na svakom administratorskom računu. U administraciji WordPressa idite na Korisnici, filtrirajte na Administrator i potvrdite da svaki i dalje nosi e-adresu koju bi trebao imati. Administratorski račun čija e-adresa više nije adresa prave osobe znak je ovog propusta.
  • Poništite lozinke na svojim administratorskim računima, i na svim drugim računima koji su važni. Učinite to čak i ako sve e-adrese izgledaju ispravno.
  • Razuman je popratni korak i ponovno generiranje tajnih ključeva i „salts” vrijednosti WordPressa u datoteci wp-config.php (nove su vrijednosti udaljene jedan klik u službenom generatoru ključeva; njihova zamjena jednokratno odjavljuje sve korisnike).

Imajte na umu da ažuriranje zatvara propust, ali ne poništava pristup koji je već stečen. Ako je netko preuzeo račun prije nego što ste ažurirali, ti podaci za prijavu i dalje su u njegovim rukama nakon toga, što je upravo razlog zašto je gornje poništavanje lozinki važno. Ako pronađete nešto što vas zabrinjava, postupite s time kao sa svakom drugom sumnjom na neovlašten pristup.

Nemam uvid u to je li se na vašem web-mjestu doista nešto dogodilo i nisam gledao. Ovo je preventivna obavijest, a ne izvještaj o incidentu.

Što sam učinio, a što nisam

Radi potpune transparentnosti o provjeri iza moje e-poruke: pročitao sam samo dvije javne datoteke koje vaše web-mjesto ionako poslužuje svakom posjetitelju, konkretno javnu datoteku readme.txt dodatka i vašu naslovnicu. Nisam pristupio vašoj WordPress administraciji, bazi podataka ni bilo kojem privatnom dijelu web-mjesta.

Konkretno, nikada nisam poslao vaš registracijski obrazac niti mu ništa poslao. Ništa nije poslano, testirano ni iskorišteno. To je ovdje važnije nego na većini ovih stranica, jer je registracijski obrazac upravo ono čega se ovaj propust tiče, pa je „nisam ga dirao” cijela razlika između objave i upada.

Također namjerno ne objavljujem pojedinosti koje bi nekome pomogle iskoristiti ovaj propust. Gornji opis staje na razini koja je vlasniku web-mjesta potrebna, i ne povezujem nikakav kôd za dokaz koncepta.

Ovo je opažanje utemeljeno na verziji: vaše web-mjesto prijavljuje verziju stariju od 4.7.8. Web-mjesto u tom rasponu možda je već zaštićeno drugim sredstvima, primjerice vatrozidom za web-aplikacije ili naknadno prenesenim ispravkom. Ova obavijest nije tvrdnja da je vaše web-mjesto u trenutku moje provjere bilo iskoristivo.

Nemam webmastera / zapeo sam

Ako web-mjesto ne održavate vi, proslijedite ovu stranicu osobi koja to čini (vašem programeru, agenciji ili pružatelju hostinga). Gornje će korake brzo prepoznati.

Ako web-mjesto održavate sami i zapnete, rado ću vas besplatno usmjeriti u pravom smjeru. Javite se putem kontakata u nastavku.

Kontakt

Evan Harris, sigurnosni istraživač

Javljam se povodom ovakvih pitanja isključivo kako bih pomogao operaterima da osiguraju svoja web-mjesta. Ako ne želite da vas ponovno kontaktiram, samo mi recite i poštovat ću to.

Izvori

Službene objave i praćenje

Proizvođač / dodatak