Naujienos · · 5 min skaitymo
PrestaShop 9.2.1 ir 8.2.9: ką 18 saugumo pataisų reiškia jūsų parduotuvei
PrestaShop 9.2.1 ir 8.2.9 pataiso 18 saugumo spragų. Į kurią versiją pereiti, ką daryti, jei atnaujinti dar negalite, ir su kuo susidūrėme atnaujindami patys.
2026 m. lapkričio 9 d. PrestaShop išleido 9.2.1 ir 8.2.9. Abi versijos skirtos saugumui: kartu jos pataiso 18 spragų, o 15 iš jų PrestaShop vertina kaip didelio pavojingumo. Kelios leidžia paleisti kodą serveryje, o keliomis gali pasinaudoti net žmogus, neturintis parduotuvėje jokios paskyros.
Trumpai: atnaujinkite. 9.x parduotuvė pereina į 9.2.1, 8.x – į 8.2.9. 1.7 parduotuvė pataisos negauna. Jei šią savaitę atnaujinti negalite, pirmiausia patikrinkite, ar serveryje nebeliko install katalogo. Vien tai uždaro dvi pavojingiausias spragas.
Kas pataisyta: trys grupės
Visos žemiau pateiktos detalės paimtos iš PrestaShop saugumo pranešimų GitHub. Kiekviename jų paveiktos versijos nurodytos nuo 8.0 iki 8.2.8 ir nuo 9.0 iki 9.2.0. Išimtis – trys spragos, kurios yra tik PrestaShop 9.
Bet kas internete, paskyros nereikia
| Spraga | Kam aktualu |
|---|---|
| Kodo paleidimas per suklastotą diegimo programos slapuką | Parduotuvėms, kurių serveryje vis dar yra install katalogas |
| Diegimo programą galima paleisti dar kartą veikiančioje parduotuvėje: perskaityti duomenų bazės slaptažodį, perrašyti konfigūraciją arba perdiegti su savo administratoriaus paskyra | Tas pats: parduotuvėms su likusiu install katalogu |
| Iš vieno krepšelio, kurio suma lygi nuliui, galima sukurti kelis užsakymus, patvirtinimą išsiunčiant tuo pačiu metu | Parduotuvėms, kurios priima nemokamus užsakymus, pvz., su 100 % nuolaidos kuponu |
| Vienkartinis arba ribotas kuponas panaudojamas kelis kartus, apmokant lygiagrečiai | Parduotuvėms, kurių kuponai turi panaudojimų ribą |
| Kito pirkėjo įkeltą failą prekei personalizuoti (dažnai nuotrauką ar dokumentą) galima atsisiųsti žinant užsakymo numerį | Parduotuvėms, kuriose prekes galima personalizuoti įkeliant failą |
| Slaptažodžio atkūrimo raktą buvo galima apskaičiuoti | Reikia pirkėjo ID ir slaptojo rakto, tad vien šia spraga pasinaudoti sunku |
Pavojingiausios yra dvi diegimo programos spragos. Nuo 9.2.0 PrestaShop po sėkmingo įdiegimo install katalogą ištrina pati. PrestaShop 8 jį reikėjo ištrinti rankomis, tad pranešime minimos 8.x parduotuvės, kuriose to niekas nepadarė, ir 9.x parduotuvės, kuriose automatinis trynimas nepavyko. Atidarykite naršyklėje https://jusu-parduotuve/install/. Jei matote ką nors kita nei puslapį „nerasta“, ištrinkite katalogą dar šiandien.
API raktai ir integracijos
| Spraga | Versijos |
|---|---|
| Webservice raktas, apribotas viena kelių parduotuvių (multistore) sistemos parduotuve, galėjo skaityti ir keisti visų parduotuvių pirkėjus, iki pat jų paskyrų perėmimo | 8 ir 9 |
| Tas pats raktas galėjo pasiekti ir visų parduotuvių duomenis, paprašęs „visų parduotuvių“ ar parduotuvių grupės | 8 ir 9 |
| Webservice raktas, galintis rašyti priedus, galėjo nukreipti failą į parduotuvės konfigūraciją, kurią tada galėjo atsisiųsti bet kas | 8 ir 9 |
| Admin API klientas, galintis tvarkyti API klientus, galėjo susiteikti bet kokią teisę, iki pat modulio įdiegimo | Tik 9 |
| Išjungus Admin API klientą, jo raktai toliau veikė | Tik 9 |
Šioms spragoms reikia rakto ar kliento, kurį kas nors jau turi: senos integracijos, buvusios agentūros ar nutekėjusio failo. Parduotuvei, kuri nenaudoja nei Webservice, nei Admin API, šios grupės spragos neaktualios.
Administravimo darbuotojai su ribotomis teisėmis
Septynios spragos leidžia darbuotojui padaryti daugiau, nei leidžia jo profilis, dažniausiai paleisti kodą serveryje:
- temos importas iš URL;
- temos ar modulio archyvas, paruoštas rašyti failus už savo katalogo ribų;
- modulio parametras administravimo vertimų puslapyje;
- el. laiškų vertimų išsaugojimas;
- derinimo (debug) režimo slapuko laukai puslapyje „Našumas“ (tik 9);
- SVG failai, įkelti per failų tvarkyklę ar kaip logotipas: jiems atidarius, administratoriaus naršyklėje paleidžiamas scenarijus;
- darbuotojas, galintis tik kurti užsakymus, galėjo keisti esamus.
Tai svarbiausia parduotuvėms, kurių administravime paskyras turi agentūros, laisvai samdomi specialistai ar keli darbuotojai. Parduotuvei, kurią tvarko vienas žmogus ir jis vienintelis administratorius, ši grupė kur kas mažiau aktuali.
Į kurią versiją pereiti
| Jūsų parduotuvė | Pereikite į | Pastabos |
|---|---|---|
| 9.0.x, 9.1.x, 9.2.0 | 9.2.1 | 9.1.6 ar 9.0.x pataisos nėra. Net iš 9.1 kelias – į 9.2.1. |
| Nuo 8.0.x iki 8.2.8 | 8.2.9 | Oficialiai vis dar su PHP iki 8.1. |
| 1.7 ar senesnė | Atnaujinimas | 1.7 nebegauna jokių pataisų. Žr. PrestaShop 1.7 nebepalaikoma ir Atnaujinimas į PrestaShop 9. |
Daugumai spragų PrestaShop pirmąja paveikta versija nurodo 8.0, nes 1.7 nebėra tikrinama. Diegimo programos pakartotinio paleidimo spraga nurodyta visoms versijoms iki 8.2.9. Jei 1.7 parduotuvėje vis dar yra install katalogas, ištrinkite jį dabar, nesvarbu, kada planuojate atnaujinimą.
Nežinote, kokią PrestaShop versiją naudoja parduotuvė? Versijos patikra per kelias sekundes tai parodo iš išorės.
Jei šiandien atnaujinti negalite
- Ištrinkite
installkatalogą ir patikrinkite, ar/install/rodo „nerasta“. Tai uždaro dvi spragas, leidžiančias paleisti kodą be prisijungimo. - Išjunkite Webservice (Išplėstiniai parametrai > Webservice), jei niekas jo nenaudoja. Jei naudoja – ištrinkite nepažįstamus raktus ir kiekvienam palikite tik tas teises, kurių jam reikia.
- PrestaShop 9 ištrinkite nenaudojamus Admin API klientus. Kol neatnaujinote, jų išjungti neužtenka.
- Peržiūrėkite darbuotojų profilius. Importuoti temas ar modulius, redaguoti vertimus, keisti puslapį „Našumas“ ar įkelti failus turėtų galėti tik tie, kuriems patikėtumėte ir serverio prieigą.
- Stebėkite nemokamus užsakymus ir ribotus kuponus. Dviem spragoms, kai užsakymai pateikiami tuo pačiu metu, laikino sprendimo nėra. Kol neatnaujinote, tikrinkite naujus užsakymus: ar nėra dublikatų ir ar kuponai nepanaudoti dažniau nei leidžiama.
Su kuo susidūrėme atnaujindami savo parduotuvę
Savo veikiančią PrestaShop 9 demo parduotuvę atnaujinome iš 9.1.5 į 9.2.1 kitą dieną po išleidimo, su oficialiu Update Assistant (7.6.6 versija) iš komandinės eilutės. Pats atnaujinimas pakeitė apie 37 000 failų ir užtruko maždaug ketvirtį valandos. Prieš pradedant verta žinoti tris dalykus:
- Prieš spausdami, peržiūrėkite modulių sąrašą. Update Assistant kiekvieno modulio suderinamumą skaito iš PrestaShop Addons. Modulis, kurio kortelėje vis dar parašyta „iki 9.1.5“, pažymimas kaip nesuderinamas su 9.2.1, net jei puikiai veikia. Jei įjungta nesuderinamų modulių išdiegimo parinktis, jis išdiegiamas, o kartu dingsta jo nustatymai ir duomenys. Mes parinktį išjungėme, ir modulis 9.2.1 versijoje veikia toliau.
- Bendrame (shared) hostinge dažnai išjungtos
exec()irsystem()funkcijos. Iš komandinės eilutės Update Assistant jomis sujungia žingsnius ir paruošia podėlį (cache). Tokiame serveryje duomenų bazės žingsnis sustojo su klaidaCall to undefined function ... exec(), kai failai jau buvo pakeisti. Kol žingsnį užbaigėme rankomis, parduotuvė rodė klaidą 500. Tokiame hostinge atnaujinkite per administravimą arba prieš pradėdami pasiteiraukite hostingo. - Pakeisti branduolio failai perrašomi. Turime trumpą scenarijų, kuris po kiekvieno atnaujinimo grąžina mūsų kelis pakeitimus. Be tokio sąrašo prieš kelerius metus padarytos smulkios pataisos tyliai dingsta.
Pirmiausia padarykite visų failų ir duomenų bazės atsarginę kopiją ir laikykite ją, kol patikrinsite apmokėjimą. Jei atnaujinimas ką nors sugadins, dažniausias priežastis aprašėme straipsnyje PrestaShop 9 atnaujinimo klaidos.
Patikrinkite parduotuvę per kelias sekundes
Mūsų nemokama PrestaShop saugumo patikra jau žino šiuos 18 pranešimų. Ji perskaito PrestaShop versiją, kur parduotuvė ją rodo, išvardija modulius su paskelbtomis spragomis ir pasako, ką atnaujinti.
Arba patikėkite tai mums: pirma atnaujiname parduotuvės kopiją, patikriname krepšelį, mokėjimą ir el. laiškus, o perjungiame tik tada, kai viskas veikia. Kaina fiksuota ir sutariama prieš darbą. Sužinokite kainą.