Alvorlig kryptosårbarhet i Java 15+

Patch er tilgjengelig
Installer April 2022 Critical Patch Update

Hvis du kjører på Java 15, Java 16, Java 17, eller Java 18 i prod bør du slippe alt du holder på med og installere April 2022 Critical Patch Update umiddelbart!

Nylige versjoner av Java har en sårbarhet relatert til implementasjonen av verifisering av ECDSA-signaturer. Dersom du bruker en av de sårbare versjonene kan en angriper enkelt forfalske enkelte typer SSL-sertifikater og handshakes, signerte JWT-token, SAML-meldinger, OIDC-id-tokens, og WebAuthn-meldinger.

ECDSA, Elliptical Curve Digital Signature Algorithm, er en signaturalgoritme som i stor grad har tatt over for RSA og brukes i en rekke (autentiserings-)protokoller, så en rekke applikasjoner, tjenester og systemer har blitt berørt. Tidligere versjoner av Java hadde ikke sårbarheten, noe som skyldes at nyere versjoner av Java fikk kryptokoden omskrevet. Kryptokode er svært viktig kode som må skrives nøyaktig for at det skal utføres korrekt og uten muligheter til feks sidekanalsangrep. Det er derfor nødvendig med særskilt kryptokodekompetanse for slik utvikling. Den samme kompetansen er nødvendig når koden skal omskrives til et nytt språk, og det kan ofte være utfordringer med kompilatorer som optimaliserer kryptokode som ikke skal optimaliseres.

Dersom du bruker ECDSA-signaturer for noen av disse sikkerhetsmekanismene via Javas innebyggde kryptobibliotek og ikke Spongy/BouncyCastle, kan en angriper på en triviell måte omgå de helt hvis du kjører Java 15, 16, 17, eller 18 på en versjon før April 2022 Critical Patch Update. Er du i tvil om du bruker dette, så er det tryggest å anta at du gjør det.

Kilder