Magento telah merilis patch keamanan baru untuk M1, dan pembaruan untuk M1 dan M2.
Masalah apa yang harus saya perhatikan ketika meningkatkan atau menerapkan tambalan ini?
SUPEE-10570, Magento Commerce 1.14.3.8 dan Open Source 1.9.3.8 berisi beberapa peningkatan keamanan yang membantu menutup eksekusi kode jarak jauh (RCE), skrip lintas situs (XSS, dan masalah lainnya. Rilis ini juga mencakup perbaikan fungsional kecil yang tercantum dalam catatan rilis.
MAGENTO 2.2.3, 2.1.12 DAN 2.0.18 PEMBARUAN KEAMANAN
Magento Commerce dan Open Source 2.2.3, 2.1.12 dan 2.0.18 berisi beberapa peningkatan keamanan yang membantu menutup Cross-Site Scripting (XSS), eksekusi kode jauh pengguna Admin (RCE) yang diotentikasi, dan kerentanan lainnya. Rilis termasuk perbaikan fungsional tambahan. Untuk mengetahui lebih lanjut tentang perbaikan fungsional, silakan lihat Catatan Rilis untuk Magento Commerce 2.0.18, 2.1.12, 2.2.3 dan Magento Open Source 2.0.18, 2.1.12, 2.2.3.
Jawaban:
Berikut adalah daftar file yang dimodifikasi oleh patch SUPEE-10570:
SUNTING
Akhirnya setelah disebarkan di situs web prod saya (CE 1.7.0.2), saya melihat masalah pemblokiran kritis (proses checkout diblokir).
Konteksnya: setelah alamat langkah 1, saya langsung membuat DAN mencatat pelanggan, ia hanya akan melihat langkah checkout berikutnya.
Masalahnya: setelah supee-10570, proses checkout rusak setelah langkah 1 (dalam hal pembuatan akun) dan pelanggan dialihkan ke beranda (dengan keranjang belanja kosong + logout) = tidak mungkin mencapai checkout.
Perbaikan darurat: Jika Anda mengalami masalah serupa dengan checkout / sesi pelanggan Anda, komentari baris 414-430 dari app / code / core / Mage / Core / Model / Session / Abstract / Varien.php (yang ditambahkan oleh tambalan , Lihat di bawah).
EDIT (2)
Saya pikir kondisi berikut akan selalu mengembalikan false (Mage_Core_Model_Session_Abstract_Varien di baris 414-419, terutama baris 417 + 418).
VALIDATOR_PASSWORD_CREATE_TIMESTAMP akan selalu lebih besar dari VALIDATOR_SESSION_EXPIRE_TIMESTAMP. Stempel waktu sesi "kedaluwarsa" didefinisikan ulang pada pembuatan akun, jadi pasti lebih tua dari init sesi.
Jadi misalnya jika Anda membuat pelanggan selama checkout, ini akan mengembalikan false dan pelanggan hanya akan ditendang keluar (= mengakhiri checkout, redirect ke beranda & keranjang kosong). Cukup buruk.
Saya telah melaporkan masalah ini ke tim magento. Saya akan memberikan umpan balik di sini secepatnya.
EDIT (3)
Sebuah tambalan baru dihapus (pada halaman unduhan tambalan magento itu tertulis "SUPEE-10570 untuk CE 1.7.0.0 - PATCH DIPERBARUI DIHARAPKAN, JANGAN GUNAKAN (0,06 MB)").
EDIT (4) ~ 1 bulan setelah masalah pemblokiran awal dilaporkan
Hai! Semoga Anda semua barang (dan harap Anda tidak mempertahankan status tambalan awal sampai sekarang, kecuali pendapatan bisnis Anda mungkin sangat menurun ^^).
Saya perhatikan kalimat berikut dari halaman resmi: "Magento sekarang menyediakan tambalan yang diperbarui (SUPEE-10570v2) yang tidak lagi menyebabkan masalah ini. Namun, perhatikan bahwa tambalan baru ini tidak lagi melindungi terhadap dua sesi terkait penanganan risiko rendah yang terkait masalah keamanan yang diproteksi dari SUPEE-10570. " dari halaman resmi supee-10570.
Pada halaman rilis kami akhirnya dapat menemukan file v2 (PATCH_SUPEE-10570_CE_v1.7.0.2_v2-2018-03-29-08-52-37.sh).
Saya telah menyelidiki detail modifikasi. Akhirnya sepertinya tim magento baru saja memutuskan untuk menjatuhkan bagian keamanan patch. Semoga lubang keamanan ini tidak menyebabkan kerusakan serius (kritis rendah menurut catatan resmi).
Setelah mengembalikan v1 + menerapkan v2, harap berhati-hati file-file berikut dikembalikan sebagai keadaan awal (sebelum v1 diterapkan):
PS: jelas beberapa file lain juga dimodifikasi, silakan periksa sesuai.
sumber
app/etc/applied.patches.list
(tidak yakin apakah ini dalam catatan rilis dari awal)
Masalah Dikenal
Dua masalah yang diketahui ini terkait dengan penggunaan tag HTML dalam atribut SKU produk:
Invalid value in SKU column. HTML tags are not allowed.
HTML tags are not allowed in SKU attribute.
Dari catatan tempel :
Jika tambalan gagal untuk diterapkan saat menambal
lib/Zend/Mail/Transport/Sendmail.php
, itu mungkin berarti instalasi Magento Anda sebelumnya ditambal dengan SUPEE-9652v1, bukan SUPEE-9652v2. Solusi yang disarankan adalah mengembalikan patch SUPEE-9652v1 dan menerapkan SUPEE-9652v2 sebelum menerapkan SUPEE-10570.sumber
Saya memiliki masalah yang sama dengan @DarkCowboy setelah menerapkan tambalan ke Magento CE 1.7.0.2.
Setelah memilih untuk mendaftar sebagai pelanggan baru selama checkout, menempatkan pesanan menciptakan pesanan dan pelanggan, tetapi alih-alih menampilkan halaman keberhasilan pesanan, saya diarahkan ke beranda dan keluar.
Solusi yang saya temukan adalah membalik urutan blok kode dalam perubahan menjadi
app/code/core/Mage/Core/Model/Session/Abstract/Varien.php
.Membandingkan versi yang ditambal dengan file yang sama di Magento CE 1.9.3.8, saya menemukan blok baru untuk memvalidasi kedaluwarsa sesi dan timestamp kata sandi berada dalam urutan yang berbeda.
Magento CE 1.9.3.8 - Baris 476-491:
Magento CE 1.7.0.2 - Baris 414-430:
Ini menghasilkan nilai
$validatorData[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP]
lebih besar dari itu$sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP] - $this->getCookie()->getLifetime()
, artinya metode selalu mengembalikan false dan validasi gagal.Mengubah kode di Magento CE 1.7.0.2 agar sesuai dengan versi di Magento CE 1.9.3.8 memperbaiki masalah.
Kode yang dihasilkan untuk Magento CE 1.7.0.2 - Lines 414-430:
Saya sarankan untuk membuat file patch Anda sendiri dan menerapkan langsung ke file inti (ini adalah cara saya biasanya memperbaiki bug di inti). Ini akan membuatnya mudah untuk dikembalikan jika Magento mengeluarkan versi 2 dari tambalan.
sumber
useValidateSessionPasswordTimestamp()
kembalifalse
. (perubahan satu baris dalam file yang sama)Kami melihat halaman kosong di / checkout / cart setelah menerapkan SUPEE-10570 dan kompilasi. Hanya untuk memperjelas: Dengan kompiler yang dinonaktifkan semua hal berjalan dengan baik, dengan kompiler yang diaktifkan kita hanya bisa melihat halaman keranjang kosong ketika login tanpa entri log (bahkan setelah mengaktifkan semua log yang mungkin dan mode pengembang).
Solusinya adalah mengubah fungsi
getPasswordTimestamp()
dalamapp/code/core/Mage/Customer/Helper/Data.php
(tentu saja berartiapp/code/local/Mage/Customer/Helper/Data.php
:!) Dan menggunakanMage::getSingleton('core/resource')
alih-alihMage::getModel('customer/customer')
atauMage::getSingleton('customer/session')
. Jadi ganti seluruh fungsi misalnya dengan baris kode berikut:Setelah kompilasi masalah hilang. Adakah yang lain dengan masalah ini?
Penjelasan dalam bahasa Jerman di sini .
sumber
1.7.0.0
Tambalan:
PATCH_SUPEE-10570_CE_v1.7.0.0_v1-2018-02-23-06-37-58.sh
Kesalahan ini terjadi jika Anda belum pernah menerapkan SUPEE-9652 atau SUPEE-9767 sebelumnya
Terapkan tambalan itu untuk memperbaiki masalah.
sumber
1.7.0.0
Patch
PATCH_SUPEE-10570_CE_v1.7.0.0_v1-2018-02-23-06-37-58.sh
Fileapp/code/core/Mage/Core/Model/Session/Abstract/Varien.php
Patch untuk 1.7.0.0 hanya menambahkan satu konstanta:
Namun, itu menambahkan penggunaan dua konstanta baru, terutama yang ini:
Ini menghasilkan kesalahan:
Cara mengatasinya:
Tambahkan definisi untuk konstanta kedua di atas atau di bawah konstanta pertama yang ditambahkan oleh tambalan ini.
Sejauh ini saya belum melihat masalah ini di 1.9. atau 1.14.x tambalan, karena mereka mendefinisikan konstanta dengan benar.
sumber
const VALIDATOR_SESSION_EXPIRE_TIMESTAMP = 'session_expire_timestamp';
ke bagian atas file, seperti dilakukan di sebagian besar versi lain dari tambalan ini.Hal pertama yang harus Anda periksa, jika sebelumnya Anda menerapkan versi SUPEE-6788 atau SUPEE-7405 yang benar, jika tidak mengembalikan versi yang salah dan kemudian menerapkan versi SUPEE-6788 / SUPEE-7405 yang benar.
Kemudian coba lagi untuk menerapkan SUPEE-10570.
sumber
File di bawah ini diperbarui / ditambahkan setelah patch SUPEE - 10570 diterapkan di EE
@DarkCowboy memberikan daftar file selain dari file EE adalah:
Beberapa catatan penting
password_created_at
dibuat dalam tabel atribut pelanggan.Ini adalah file yang digunakan untuk pembuatan dan validasi. masalah sesi terjadi pada checkout atau cek masuk pengguna, di atas salah satu file ditimpa di kumpulan lokal Anda atau Setiap
password_created_at
atribut dibuat di tabel atribut pelanggan Anda dan nilai yang tepat disimpan dalam tabel itu.sumber
Versi magento saya adalah ver. 1.9.1.0.
Kami melihat halaman kosong di / checkout / cart setelah menerapkan SUPEE-10570 dan kompilasi. Hanya untuk memperjelas: Dengan kompiler yang dinonaktifkan semua hal berjalan dengan baik, dengan kompiler yang diaktifkan kita hanya bisa melihat halaman keranjang kosong ketika login tanpa entri log (bahkan setelah mengaktifkan semua log yang mungkin dan mode pengembang).
Sebab:
fungsi getPasswordTimestamp akan memanggil dua kali ketika masuk dan mengunjungi / checkout / kereta.
kompiler dinonaktifkan kedua pekerjaan doa.
aktifkan kompiler hanya pekerjaan doa pertama, doa kedua gagal.
adakah yang bisa menjelaskan dan memberikan solusi yang baik?
sumber
Masalah dengan 1.7.0.2 yang saya perhatikan adalah sebagai berikut:
Tambahkan Produk ke Troli dan pergi ke Checkout
Klik "Daftar"
MASALAH MULAI DI SINI
5. Secara otomatis dialihkan ke HOME HALAMAN. Anda tidak dapat melihat konfirmasi nomor pesanan. Namun pada kenyataannya, pesanan dilakukan dan akun pelanggan dibuat.
sumber
Saya bertemu dengan masalah yang sama, Magento 1.9.3.8 menambahkan metode ini ke dalam kelas Mage_Customer_Helper_Data
Jika Anda mengesampingkan kelas ini di dalam folder lokal (bukan praktik terbaik), kami mungkin memiliki kesalahan yang dihasilkan oleh kelas ini.
sumber
Patch ini telah merusak beberapa manajer hierarki CMS untuk pengguna EE.
Ini karena tambalan berikut yang bertanggung jawab untuk melarikan diri dari toko / nama situs web dan memperbaiki APPSEC-1873/1979/1980.
Seharusnya menampilkan pemilih toko di sebelah kiri tetapi sebaliknya menunjukkan html di sebelah kanan. Jika Anda benar-benar membutuhkan fungsi ini, Anda perlu melakukan panggilan keamanan vs fungsionalitas yang tidak bagus.
sumber
Kesalahan yang persis sama dengan Tyler, di Magento 1.9.2.4 Patch PATCH_SUPEE-10570_CE_v1.9.2.4_v1-2018-02-28-04-53-53.sh
sumber
Jika Anda memiliki beberapa alat pendeteksi tambalan, Anda mungkin perlu memodifikasi pendeteksian
SUPEE-9562
karenaSUPEE-10570
memodifikasi file yang sama:sumber
Patch diubah oleh Magento diam-diam. Di sini ditunjukkan dengan tambalan untuk Magento 1.8.1.0-1.9.0.1. Pada unduhan pertama saya mendapat file
Beberapa hari kemudian saya mendapat file berikut
Diff menunjukkan bahwa file sebelumnya berisi file dari Magento Enterprise Edition yang berisi lisensi yang salah "Perjanjian Lisensi Pengguna Akhir Magento Enterprise Edition". Ini telah diperbaiki ke "Open Software License (OSL 3.0)".
sumber
Anda mungkin mendapatkan kesalahan berikut
Hunk #3 FAILED at 17
setelah barisItu terjadi pada saya di versi Magento 1.10.0.2EE. Itu terjadi karena patch SUPEE-6285 tidak diterapkan.
sumber