Kemampuan untuk menghasilkan tanda tangan ECDSA tiruan di Java SE. Kerentanan di MySQL, VirtualBox dan Solaris

Oracle telah menerbitkan rilis pembaruan terjadwal untuk produknya (Pembaruan Patch Kritis), yang bertujuan untuk menghilangkan masalah kritis dan kerentanan. Pembaruan bulan April memperbaiki total 520 kerentanan.

Beberapa masalah:

  • 6 Masalah Keamanan di Java SE. Semua kerentanan dapat dieksploitasi dari jarak jauh tanpa otentikasi dan memengaruhi lingkungan yang memungkinkan eksekusi kode yang tidak tepercaya. Dua masalah telah ditetapkan tingkat keparahannya 7.5. Kerentanan telah diatasi pada rilis Java SE 18.0.1, 11.0.15, dan 8u331.

    Salah satu masalahnya (CVE-2022-21449) memungkinkan Anda membuat tanda tangan digital ECDSA fiktif menggunakan parameter kurva nol saat membuatnya (jika parameternya nol, maka kurvanya menuju tak terhingga, jadi nilai nol secara eksplisit dilarang di spesifikasi). Pustaka Java tidak memeriksa nilai null dari parameter ECDSA, jadi saat memproses tanda tangan dengan parameter null, Java menganggapnya valid di semua kasus).

    Antara lain, kerentanan dapat digunakan untuk menghasilkan sertifikat TLS fiktif yang akan diterima di Java sebagai benar, serta untuk melewati otentikasi melalui WebAuthn dan menghasilkan tanda tangan JWT fiktif dan token OIDC. Dengan kata lain, kerentanan memungkinkan Anda menghasilkan sertifikat dan tanda tangan universal yang akan diterima dan dianggap benar di penangan Java yang menggunakan kelas java.security.* standar untuk verifikasi. Masalahnya muncul di cabang Java 15, 16, 17 dan 18. Tersedia contoh pembuatan sertifikat palsu. jshell> impor java.security.* jshell> var kunci = KeyPairGenerator.getInstance("EC").generateKeyPair() kunci ==> java.security.KeyPair@626b2d4a jshell> var blankSignature = byte baru[64] blankSignature ==> byte[64] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, … , 0, 0, 0, 0, 0, 0, 0, 0 } jshell > var sig = Signature.getInstance("SHA256WithECDSAInP1363Format") sig ==> Objek tanda tangan: SHA256WithECDSAInP1363Format jshell> sig.initVerify(keys.getPublic()) jshell> sig.update("Halo, Dunia".getBytes()) jshell> sig.verify(blankSignature) $8 ==> true

  • 26 kerentanan di server MySQL, dua di antaranya dapat dieksploitasi dari jarak jauh. Masalah paling serius yang terkait dengan penggunaan OpenSSL dan protobuf diberi tingkat keparahan 7.5. Kerentanan yang tidak terlalu parah memengaruhi pengoptimal, InnoDB, replikasi, plugin PAM, DDL, DML, FTS, dan logging. Masalah ini diselesaikan pada rilis MySQL Community Server 8.0.29 dan 5.7.38.
  • 5 kerentanan di VirtualBox. Masalah ini diberi tingkat keparahan dari 7.5 hingga 3.8 (kerentanan paling berbahaya hanya muncul di platform Windows). Kerentanan telah diperbaiki dalam pembaruan VirtualBox 6.1.34.
  • 6 kerentanan di Solaris. Masalahnya mempengaruhi kernel dan utilitas. Masalah paling serius di sektor utilitas ditetapkan pada tingkat bahaya 8.2. Kerentanan diatasi dalam pembaruan Solaris 11.4 SRU44.

Sumber: opennet.ru

Tambah komentar