Otkrivena ranjivost u ACF WordPress pluginu
Advanced Custom Fields (ACF) WordPress plugin je objavio sigurnosnu zakrpu (ACF 6.2.5) koja treba da otkloni uočenu ranjivost u ovom popularnom pluginu koji je trenutno instaliran na oko 2 miliona web sajtova. Iako nije do kraja jasno kakva vrsta ranjivosti je u pitanju ni koji stepen štete ona može da prouzrokuje, sigurno je da je za izvođenje napada neophodno da napadač ima contributor ili neku višu rolu, što u određenoj meri otežava napadaču da potencijalno izvrši napad.
ACF 6.2.5 može da izazove rušenje sajta
Napomena uz izdanje sadrži upozorenje da izmene koje dolaze sa ovim patch-om potencijalno mogu da dovedu do pada sajta i ujedno daje instrukcije kako da se u tom slučaju reši problem.
Verzija 6.2.5 dolazi sa značajnom izmenom u načinu na koji ACF shortcode procesuira i izbacije potencijalno nebezbedan HTML sadržaj. Drugim rečima, na taj način će HTML kod sada biti mnogo sigurniji.
Ipak, iako ova izmena čini vaš sajt sigurnijim, može da dovede do toga da neki sajtovi ne mogu pravilno da koriste shortcode za renderovanje složenih HTML elemenata poput skripti ili iframe-ova.
Tako će tagovi koji potencijalno mogu biti zloupotrebljeni, kao što su <script>
i <iframe>
biti automatski uklonjeni, iako je i dalje moguće uraditi podešavanja u skladu sa specifičnim potrebama konkretnog sajta.
Ovo sigurnosno ažuriranje je specifično po tome što u najvećem broju slučajeva istraživači koji se bave bezbednošću aplikacija obaveste developere kada primete neki sigurnosni problem u aplikaciji, a developeri onda bez previše buke izdaju zakrpu koja reši taj problem.
Tek nekoliko nedelja kasnije istraživači zvanično objave da postoji sigurnosni problem sa konkretnom aplikacijom, tako da korisnici imaju dovoljno vremena da ažuriraju svoj plugin pre nego što ranjivost postane poznata javnosti.
Kod ove ranjivosti otkrivene u ACF pluginu to nije slučaj, jer postoji potencijalna opasnost od obaranja sajta nakon ažuriranja. Iz tog razloga je ACF odmah obznanio problem i ujedno upozorio na potencijalne opasnosti koje ovaj fix može imati po neke sajtove.
Sledeći fix najavljen za februar 2024.
Imajući u vidu složenost rešavanja ovog problema, ACF je za februar 2024. najavio još jedan fix (verzija 6.2.7). To će korisnicima plugina dati dovoljno vremena da se pripreme i preduprede eventualne probleme sa obaranjem sajta.
Verzija 6.2.7 će proširiti ove sigurnosne mere na dodatne ACF funkcije, uključujući the_field()
i the_sub_field()
. Administratori sajtova su upozoreni na potencijalne izmene u HTML output-u i posavetovani da dobro provere kompatibilnosti svojih sajtova sa ovim izmenama.
Takođe, postoji i način da se ručno dodaju izmene koje će doći sa verzijom 6.2.7. ACF objašnjava da ukoliko trenutno ne čuvate nebezbedni HTML kod, ili ga čuvate, ali već zaobilazite podatke, onda je moguće da izaberete opciju skidanja nebezbednog HTML-a i triger-ovanja error report-a u WordPress admin panelu, pomoću sledećeg filtera:
acf/the_field/escape_html_optin
Opis ranjivosti
Potreba za ovim ažuriranjem proizlazi iz otkrivene ranjivosti koja omogućava korisnicima sa contributor rolama, obično ograničenim od postavljanja nefiltriranog HTML-a, da ubace zlonamerni kod. Ova situacija zaobilazi standardne protokole sanitizacije ACF-a, stvarajući na taj način potencijalni sigurnosni rizik.
Kako bi preventivno delovao na ovu ranjivost, ACF 6.2.5 će detektovati i uklanjati nebezbedan HTML iz shortcode output-a. Pogođena polja će trigerovati poruke o greškama u WordPress admin panelu, pomažući tako vlasnicima sajtova da identifikuju i reše ove greške.
Najavljene izmene u the_field()
funkciji
the_field()
funkcija će proći bezbednosnu reviziju u verziji 6.2.5, dok će se the_sub_field()
funkcija izmeniti u verziji 6.2.7. Ove funkcije će zatim podrazumevano uključiti i HTML bezbednosne mere, sprečavajući da na izlazu postoji potencijalno štetan sadržaj.
U vezi sa najavama izmena u verziji 6.2.7, verzija 6.2.5 će prikazati upozorenje ukoliko postoji opasnost da vaš sajt bude pogođen izmenama koje su najavljene u verziji 6.2.7. Na taj način vlasnici sajtova će imati vremena da se pripreme.
Vodič za developere za bezbedno korišćenje ACF plugina
Developerima se savetuje da u situacijama koje zahtevaju nefiltriran HTML izlaz, kao što su oznake skripti, koriste echo get_field()
. Za druge slučajeve, preporučuje se primena odgovarajućih funkcija poput wp_kses_post
, sigurnosne funkcije koja sanitizuje HTML izlaz.
Ažuriranje ACF-a takođe uvodi modifikacije u obradi tipova polja, posebno za polja koja tradicionalno prikazuju HTML, poput oEmbed i WYSIWYG.
Svi korisnici ACF plugina se pozivaju da odmah ažuriraju na verziju 6.2.5 kako bi ublažili identifikovane sigurnosne rizike. Takođe, onima koji ne koriste ACF Shortcode, a imaju ga instaliranog na sajtu, savetuje se da ga potpuno onemoguće.
Nenad Mihajlović