Магчымасць генерацыі фіктыўных подпісаў ECDSA у Java SE. Уразлівасці ў MySQL, VirtualBox і Solaris

Кампанія Oracle апублікавала планавы выпуск абнаўленняў сваіх прадуктаў (Critical Patch Update), накіраваны на ўхіленне крытычных праблем і ўразлівасцяў. У красавіцкім абнаўленні ў суме ліквідавана 520 уразлівасцей.

Некаторыя праблемы:

  • 6 праблем з бяспекай у Java SE. Усе ўразлівасці могуць быць эксплуатаваны выдалена без правядзення аўтэнтыфікацыі і закранаюць асяроддзі, якія дапушчаюць выкананне не годнага даверу кода. Двум праблемам прысвоены ўзровень небяспекі 7.5. Уразлівасці ўхіленыя ў выпусках Java SE 18.0.1, 11.0.15 і 8u331.

    Адна з праблем (CVE-2022-21449) дазваляе згенераваць фіктыўны лічбавы подпіс ECDSA, выкарыстаючы пры яе генерацыі нулявыя параметры крывой (калі параметры нулявыя, то крывая сыходзіць у бясконцасць, таму нулявыя значэнні відавочна забароненыя ў спецыфікацыі). У бібліятэках Java адсутнічала праверка на нулявыя значэнні параметраў ECDSA, таму пры апрацоўцы подпісаў з нулявымі параметрамі, Java ва ўсіх выпадках лічыў іх валіднымі).

    У тым ліку ўразлівасць можа выкарыстоўвацца для генерацыі фіктыўных TLS-сертыфікатаў, якія будуць прымацца ў Java як карэктныя, а таксама для абыходу аўтэнтыфікацыі праз WebAuthn і фармаванні фіктыўных подпісаў JWT і токенаў OIDC. Іншымі словамі, уразлівасць дазваляе генераваць універсальныя сертыфікаты і подпісы, якія будзе прымацца і ўспрымацца як карэктныя ў Java-апрацоўшчыках, якія выкарыстоўваюць для праверкі штатныя класы java.security. Праблема праяўляецца ў галінках Java 15, 16, 17 і 18. Даступны прыклад генерацыі падробленых сертыфікатаў. jshell> import java.security.* jshell> var keys = KeyPairGenerator.getInstance(«EC»).generateKeyPair() keys ==> java.security.KeyPair@626b2d4a jshell> var blankSignature = new byte[64 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 уразлівасцяў у серверы MySQL, з якіх дзве могуць быць эксплуатаваны выдалена. Найбольш сур'ёзным праблемам, якія звязаны з выкарыстаннем OpenSSL і protobuf, прысвоены ўзроўні небяспекі 7.5. Менш небяспечныя ўразлівасці закранаюць аптымізатар, InnoDB, рэплікацыю, PAM-убудова, DDL, DML, FTS і вядзенне логаў. Праблемы ўхілены ў выпусках MySQL Community Server 8.0.29 і 5.7.38.
  • 5 уразлівасцяў у VirtualBox. Праблемам прысвоены ўзровень небяспекі ад 7.5 да 3.8 (найбольш небяспечная ўразлівасць выяўляецца толькі на платформе Windows). Уразлівасці ўхіленыя ў абнаўленні VirtualBox 6.1.34.
  • 6 уразлівасцяў у Solaris. Праблемы закранаюць ядро ​​і ўтыліты. Найбольш сур'ёзнай праблеме ва ўтылітах прысвоены ўзровень небяспекі 8.2. Уразлівасці ўхіленыя ў абнаўленні Solaris 11.4 SRU44.

Крыніца: opennet.ru

Дадаць каментар