Kakayahang bumuo ng mga dummy na lagda ng ECDSA sa Java SE. Mga kahinaan sa MySQL, VirtualBox at Solaris

Ang Oracle ay nag-publish ng isang nakaplanong pagpapalabas ng mga update sa mga produkto nito (Critical Patch Update), na naglalayong alisin ang mga kritikal na problema at kahinaan. Ang pag-update ng Abril ay nag-ayos ng kabuuang 520 mga kahinaan.

Ilang problema:

  • 6 Mga Isyu sa Seguridad sa Java SE. Ang lahat ng mga kahinaan ay maaaring mapagsamantalahan nang malayuan nang walang pagpapatotoo at makakaapekto sa mga kapaligiran na nagpapahintulot sa pagpapatupad ng hindi mapagkakatiwalaang code. Dalawang isyu ang itinalaga sa antas ng kalubhaan na 7.5. Ang mga kahinaan ay nalutas sa Java SE 18.0.1, 11.0.15, at 8u331 na mga release.

    Ang isa sa mga problema (CVE-2022-21449) ay nagbibigay-daan sa iyo na makabuo ng isang fictitious ECDSA digital signature gamit ang zero curve parameters kapag nabuo ito (kung ang mga parameter ay zero, pagkatapos ay ang curve ay mapupunta sa infinity, kaya ang mga zero value ay tahasang ipinagbabawal sa ang pagtutukoy). Ang mga aklatan ng Java ay hindi nagsuri para sa mga null na halaga ng mga parameter ng ECDSA, kaya kapag nagpoproseso ng mga lagda na may mga null na parameter, itinuturing ng Java ang mga ito na wasto sa lahat ng mga kaso).

    Sa iba pang mga bagay, ang kahinaan ay maaaring gamitin upang makabuo ng mga kathang-isip na TLS certificate na tatanggapin sa Java bilang tama, pati na rin upang i-bypass ang pagpapatotoo sa pamamagitan ng WebAuthn at bumuo ng mga gawa-gawang pirma ng JWT at mga token ng OIDC. Sa madaling salita, binibigyang-daan ka ng kahinaan na bumuo ng mga unibersal na certificate at lagda na tatanggapin at ituturing na tama sa mga humahawak ng Java na gumagamit ng mga karaniwang klase ng java.security.* para sa pag-verify. Lumilitaw ang problema sa mga sangay ng Java 15, 16, 17 at 18. Available ang isang halimbawa ng pagbuo ng mga pekeng sertipiko. jshell> import java.security.* jshell> var keys = KeyPairGenerator.getInstance("EC").generateKeyPair() keys ==> java.security.KeyPair@626b2d4a jshell> var blankSignature = bagong byte[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 ==> Signature object: SHA256WithECDSAInP1363Format jshell> sig.initVerify(keys.getPublic()) jshell> sig.update("Hello, World".getBytes()) jshell> sig.verify(blankSignature) $8 ==> true

  • 26 na mga kahinaan sa MySQL server, dalawa sa mga ito ay maaaring mapagsamantalahan nang malayuan. Ang pinakamalubhang problemang nauugnay sa paggamit ng OpenSSL at protobuf ay itinalaga ng antas ng kalubhaan na 7.5. Ang hindi gaanong malubhang kahinaan ay nakakaapekto sa optimizer, InnoDB, replication, PAM plugin, DDL, DML, FTS at pag-log. Ang mga isyu ay nalutas sa MySQL Community Server 8.0.29 at 5.7.38 na mga release.
  • 5 mga kahinaan sa VirtualBox. Ang mga isyu ay itinalaga ng antas ng kalubhaan mula 7.5 hanggang 3.8 (ang pinaka-mapanganib na kahinaan ay lilitaw lamang sa Windows platform). Ang mga kahinaan ay naayos sa pag-update ng VirtualBox 6.1.34.
  • 6 na mga kahinaan sa Solaris. Ang mga problema ay nakakaapekto sa kernel at mga utility. Ang pinakaseryosong problema sa mga utility ay itinalaga sa antas ng panganib na 8.2. Ang mga kahinaan ay nalutas sa Solaris 11.4 SRU44 update.

Pinagmulan: opennet.ru

Magdagdag ng komento