Evne til at generere dummy ECDSA-signaturer i Java SE. Sårbarheder i MySQL, VirtualBox og Solaris

Oracle har udgivet en planlagt udgivelse af opdateringer til sine produkter (Critical Patch Update), der har til formål at eliminere kritiske problemer og sårbarheder. April-opdateringen rettet i alt 520 sårbarheder.

Nogle problemer:

  • 6 Sikkerhedsproblemer i Java SE. Alle sårbarheder kan udnyttes eksternt uden godkendelse og påvirker miljøer, der tillader eksekvering af upålidelig kode. To problemer er blevet tildelt et alvorlighedsniveau på 7.5. Sårbarhederne er blevet løst i Java SE 18.0.1, 11.0.15 og 8u331 udgivelser.

    Et af problemerne (CVE-2022-21449) giver dig mulighed for at generere en fiktiv ECDSA digital signatur ved hjælp af nulkurveparametre, når du genererer den (hvis parametrene er nul, går kurven til uendeligt, så nulværdier er eksplicit forbudt i specifikationen). Java-bibliotekerne tjekkede ikke for null-værdier af ECDSA-parametre, så ved behandling af signaturer med null-parametre, anså Java dem for gyldige i alle tilfælde).

    Sårbarheden kan blandt andet bruges til at generere fiktive TLS-certifikater, der vil blive accepteret i Java som korrekte, samt til at omgå autentificering via WebAuthn og generere fiktive JWT-signaturer og OIDC-tokens. Med andre ord giver sårbarheden dig mulighed for at generere universelle certifikater og signaturer, der vil blive accepteret og opfattet som korrekte i Java-handlere, der bruger standard java.security.*-klasser til verifikation. Problemet opstår i Java-grene 15, 16, 17 og 18. Et eksempel på generering af falske certifikater er tilgængeligt. jshell> import java.security.* jshell> var keys = KeyPairGenerator.getInstance("EC").generateKeyPair() nøgler ==> java.security.KeyPair@626b2d4a jshell> var blankSignature = new 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 ==> Signaturobjekt: SHA256WithECDSAInP1363Format jshell> sig.initVerify(keys.getPublic()) jshell> sig.update("Hello, World".getBytes()) jshell> sig.verify(blankSignature) $8 ==> true

  • 26 sårbarheder i MySQL-serveren, hvoraf to kan udnyttes eksternt. De mest alvorlige problemer forbundet med brugen af ​​OpenSSL og protobuf tildeles et alvorlighedsniveau på 7.5. Mindre alvorlige sårbarheder påvirker optimeringsværktøjet, InnoDB, replikering, PAM-plugin, DDL, DML, FTS og logning. Problemerne blev løst i MySQL Community Server 8.0.29 og 5.7.38 udgivelser.
  • 5 sårbarheder i VirtualBox. Problemerne tildeles et alvorlighedsniveau fra 7.5 til 3.8 (den farligste sårbarhed vises kun på Windows-platformen). Sårbarhederne er rettet i VirtualBox 6.1.34-opdateringen.
  • 6 sårbarheder i Solaris. Problemerne påvirker kernen og hjælpeprogrammerne. Det alvorligste problem i forsyningsselskaberne er tildelt et fareniveau på 8.2. Sårbarhederne er løst i Solaris 11.4 SRU44-opdateringen.

Kilde: opennet.ru

Tilføj en kommentar