Możliwość generowania fikcyjnych podpisów ECDSA w Java SE. Luka w MySQL, VirtualBox i Solaris

Firma Oracle opublikowała planowe wydanie aktualizacji swoich produktów (Critical Patch Update), mające na celu wyeliminowanie krytycznych problemów i luk w zabezpieczeniach. W aktualizacji z kwietnia usunięto łącznie 520 luk.

Niektóre problemy:

  • 6 problemów z bezpieczeństwem w Java SE. Wszystkie luki mogą być wykorzystywane zdalnie bez przeprowadzania uwierzytelnienia i dotyczą środowisk, które pozwalają na wykonywanie niegodnego zaufania kodu. Dwie z problemów otrzymały poziom zagrożenia 7.5. Luki zostały usunięte w wersjach Java SE 18.0.1, 11.0.15 i 8u331.

    Jednym z problemów (CVE-2022-21449) jest możliwość wygenerowania fałszywego podpisu cyfrowego ECDSA, wykorzystując przy jego generowaniu zerowe parametry krzywej (jeśli parametry są zerowe, to krzywa zmierza w nieskończoność, dlatego zerowe wartości są wyraźnie zabronione w specyfikacji). W bibliotekach Java brakowało sprawdzenia zerowych wartości parametrów ECDSA, dlatego przy przetwarzaniu podpisów z zerowymi parametrami Java w każdym przypadku uznawała je za ważne.

    W tym przypadku luka może być wykorzystywana do generowania fałszywych certyfikatów TLS, które będą akceptowane w Java jako prawidłowe, a także do obejścia uwierzytelnienia przez WebAuthn i tworzenia fałszywych podpisów JWT oraz tokenów OIDC. Innymi słowy, luka pozwala na generowanie uniwersalnych certyfikatów i podpisów, które będą uznawane za prawidłowe i rozpoznawane w Java przez systemy korzystające do weryfikacji z standardowych klas java.security.*. Problem występuje w wersjach Java 15, 16, 17 i 18. Dostępny jest przykład generacji fałszywych certyfikatów. jshell> import java.security.* jshell> var keys = KeyPairGenerator.getInstance("EC").generateKeyPair() keys ==> 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 ==> Signature object: SHA256WithECDSAInP1363Format jshell> sig.initVerify(keys.getPublic()) jshell> sig.update("Hello, World".getBytes()) jshell> sig.verify(blankSignature) $8 ==> true

  • 26 luk w zabezpieczeniach w serwerze MySQL, z czego dwie mogą być wykorzystywane zdalnie. Najpoważniejsze problemy związane z wykorzystaniem OpenSSL i protobuf otrzymały poziomy zagrożenia 7.5. Mniej niebezpieczne luki dotyczą optymalizatora, InnoDB, replikacji, wtyczki PAM, DDL, DML, FTS oraz protokołów logowania. Problemy zostały usunięte w wersjach MySQL Community Server 8.0.29 i 5.7.38.
  • 5 luk bezpieczeństwa w VirtualBox. Problemy zostały ocenione na poziomie ryzyka od 7,5 do 3,8 (najpoważniejsza luka występuje tylko na platformie Windows). Luki zostały usunięte w aktualizacji VirtualBox 6.1.34.
  • 6 luk bezpieczeństwa w Solaris. Problemy dotyczą jądra i narzędzi. Najpoważniejszej uldze w narzędziach nadano poziom ryzyka 8,2. Luki zostały usunięte w aktualizacji Solaris 11.4 SRU44.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster