Haberler

Wordpress’teki Kritik JavaScript Güvenlik Açığı Kapatıldı

Wordfence Tehdit İstihbarat ekibi 12 Haziran 2020 tarihinde, 10,000’den fazla yüklemeye sahip bir WordPress eklentisi olan TC Custom JavaScript’te kimliği doğrulanmamış bir Siteler Arası Komut Dosyası Oluşturma (XSS) güvenlik açığını keşfetti.

Wordfence Premium müşterileri, bu güvenlik açığından korunabilmek için açığın keşfedildiği gün yeni bir güvenlik duvarı kuralı aldı. Ücretsiz sürümü kullanan Wordfence kullanıcıları ise bu kurala 12 Temmuz 2020 tarihinde erişebildi.

Wordfence Tehdit İstihbarat ekibi TC Custom JavaScript eklentisinin geliştiricisi ile 12 Haziran 2020 tarihinde iletişim kurmaya çalıştı, ancak bir yanıt alamadı. 22 Haziran 2020 tarihinde Wordpress Eklentiler ekibi ile iletişime geçti ve 23 Haziran 2020 tarihinde ilk yama yayınlandı. 29 Haziran 2020’de ise geniş kapsamlı bir yama yayınlandı.

Description: Unauthenticated Stored Cross-Site Scripting(XSS)
Affected Plugin: TC Custom JavaScript
Plugin Slug: tc-custom-javascript
Affected Versions: < 1.2.2
CVE ID: CVE-2020-14063
CVSS Score: 8.3(high)
CVSS Vector: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:L
Fully Patched Version: 1.2.2

TC Custom JavaScript, site sahiplerinin bir sitedeki her sayfaya özel JavaScript eklemesine izin veren bir WordPress eklentisidir. Bu eklenti çok faydalı olsa da, uygun erişim kontrolü olmadan çok tehlikeli olabilir.

Bu eklenti başlangıçta TCCJ_Core_Content::update fonksiyonunu hemen çalıştırdı. Sonuç olarak, update fonksiyonu WordPress erişim kontrol fonksiyonlarından önce çalıştırıldı. Bu fonksiyon denetimlerinin olmaması ve fonksiyon üzerinde nonce doğrulamasının olmaması nedeni ile yetkisiz ziyaretçilerin update fonksiyonunu kullanmasını mümkün kıldı.

class TCCJ_Core_Content {
    public static function update() {
        if ( self::has_update_request() ) {
            if ( get_magic_quotes_gpc() )
                $tccj_content = stripslashes( $_POST['tccj-content'] );
            else
                $tccj_content = $_POST['tccj-content'];
            // Sanitizing data before insert to database
            $tccj_content = wp_check_invalid_utf8( $tccj_content, true );
            $tccj_content = htmlentities( $tccj_content );
            if ( ! get_magic_quotes_runtime() )
                $tccj_content = addslashes( $tccj_content );
            update_option( 'tccj_content', $tccj_content );
        }
    }
    private static function has_update_request() {
        if ( isset( $_POST['tccj-update'] ) && ( $_POST['tccj-update'] == 'Update' ) )
            return true;
        else
            return false;
    }
}
class TCCJ_Core_Frontend {
    public static function print_script_in_footer() {
        //$tccj_content = sanitize_text_field( get_option( 'tccj_content', '' ) );
        $tccj_content = get_option( 'tccj_content', '' );
        $tccj_content = stripslashes( $tccj_content );
        $tccj_content = html_entity_decode( $tccj_content );
        if ( $tccj_content != '' ) {
            echo '<script type="text/javascript">' . $tccj_content . '</script>';
        }
    }
}

Bu tür kötü amaçlı JavaScript kodları, ziyaretçileri kötü amaçlı reklam sitelerine yönlendirmek veya ödeme bilgilerini çalmak için kullanılabilir. Daha da kötüsü bu kodlar ile bir yöneticinin siteyi ne zaman ziyaret ettiği tespit edilebilir ve tüm sitenin ele geçirilebilmesini sağlayacak bir yönetici hesabı oluşturabilir.

Kaynak

İlgili Makaleler

Bir Yorum

  1. Her güncelleme de bir felaket bazı zaman hemen güncelliyorum bazı zaman bir sonraki güncellemeyi bekliyorum. Haricen iThemes Security eklentiyi kullanıyorum. Bir çok özelliği barındırıyor tavsiye ederim.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu