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.
[
{
"id": "CVE-2020-7692-312a1766",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Line",
"source": "https://github.com/googleapis/google-oauth-java-client/commit/13433cd7dd06267fc261f0b1d4764f8e3432c824",
"target": {
"file": "google-oauth-client/src/main/java/com/google/api/client/auth/oauth2/AuthorizationCodeRequestUrl.java"
},
"digest": {
"line_hashes": [
"195563140868654700454647182656687804461",
"169388036470712834053717129206121476157",
"109592770034162502415730462695258249158",
"291863875414356063157555982922359620608",
"63068138136487779005737474085160361347",
"50838415285640221411339351163380518042",
"334147503316754085114173595866148615652"
],
"threshold": 0.9
}
},
{
"id": "CVE-2020-7692-62aba16b",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Function",
"source": "https://github.com/googleapis/google-oauth-java-client/commit/13433cd7dd06267fc261f0b1d4764f8e3432c824",
"target": {
"function": "newTokenRequest",
"file": "google-oauth-client/src/main/java/com/google/api/client/auth/oauth2/AuthorizationCodeFlow.java"
},
"digest": {
"function_hash": "223131593159604655242019714547271848587",
"length": 222.0
}
},
{
"id": "CVE-2020-7692-9b291978",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Function",
"source": "https://github.com/googleapis/google-oauth-java-client/commit/13433cd7dd06267fc261f0b1d4764f8e3432c824",
"target": {
"function": "newAuthorizationUrl",
"file": "google-oauth-client/src/main/java/com/google/api/client/auth/oauth2/AuthorizationCodeFlow.java"
},
"digest": {
"function_hash": "315684269081413273562479151131539123595",
"length": 108.0
}
},
{
"id": "CVE-2020-7692-ab49c168",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Line",
"source": "https://github.com/googleapis/google-oauth-java-client/commit/13433cd7dd06267fc261f0b1d4764f8e3432c824",
"target": {
"file": "google-oauth-client/src/main/java/com/google/api/client/auth/oauth2/AuthorizationCodeFlow.java"
},
"digest": {
"line_hashes": [
"145335430456887821112504490431376705730",
"261147572268857067391713032505330178826",
"94293774407633764589248811084143654443",
"306974072275319714904189806505890418537",
"195373273638089622357465714477755683648",
"143582365626582694549676686879050872316",
"35982197333432362338450317688754999184",
"173581750127703286834311549801474529323",
"239884562957666762204569485738466216823",
"309523710914867617333226149078252242696",
"201872806924557608694518849643819840972",
"280688973922198899502017555733762936651",
"307465762381002060664264502465180219066",
"273433781515530988166730953223186571358",
"326129273024627789809655426940670239893",
"19613895748115692521623189286359850589",
"97928050967569763582809617024686264662",
"285801789393290255661435517446502745310",
"150182913992717518735757355179557436928",
"35298681712895664772494572531168873222",
"62898923587569212777556491651809027556",
"286636697484369862416115579632077325584",
"275312682781299837422784013435883871983",
"236799805590228655493680935517696982743",
"95864685574760911843012878938628188523",
"85769186536745394458852846006428141018",
"64826208090148948681336257263609825961",
"259361149058338537118295120863203110217",
"201836131775798738077459676803036726814",
"51670820479606653270859390089711986567",
"283799097803102368638721382467890857503",
"282702642451197961643109867404085240378",
"95973180580841836180219260816705529118",
"316030037090075080657817976171308391838",
"199052163151311440632955172735873134907",
"226434861442211533957405778374908631488",
"25759255273023982628680052509980669509",
"95196179427073871640323263417090152957",
"127030213333399992345046525016605321567"
],
"threshold": 0.9
}
},
{
"id": "CVE-2020-7692-b143b2ca",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Line",
"source": "https://github.com/googleapis/google-oauth-java-client/commit/13433cd7dd06267fc261f0b1d4764f8e3432c824",
"target": {
"file": "google-oauth-client/src/test/java/com/google/api/client/auth/oauth2/AuthorizationCodeFlowTest.java"
},
"digest": {
"line_hashes": [
"74654163130357013979242689487760334885",
"278631187825219431990212539675047427175",
"302426018694034495734396660672966333659",
"277930600254868260984384435961427673001",
"312216280064775480619562312168521189158",
"151101452252056330194188347650644972296"
],
"threshold": 0.9
}
},
{
"id": "CVE-2020-7692-c5fbc358",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Function",
"source": "https://github.com/googleapis/google-oauth-java-client/commit/13433cd7dd06267fc261f0b1d4764f8e3432c824",
"target": {
"function": "AuthorizationCodeFlow",
"file": "google-oauth-client/src/main/java/com/google/api/client/auth/oauth2/AuthorizationCodeFlow.java"
},
"digest": {
"function_hash": "53166139971202735839467809529171193462",
"length": 905.0
}
}
]