Magento wydało nową łatkę bezpieczeństwa dla M1 oraz aktualizacje dla M1 i M2.
Te wydania zawierają krytyczne poprawki bezpieczeństwa. „Zdecydowanie zalecamy, aby wszyscy kupcy dokonali aktualizacji jak najszybciej”.
Na jakie problemy należy zwrócić uwagę podczas aktualizacji lub stosowania tej poprawki?
SUPEE-11086, Magento Commerce 1.14.4.1 i Open Source 1.9.4.1 zawierają wiele ulepszeń bezpieczeństwa, które pomagają zamknąć zdalne wykonywanie kodu (RCE), cross-site scripting (XSS), fałszowanie żądań między witrynami (CSRF) i inne podatności.
Aktualizacja zabezpieczeń Magento 2.3.1, 2.2.8 i 2.1.17
Te wersje zawierają wiele aktualizacji funkcjonalnych i bezpieczeństwa. Ryzyko: krytyczne dla Magento Commerce i Magento Open Source przed 2.1.17, 2.2.8 i 2.3.1.
Odpowiedzi:
Największy znaleziony problem:
Mage::log()
działa niepoprawnie. Jeśli wywołasz tę funkcję z niestandardowym plikiem dziennika (a on jeszcze nie istnieje), dziennik nie zostanie zapisany do pliku z powodu dodatkowej weryfikacji, dodanej w SUPEE-11086.źródło
Mage::log()
Mage::log()
metody.Ważne: nazwa poprawki obejmuje najwyższą wersję, której dotyczy poprawka. Tak więc łatka dla wersji 1.9.3.10 miałaby zastosowanie do wersji 1.9.3.10, 1.9.3.9, .... aż do innej poprawki. Postaramy się poprawić nazewnictwo w następnej wersji. Możesz także użyć https://github.com/steverobbins/magedownload-cli, ponieważ powinien on poprawnie wyświetlać metadane wersji w interfejsie API.
źródło
Podobnie jak inne, miałem pliki dziennika całkowicie przestały zapisywać dane.
Źródło błędu - pliki dziennika nie zapisują danych
W
app/Mage.php
zrobili tę zmianę:która szuka konfiguracji zatwierdzonej oddzielonych przecinkami listy zatwierdzonych rozszerzeń plików. NIE dodali jednak tej listy do konfiguracji - nawet nie ma opcji w Administratorze Maga, abyśmy mogli skonfigurować ją samodzielnie.
Rozwiązanie problemu - pliki dziennika nie zapisują danych
Aby rozwiązać ten problem, po prostu wprowadź dane do bazy danych w
core_config_data
tabeli.INSERT INTO core_config_data VALUES ( NULL, 'default', 0, 'dev/log/allowedFileExtensions', 'log,txt,html,csv' );
Wyczyść także pamięć podręczną obiektów i powinieneś ponownie zobaczyć zapis danych do plików dziennika.
ls -lrt var/log/ | tail
Dla odniesienia ten problem dotyczy EE 1.14.2.0 ze wszystkimi zastosowanymi poprawkami zabezpieczeń.
Otworzyłem zgłoszenie do pomocy technicznej Magento w tej sprawie, ale nie otrzymałem jeszcze odpowiedzi od technika. Jestem w kolejce.
To, co naprawdę dezorientuje mnie w tym błędzie, to fakt, że Magento ma już metodę sprawdzania poprawności rozszerzeń plików dziennika, które dodały za pośrednictwem SUPEE-10415 pod koniec 2017 roku.
app/code/core/Mage/Log/Helper/Data.php
Dlaczego nie wykorzystali tej logiki zamiast próby niepełnego ponownego wynalezienia koła z bali?
źródło
Mage::log()
nie zapisuje niczego do plików dziennika, jeśli początkowo nie istnieją. Wynika to zisValid
funkcjiZend_Validate_File_Extension
zgłaszania błędu nie znalezionego podczas wywoływaniaZend_Loader::isReadable($value)
. Tymczasowo naprawiłem to, przechodzącisValid
do try / catch po utworzeniu pliku dziennika, a następnie usuwając go, jeśli sprawdzanie poprawności się nie powiedzie:Jest to zdecydowanie tymczasowe rozwiązanie, dopóki nie będziemy mieli czegoś bardziej solidnego
źródło
Możliwy problem z łataniem 1.9.3.10
W patchu mamy:
jednak patrząc na kod z 1.9.3.10 (przez maga LTS) nie widzę tego kodu:
https://github.com/OpenMage/magento-lts/blob/1.9.3.x/app/code/core/Mage/Adminhtml/Block/Customer/Group/Edit.php
ALE istnieje dla wersji 1.9.4
https://github.com/OpenMage/magento-lts/blob/1.9.4.x/app/code/core/Mage/Adminhtml/Block/Customer/Group/Edit.php
Możliwym powodem jest brakująca łatka, która nie była wcześniej stosowana.
źródło
Próbuję zainstalować łatkę na Magento 1.9.0.1 przy użyciu PATCH_SUPEE-11086_CE_1.9.1.0_v1-2019-03-26-03-03-13.sh Wystąpił ten błąd
Naprawiłem to, usuwając następujący kod z „app / etc / config.xml”, a następnie ponownie uruchamiając łatkę
źródło
Jestem również trochę zdezorientowany co do nazewnictwa łat M1.
Dla starszych plastrów nazwali je lubi
SUPEE-10975 for CE 1.9.3.4-1.9.3.10
alboSUPEE-10888 for CE 1.9.2.0-1.9.2.4 (0.07 MB)
ale teraz to zajęcie tylko jedną wersjęPATCH_SUPEE-11086_CE_1.9.3.10_v1.sh
.Czy bieżąca łatka dotyczy wszystkich wydań wersji mniejszej, czy tylko ostatniej?
Zrobiłem test w sklepie 1.9.3.1 i wszystko przeszło, ale nie jestem pewien, czy jest to poprawne w przypadku innych wydań?
źródło
Rejestrowanie przerw w Magento 1.9. Aby naprawić logowanie w łatce SUPEE-11086:
W app / Mage.php:
Zasób: https://gist.github.com/piotrekkaminski/0596cae2d25bf467edbd3d3f03ab9f8f
Mam nadzieję, że to pomoże!
źródło
Wszystkie nowe pliki PHP w łatce dla M1 mają nieprzetworzone zmienne szablonów
Nie jest to problem, ale wygląda na niedokładny. Tak samo czułem się po SUPEE-10975.
źródło
Zauważyłem problem z tym, że pliki dziennika nie są już tworzone i są zapisywane tylko wtedy, gdy plik dziennika już istnieje. Wygląda na to, że jest to spowodowane linią:
z app / Mage.php. Naprawiłem to za pomocą starej logiki. Więc zamień powyższy wiersz na następujący:
źródło
W aktualizacji 10975 wystąpił błąd w tym momencie. Brakowało instrukcji zwrotu. Być może naprawiłeś ten błąd po zastosowaniu łatki 10975 lub zignorowałeś zmianę. Błąd został naprawiony w 11086. Jeśli ten wiersz kodu został już przez ciebie dostosowany / zignorowany, spowoduje to błąd, który opisałeś podczas stosowania nowej łatki. Jeśli sam naprawiłeś już błąd, po prostu usuń blok z pliku łatki i ponownie uruchom łatkę.
źródło
Korzystanie z SUPEE-11086 | CE_1.9.1.0, jak sugeruje Ryan Hoerr powyżej.
Stosowanie SUPEE-11086 | CE_1.9.1.0 | v1 | 3f120e6a795eed55267bd2b9164b3984913ddfc9 | Pt 22 marca 18:40:11 2019 +0000 | 4f3f369e723fe31212cb5be9adda113f891d7f62..HEAD
Do CE_1.9.2.1
Dostaję błąd dla każdego pliku.
Z powodzeniem zastosowałem łatkę do innych repozytoriów.
Kod rdzenia nietknięty.
Lista zastosowanych poprawek
źródło
Problemy z poprawką M1.9.3.7 PATCH_SUPEE-11086_CE_1.9.3.10_v1.sh
źródło
Potwierdza, że istnieje problem przy próbie zastosowania
SUPEE-11086
na nowo pobranej i w pełni poprawionej wersji 1.9.1.1, w tym wszystko, włącznie z łatką Admin Dashboard Charts -MPERF-10509-CE-2019-03-13-06-31-24.diff
Łatka nie działa w następujących plikach.
Te pliki nie mają żadnych zmian w porównaniu z początkowym zatwierdzeniem pobierania wersji 1.1.9.1. Skopiowanie plików z instalacji 1.9.2.4, zastosowanie SUPEE-11086, a następnie porównanie ze źródłem v1.9.4.1 potwierdza, że teraz pasują.
Magento v1.9.1.1
wydaje się być problematycznym dzieckiem ...źródło
Potwierdza, że występuje problem przy próbie zastosowania
SUPEE-11086
na nowo pobranej, w pełni poprawionej wersji 1.9.3.0, w tym wszystko, włącznie z łatką Admin Dashboard Charts -MPERF-10509-CE-2019-03-13-06-31-24.diff
Łata nie działa w app / config.xml, ponieważ brakuje węzła poniżej. Dodaj węzeł przed uruchomieniem SUPEE-11086, bez problemów.
źródło
Odkryłem nowy problem z modelem
Mage_Eav_Model_Attribute_Data_File
W jednostce klientów dodałem atrybuty przesyłania plików. Te atrybuty nie są wymagane, a gdy chcę usunąć plik bez przesłania nowego, usunięcie nie działa, ponieważ wartość atrybutu nie jest sprawdzana za pomocą nowej metody
setAttributeValidationAsPassed()
Szybka poprawka, którą zrobiłem, jest w metodzie
validateValue($value)
Ten problem wydaje się występować we wszystkich wydaniach Magento 1.x od tego czasu
SUPEE-11086
źródło
Magento 1.9.3.1
Wystąpił problem podczas próby łatania CE 1.9.3.1 przy użyciu poprawki PATCH_SUPEE-11086_CE_1.9.3.10_v1.sh:
źródło