Kibernetska varnost in napadi
KAJ STREŽNIK NAREDI, PREDEN POKAŽE SLIKO
Podpora slikovnemu formatu je tudi odločitev o dekoderju, ki bo obdeloval podatke uporabnikov.
Fotografijo naložimo v WordPress in dobimo predogled. Da ga strežnik pripravi, mora datoteko odpreti, prebrati in iz nje izdelati manjšo sliko. WordPress lahko pri tem uporabi urejevalnik, ki prek razširitve Imagick dostopa do ImageMagicka. Podpora posameznim formatom je odvisna tudi od knjižnic v tej programski sestavi. [1, 3]

Fortbridge je 5. oktobra 2026 objavil raziskavo, v kateri je s posebej izdelanimi datotekami HEIC dosegel izvajanje kode med obdelavo slik v WordPressu. Zapis je dopolnil 7. oktobra. [2] Napadalna veriga je povezala ranljivosti knjižnice libheif, za katere so bila opozorila in popravki objavljeni že avgusta in septembra. [4, 5]
Dva bajta v prostoru za enega
V preizkušenem okolju je ImageMagick slike HEIC predal knjižnici libheif. Dekodiranje je potekalo znotraj delovnega procesa PHP, zato je knjižnica delovala z njegovimi pravicami. [3] Uporabnik je imel dovoljenje za nalaganje slike. Napaka v programski opremi je omogočila, da je vsebina te slike posegla v pomnilnik procesa, ki jo je odprl. [4]
Napaka je bila v dekoderju za nestisnjene slike. V priloženem preizkusnem vzorcu je imela ena barvna komponenta šestnajstbitne vrednosti, druga osembitne. Knjižnica je zanju rezervirala ustrezno velika pomnilniška prostora, pri zapisovanju obeh pa je uporabila velikost vzorca prve komponente. V prostor, namenjen enobajtnim vrednostim, je tako zapisovala dvobajtne in prestopila njegovo mejo. Podatke, ki so prepisovali sosednji pomnilnik, je določal napadalec z vsebino datoteke. [4]
Podatki iz pomnilnika v predogledu
Za pripravo napada je Fortbridge uporabil še napake pri obdelavi slikovnih ravnin. [8] Navedene dimenzije slike se niso nujno ujemale s pomnilniškim prostorom, dodeljenim posamezni ravnini. Koda, ki je zaupala tem dimenzijam, je lahko brala prek njegove meje. Opozorilo za to skupino napak je bilo objavljeno 25. avgusta 2026 in kot popravljeno različico navaja libheif 1.23.2. [5] Napaka pri različnih bitnih globinah je bila odpravljena pozneje, v različici 1.23.3. [4]
V laboratorijskem preizkusu so se podatki iz pomnilnika pojavili med slikovnimi točkami predogledov JPEG, ki jih je vrnil WordPress. Raziskovalci so iz njih rekonstruirali pomnilniške naslove in napad prilagodili konkretni programski sestavi. Predogled je tako postal vir podatkov o procesu, v katerem je nastajal. Te informacije so raziskovalcem omogočile nadaljevanje napada; sam zapis slike v JPEG jih ni odstranil. [8]
Kaj dokazuje zrušitev in kaj izvedbo ukaza
Pred preizkusom je naslov dokazne datoteke vrnil HTTP 404. Po napadu je ločena spletna zahteva vrnila izpis ukaza id za račun www- data, pod katerim je deloval PHP-FPM. Višje sistemske pravice niso bile dokazane. Odgovor HTTP 503 ob odpovedi delovnega procesa sam po sebi ni zadostoval za potrditev izvedbe ukaza. [2]
Na Ubuntuju je ukaz uspel v šestih od osmih preizkusov, na Debianu v dvaindvajsetih od štiriindvajsetih. Omejitev je bila največ osem preverjenih položajev v pomnilniku na preizkus za Ubuntu in šestnajst za Debian. Vsak preizkus se je začel s ponovnim zagonom PHP-FPM, poskusi znotraj njega pa so si delili razporeditev naslovov knjižnic. Rezultata veljata za ti dve programski sestavi in navedeni omejitvi. Iz njiju ni mogoče izpeljati splošne uspešnosti napada na WordPress. [8]
Fortbridge priporoča povezovanje ponavljajočih se odpovedi procesov PHP-FPM in odgovorov 503 z dogodki nalaganja slik. [2] Za skrbnika to pomeni, da je ob nenavadnih odpovedih smiselno preveriti čas, uporabniški račun in datoteke, ki so bile takrat v obdelavi. Posamezna napaka pri pripravi predogleda še ne dokazuje napada. Objavljeni laboratorijski rezultati prav tako ne potrjujejo napadov na spletne strani v dejanski uporabi.
Kaj pove številka različice
Napako pri barvnih komponentah je bilo mogoče doseči le, če je bil libheif zgrajen z vključenim dekoderjem za nestisnjene slike. Njegovo vključitev določa nastavitev ob prevajanju knjižnice. V projektu libheif je bila napaka prvič odpravljena v različici 1.23.3. [4] Wordfence je 18. septembra 2026 objavil primerjavo paketov, preverjenih 5. septembra. Debian 13 in Alpine 3.22 sta takrat uporabljala libheif 1.19.8, vendar je Debianov paket vključil sporni dekoder, Alpineov pa ne. Poleg sestave paketa je treba preveriti tudi njegove varnostne popravke: distribucija jih lahko prenese v starejšo različico knjižnice. [3]
Pri presoji konkretnega spletišča je zato treba slediti celotni poti datoteke. WordPress mora izbrati urejevalnik, ta mora podpirati vhodni format, uporabljena knjižnica pa mora vsebovati prizadeti dekoder. Prisotnost paketa libheif na strežniku sama še ne pove, katera aplikacija ga uporablja ali katerim uporabnikom omogoča dostop do te obdelave. [1, 4]
Pregled lastne namestitve
V administraciji WordPressa je uporaben začetek pregled zdravja spletišča. Pod informacijami o obdelavi predstavnostnih datotek so navedeni aktivni urejevalnik, različici Imagicka in ImageMagicka ter pri uporabi Imagicka njegovi podprti formati in omejitve virov. Seznam formatov izhaja iz poizvedbe Imagick::queryFormats(). Izpis pomaga ugotoviti, katera programska oprema pripravlja slike, ne pokaže pa sam po sebi, ali libheif vsebuje ranljivi dekoder in ali je njegov paket že popravljen. [9]
Preveriti je treba tudi, kdo lahko sproži obdelavo. Fortbridge je uporabil prijavljen račun s pravico upload_files; anonimnega nalaganja ni preizkusil. [8] V privzeti namestitvi imajo to pravico vloge avtorja (Author), urednika in skrbnika. [7] Če datoteke sprejema še vtičnik ali druga aplikacija, je treba posebej ugotoviti, ali jih predaja isti knjižnici. Pri gostovanju je zato uporaben odgovor ponudnika o konkretnem paketu, njegovi sestavi in varnostnem popravku.
Posodobiti je treba uporabljeno sistemsko knjižnico. Wordfence priporoča varnostni paket operacijskega sistema oziroma ponudnika gostovanja in ponovni zagon prizadetih storitev. Pri vsebnikih sta potrebni ponovna gradnja iz posodobljene osnovne slike in nova namestitev. Proces lahko do ponovnega zagona še uporablja staro knjižnico, čeprav je nameščeni paket že posodobljen. [3]
Zaključek opravila mora zato vključevati preverjanje delujoče obdelave slik. Skrbnik potrebuje podatke o paketu v okolju aplikacije, izvedeni posodobitvi in ponovnem zagonu procesov, ki knjižnico uporabljajo. [2] Pri vsebniku je treba preveriti tudi, da je bila nameščena nova slika. [3] Na tej podlagi je mogoče ugotoviti, ali popravek že uporablja storitev, ki sprejema uporabniške datoteke.
Tudi pretvorba se začne z branjem
Pretvorba v dovoljeni format lahko odstrani del neželene vsebine, vendar mora dekoder najprej prebrati vhodno datoteko. Če je ranljiv, se napaka lahko sproži že med pretvorbo. OWASP ob ponovnem kodiranju slik zato priporoča posodobljene knjižnice, omejevanje formatov in porabe virov ter izolacijo obdelave. Opozarja tudi, da ponovni zapis slike ne zagotavlja odstranitve vse zlonamerne vsebine. [6]
Omejitev velikosti naložene datoteke ureja količino sprejetih podatkov. Obdelava ima še druge omejitve: ImageMagickova varnostna politika omogoča določanje porabe pomnilnika in diska, trajanja obdelave, števila slik v zaporedju ter dovoljenih bralnih in zapisovalnih poti. Z njo je mogoče omejiti tudi uporabo posameznih formatov oziroma modulov. [10] Takšna pravila pomagajo omejiti zahtevno ali nepotrebno obdelavo. Napaka, pri kateri se v napačno velik pomnilniški prostor zapisujejo dvobajtne vrednosti, pa še vedno potrebuje popravek v knjižnici.
Kjer HEIC ni potreben, je smiselno zavrniti takšne datoteke, preden pridejo do dekoderja. [3] Za storitve, ki jih potrebujejo, Fortbridge priporoča obdelavo v ločeni storitvi z omejenimi pravicami in omrežnim dostopom, brez dostopa do skrivnosti aplikacije. [2] Pri načrtovanju takšne ločitve je treba določiti, katere vhodne datoteke sme storitev prebrati in kam sme zapisati rezultat. Dostop do drugih podatkov in funkcij aplikacije naj izhaja iz dejanskih potreb obdelave. [6, 10]
Ob uvedbi HEIC je zato smiselno v podatke o vzdrževanju spletišča vključiti tudi paket dekoderja, način njegovega posodabljanja in pravice procesa, ki ga uporablja. Določiti je treba, kdo bo spremljal varnostna opozorila za ta paket in preveril namestitev popravkov. Ob menjavi gostovanja ali osnovne slike vsebnika je tak zapis uporaben tudi za pregled morebitnih sprememb v obdelavi slik.
EVIDENCE PROFILE
Dokazni profil članka
Profil pokaže vrsto dokazne podlage in omejitve osrednjega argumenta.
Viri
- 01PRIMARY DOCUMENTATIONWordPressWordPress Developer Resources.WP_Image_Editor_Imagick. Dokumentacija in izvorna koda urejevalnika slik. Dokumentacija.Odpri vir ↗
- 02ADVISORYWordPressAdrian Tiron, Fortbridge.WordPress libheif RCE. Objavljeno 5. oktobra 2026, posodobljeno 7. oktobra 2026. Napadalna veriga, dokazovanje izvedbe ukaza in omejitve raziskave. Raziskava.Odpri vir ↗
- 03ADVISORYWordfenceAlex Thomas, Wordfence.Wordfence Argus Discovers Critical Vulnerability in libheif, the Library That Opens iPhone Photos on Your Server. Objavljeno 18. septembra 2026; paketi preverjeni 5. septembra 2026. Objava.Odpri vir ↗
- 04ADVISORYstrukturag/libheif.Heap buffer overflow in unci mixed-interleave decoding with unequal chroma bit depths.strukturag/libheif.Heap buffer overflow in unci mixed-interleave decoding with unequal chroma bit depths. GHSA-x8r2-mggj-j6wr, 1. september 2026. Prizadete izvorne različice 1.18.0–1.23.2; prvi popravek v 1.23.3. Varnostno opozorilo.Odpri vir ↗
- 05ADVISORYstrukturag/libheif.Remote Code Execution: Out-of-bounds read and write in derived-item and pixel-plane handling.strukturag/libheif.Remote Code Execution: Out-of-bounds read and write in derived-item and pixel-plane handling. GHSA-2jg2-4ch7- h545, 25. avgust 2026. Ločena skupina napak; navedeni popravek 1.23.2. Varnostno opozorilo.Odpri vir ↗
- 06PRIMARY DOCUMENTATIONOWASPOWASP Cheat Sheet Series.File Upload Cheat Sheet. Preverjanje datotek, omejitve ponovnega kodiranja in pravice pri obdelavi. Priporočila.Odpri vir ↗
- 07PRIMARY DOCUMENTATIONWordPressWordPress Documentation.Roles and Capabilities. Privzete vloge in pravica upload_files. Dokumentacija.Odpri vir ↗
- 08ADVISORYWordPressFORTBRIDGE-UK.libheif-unci-wordpress-rce. Preverjeni programski sestavi, rezultati in metodologija preizkusov. Dopolnjuje objavo istih raziskovalcev in ni neodvisna ponovitev raziskave. Repozitorij.Odpri vir ↗
- 09PRIMARY DOCUMENTATIONWordPressWordPress Developer Resources. WP_Debug_Data::get_wp_media(). Izvorna koda prikaza podatkov o obdelavi predstavnostnih datotek, podprtih formatih in omejitvah virov. Dokumentacija.Odpri vir ↗
- 10PRIMARY DOCUMENTATIONImageMagick.Security Policy.ImageMagick.Security Policy. Omejevanje formatov, porabe virov in dovoljenih poti za obdelavo slik. Dokumentacija. 11. Povezave in navedbe preverjene 8. oktobra 2026. Pri pripravi članka napad ni bil neodvisno ponovljen in izpostavljenost posameznih spletnih strani ni bila preizkušena. Presoja skrbniškega postopka in sklep o uvedbi novih formatov sta uredniška izpeljava iz navedenih virov.Odpri vir ↗