Na kratko
OpenCart je napisan v PHP-ju, zato kritična ranljivost PHP2Shell zadeva tudi vsako OpenCart spletno trgovino. Dve napaki v samem PHP-ju (CVE-2026-109618 in CVE-2026-109619) napadalcu omogočita, da brez prijave zažene svojo kodo na strežniku. Ameriška agencija CISA je 26. oktobra 2026 potrdila, da se napaki že izkoriščata v napadih. Posodobitev OpenCarta ali modulov tega ne odpravi: popraviti je treba PHP na strežniku. Največ težav imajo trgovine na PHP 7.4, 8.0 ali 8.1, ki jih ni mogoče varno »samo preklopiti« na novejši PHP brez prilagoditve jedra, predloge in modulov.
PHP2Shell: kritična ranljivost PHP, ki ogroža OpenCart trgovine
OpenCart je odprtokodna platforma za spletne trgovine, napisana v programskem jeziku PHP. Vsaka zahteva obiskovalca, od ogleda izdelka do zaključka nakupa, gre skozi PHP na strežniku. 21. oktobra 2026 je projekt PHP izdal nujne varnostne popravke za dve kritični ranljivosti, ki so ju raziskovalci poimenovali PHP2Shell. SI-CERT je o njiju objavil opozorilo SI-CERT 2026-07.
| Kaj je prizadeto | Sam PHP na strežniku (ne OpenCart, predloga ali modul), praktično vse različice, ki obdelujejo spletne zahteve |
|---|---|
| Oznake | CVE-2026-109618 in CVE-2026-109619 |
| Resnost | Kritična, CVSS 9,2 (CVSS v4.0) |
| Popravljene različice | PHP 8.5.12, 8.4.27, 8.3.36 in 8.2.35 |
| Stanje napadov | CISA je 26. 10. 2026 obe napaki uvrstila na seznam aktivno izkoriščanih ranljivosti (KEV) |
| Uradni popravek za PHP 8.1 in starejše | Ni na voljo, ker te različice nimajo več podpore |
Kaj lahko napadalec stori spletni trgovini
- Zažene svojo kodo na strežniku brez prijave in brez ranljivega modula. Na strežnik lahko podtakne skripto (t. i. web shell), ki mu omogoča trajen dostop do trgovine.
- Prebere del pomnilnika strežnika. Raziskovalci podjetja Wiz opozarjajo, da so tam lahko gesla, žetoni za prijavo, ključi API in certifikati. Pri spletni trgovini to pomeni tudi ključe plačilnih sistemov in dostope do povezanih storitev (dostava, računovodstvo, ERP).
- Dostopa do podatkov kupcev in naročil v bazi: imena, naslovi, e-poštni naslovi, telefonske številke in zgodovina nakupov. Tak vdor je kršitev varstva osebnih podatkov, ki jo je treba obravnavati po GDPR.
- Spremeni trgovino: podtakne lažen obrazec za plačilo s kartico, preusmeri obiskovalce na tuje strani ali v trgovino vstavi neželene vsebine, zaradi katerih jo lahko Google označi kot nevarno.
Zakaj posodobitev OpenCarta tokrat ne zadostuje
Napaka je v PHP-ju, ki teče pod trgovino, zato je noben modul, posodobitev OpenCarta ali nastavitev v administraciji ne more zapreti. Do 23. oktobra 2026 projekt OpenCart o PHP2Shell ni objavil izjave, zadnji izdaji 3.0.5.1 in 4.1.0.4 pa sta izšli že 11. avgusta 2026, pred popravkom PHP. Rešitev je posodobljen PHP na strežniku in ponoven zagon PHP storitve, za kar je pri deljenem in upravljanem gostovanju običajno zadolžen ponudnik gostovanja.
Kje preverim, katero različico PHP uporablja trgovina
- V nadzorni plošči gostovanja (npr. cPanel: Select PHP Version ali MultiPHP Manager, Plesk: PHP Settings domene).
- Pri ponudniku gostovanja: vprašajte, katera različica PHP poganja vašo domeno in ali vključuje popravek za PHP2Shell. Distribucije in ponudniki popravek včasih prenesejo v starejšo različico, ne da bi spremenili številko.
- Če trgovino vzdržujemo mi, različico preverimo in vam jo sporočimo.
Največja težava: OpenCart trgovine na starem PHP
Za PHP2Shell obstajajo uradni popravki le za PHP 8.2, 8.3, 8.4 in 8.5. Mnogo slovenskih OpenCart trgovin pa še vedno deluje na PHP 7.4, 8.0 ali 8.1, ker so bile izdelane pred leti in od takrat niso bile tehnično posodobljene. Za te različice projekt PHP ne izdaja več nobenih varnostnih popravkov, za PHP 8.2 pa se podpora izteče 31. decembra 2026.
| Različica PHP | Varnostni popravki | Stanje |
|---|---|---|
| PHP 7.4 | do novembra 2022 | brez podpore |
| PHP 8.0 | do novembra 2023 | brez podpore |
| PHP 8.1 | do 31. 12. 2025 | brez podpore |
| PHP 8.2 | do 31. 12. 2026 | podpora se izteka |
| PHP 8.3 | do 31. 12. 2027 | podprto |
| PHP 8.4 | do 31. 12. 2028 | podprto, priporočamo |
| PHP 8.5 | do 31. 12. 2029 | podprto, najnovejše |
Pri OpenCartu preklop na novejši PHP v nadzorni plošči gostovanja običajno ni mogoč brez predhodne prilagoditve. Starejše različice samega OpenCarta, grafične predloge (npr. Journal) in zunanji moduli (plačilni sistemi, dostavne službe, povezave z računovodstvom, primerjalniki cen) pogosto niso združljivi z novejšim PHP-jem. Posledice so prazna stran, napaka 500, nedelujoča košarica ali blagajna, ali pa napake, ki se pokažejo šele ob plačilu ali izdaji računa.
Zato samo čakanje ni varno: veliko ponudnikov gostovanja nepodprte različice PHP sčasoma ukine in trgovine prisilno prestavi na novejši PHP. Če trgovina na to ni pripravljena, se lahko zgodi nenaden izpad prodaje.
Katera različica OpenCarta podpira kateri PHP
| Različica OpenCart | Podprt PHP | Opomba |
|---|---|---|
| 2.x in 3.0 do 3.0.3.8 | PHP 5.x in 7.x | ni združljiva s PHP 8, potrebna je nadgradnja |
| 3.0.3.9 do 3.0.4.1 | PHP 7.4 do 8.3 | brez podpore za PHP 8.4 |
| 3.0.5.0 (dec. 2025) | PHP 8.1 do 8.4 | polna podpora za PHP 8.4 |
| 3.0.5.1 (avg. 2026) | PHP 8.1 ali novejši | zadnja izdaja veje 3, podpora za PHP 8.5 |
| 4.1.0.4 (avg. 2026) | PHP 8.1 ali novejši | zadnja izdaja veje 4, podpora za PHP 8.5 |
Večina modulov na tržnici OpenCart je še vedno napisana za vejo 3.0, zato je za večino obstoječih trgovin najvarnejša pot nadgradnja na OpenCart 3.0.5.1 skupaj s predlogo in moduli. Samodejne nadgradnje znotraj veje 3 ni, zato jo je treba izvesti ročno, na testni kopiji trgovine. Prehod na OpenCart 4 je smiseln predvsem ob prenovi trgovine.
Druge ranljivosti v OpenCartu in modulih v letu 2026
PHP2Shell ni edina grožnja. V letu 2026 je bilo objavljenih več ranljivosti v samem OpenCartu in v njegovih modulih. Za OpenCart trgovine to pomeni, da je redno vzdrževanje jedra in modulov enako pomembno kot posodobljen PHP.
OpenCart 4.1.0.3 in 4.1.0.4 – XSS v uporabniškem računu
- Oznaki: CVE-2026-84437 in CVE-2026-84438, srednja resnost, objavljeni 2. 9. 2026.
- Kaj se lahko zgodi: prek polj za naslov in ime v računu kupca je mogoče vstaviti zlonamerno kodo JavaScript (cross-site scripting). Podrobnosti so javno objavljene, razvijalci OpenCarta se na prijavo niso odzvali.
- Priporočilo: popravka v uradni izdaji še ni. Trgovine na OpenCart 4.1 naj imajo nameščen požarni zid (WAF) in pregledane prilagoditve predlog.
OpenCart do 4.1.0.4 – naročila brez plačila z nagradnimi točkami
- Oznaka: CVE-2026-119558, nizka resnost, objavljena 30. 10. 2026.
- Kaj se lahko zgodi: prijavljen kupec lahko z zaporedjem korakov pri nagradnih točkah in brezplačnem zaključku nakupa odda naročilo po polni ceni, ne da bi ga plačal.
- Priporočilo: če uporabljate nagradne točke, preverite naročila s statusom brezplačnega zaključka in jih ne pošiljajte brez preverjenega plačila.
OpenCart 4.0.2.3 – izvajanje kode prek urejevalnika predlog
- Oznaka: CVE-2026-3714, srednja resnost, objavljena marca 2026. Gre za nepopoln popravek starejše napake CVE-2024-36694.
- Kaj se lahko zgodi: uporabnik z dostopom do administracije lahko prek urejevalnika predlog zažene svojo kodo. Nevarno je predvsem, če so gesla administratorjev šibka ali že ukradena.
- Priporočilo: nadgradnja na zadnjo izdajo veje 4.1, močna gesla in omejen dostop do administracije.
Plačilni moduli – primer kritične napake (CVSS 9,8)
- Oznaka: CVE-2026-85531 v modulu Virtual POS ponudnika Sipay za OpenCart, objavljena oktobra 2026.
- Kaj se lahko zgodi: modul ne preverja pravilno podpisa sporočil o plačilu, zato lahko napadalec brez prijave ponaredi potrditev plačila.
- Zakaj je pomembno za vas: modul se v Sloveniji ne uporablja pogosto, primer pa kaže, da so plačilni moduli najobčutljivejši del trgovine. Stari plačilni moduli, ki niso bili posodobljeni za novejši PHP, so pogosto tudi varnostno zastareli.
Kaj naj naredi lastnik OpenCart trgovine: kontrolni seznam
- Preverite različico PHP pri gostovanju. Če ni med popravljenimi (8.5.12, 8.4.27, 8.3.36, 8.2.35) ali če je 8.1 ali starejša, se takoj obrnite na ponudnika gostovanja ali na nas.
- Zahtevajte pisno potrditev, da je popravljen PHP nameščen in da so bile PHP storitve ponovno zagnane.
- Preverite različico OpenCarta, predloge in modulov. Če je OpenCart starejši od 3.0.3.9, trgovina na PHP 8 brez nadgradnje ne bo delovala.
- Ne preklapljajte PHP-ja »na slepo«. Nadgradnjo najprej izvedite in preizkusite na testni kopiji: košarico, blagajno, vse načine plačila in dostave ter izdajo računov.
- Preglejte znake vdora od 17. oktobra 2026 naprej: neznani administratorji, neznane datoteke PHP v mapah
imagealisystem/storage, spremembe v predlogah blagajne, nenavadne preusmeritve. - Zamenjajte gesla in ključe (administracija, FTP/SSH, baza, ključi plačilnih sistemov), če vdora ni mogoče izključiti.
- Naredite varnostno kopijo datotek in baze ter preverite, da jo znate obnoviti.
Več navodil za upravljanje trgovine najdete v rubriki podpora za OpenCart. Lastniki WordPress strani pa si lahko preberejo članek PHP2Shell: kritična ranljivost PHP ogroža WordPress strani.
Brezplačen in neobvezujoč pregled
Je vaša OpenCart trgovina pripravljena na PHP 8.3 ali 8.4?
OpenCart trgovine razvijamo in vzdržujemo že več kot 15 let. Pregledamo vašo trgovino in pripravimo jasen načrt prehoda z oceno dela in stroškov, preden se odločite za karkoli.
- Jedro: različica OpenCarta in pot nadgradnje
- Moduli in predloga: združljivost s PHP 8.3+
- Strežnik: različica PHP, popravek PHP2Shell, pripravljenost gostovanja
- Ocena: obseg dela, časovnica in strošek
Viri
- SI-CERT 2026-07: Kritične ranljivosti v PHP (PHP2Shell)
- PHP.net: objava varnostnih popravkov
- PHP.net: podprte različice PHP
- The Hacker News: CISA potrdi aktivno izkoriščanje PHP2Shell
- Wiz Research: PHP2Shell
- PHP2Shell and OpenCart: What Store Owners Need to Do
- OpenCart 3.0.5.1 in 4.1.0.4 s podporo za PHP 8.5
- PHP 8.5 in OpenCart: združljivost različic
- OpenCart: izdaje na GitHubu
- Zapisi CVE: CVE-2026-84437, CVE-2026-84438, CVE-2026-119558, CVE-2026-3714, CVE-2026-85531