Description
PKCE support is not implemented in accordance with the RFC for OAuth 2.0 for Native Apps. Without the use of PKCE, the authorization code returned by an authorization server is not enough to guarantee that the client that issued the initial authorization request is the one that will be authorized. An attacker is able to obtain the authorization code using a malicious app on the client-side and use it to gain authorization to the protected resource. This affects the package com.google.oauth-client:google-oauth-client before 1.31.0.
Remediation
References
https://github.com/googleapis/google-oauth-java-client/commit/13433cd7dd06267fc261f0b1d4764f8e3432c824
https://github.com/googleapis/google-oauth-java-client/issues/469
https://tools.ietf.org/html/rfc8252%23section-8.1
https://tools.ietf.org/html/rfc7636%23section-1
https://snyk.io/vuln/SNYK-JAVA-COMGOOGLEOAUTHCLIENT-575276
https://lists.apache.org/thread.html/r3db6ac73e0558d64f0b664f2fa4ef0a865e57c5de20f8321d3b48678%40%3Ccommits.druid.apache.org%3E
https://lists.apache.org/thread.html/reae8909b264d1103f321b9ce1623c10c1ddc77dba9790247f2c0c90f%40%3Ccommits.druid.apache.org%3E
Related Vulnerabilities
CVE-2018-20433 Vulnerability in maven package com.mchange:c3p0
CVE-2020-28469 Vulnerability in maven package org.webjars.bowergithub.es128:glob-parent
CVE-2023-26115 Vulnerability in npm package word-wrap
CVE-2022-21676 Vulnerability in npm package engine.io
CVE-2022-41915 Vulnerability in maven package io.netty:netty-codec