Python oic is a Python OpenID Connect implementation. In Python oic before version 1.2.1, there are several related cryptographic issues…
GitHub_M·CWE-325·Published 2020-12-02
Python oic is a Python OpenID Connect implementation. In Python oic before version 1.2.1, there are several related cryptographic issues affecting client implementations that use the library. The issues are: 1) The IdToken signature algorithm was not checked automatically, but only if the expected algorithm was passed in as a kwarg. 2) JWA `none` algorithm was allowed in all flows. 3) oic.consumer.Consumer.parse_authz returns an unverified IdToken. The verification of the token was left to the discretion of the implementator. 4) iat claim was not checked for sanity (i.e. it could be in the future). These issues are patched in version 1.2.1.
Python oic is a Python OpenID Connect implementation. In Python oic before version 1.2.1, there are several related cryptographic issues affecting client implementations that use the library. The issues are: 1) The IdToken signature algorithm was not checked automatically, but only if the expected algorithm was passed in as a kwarg. 2) JWA `none` algorithm was allowed in all flows. 3) oic.consumer.Consumer.parse_authz returns an unverified IdToken. The verification of the token was left to the discretion of the implementator. 4) iat claim was not checked for sanity (i.e. it could be in the future). These issues are patched in version 1.2.1.
Python oic is a Python OpenID Connect implementation. In Python oic before version 1.2.1, there are several related cryptographic issues affecting client implementations that use the library. The issues are: 1) The IdToken signature algorithm was not checked automatically, but only if the expected algorithm was passed in as a kwarg. 2) JWA `none` algorithm was allowed in all flows. 3) oic.consumer.Consumer.parse_authz returns an unverified IdToken. The verification of the token was left to the discretion of the implementator. 4) iat claim was not checked for sanity (i.e. it could be in the future). These issues are patched in version 1.2.1.
### Impact * Client implementations using this library ### Issues 1) The IdToken signature algorithm was not checked automatically, but only if the expected algorithm was passed in as a kwarg. 2) JWA `none` algorithm was allowed in all flows. 3) `oic.consumer.Consumer.parse_authz` returns an unverified IdToken. The verification of the token was left to the discretion of the implementator. 4) `iat` claim was not checked for sanity (i.e. it could be in the future) ### Patches 1) IdToken signature is now always checked. 2) JWA `none` algorithm is now allowed only if using the `response_type` `code` 3) IdToken verification is now done automatically. 4) `iat` claim is now checked for sanity.
Python oic es una implementación de Python OpenID Connect. En Python oic versiones anteriores a 1.2.1, se presentan varios problemas criptográficos relacionados que afectan las implementaciones de los clientes que usan la biblioteca. Los problemas son: 1) El algoritmo de firma IdToken no se comprobó automáticamente, sino solo si el algoritmo esperado era pasado como un kwarg. 2) Se permitió el algoritmo JWA "none" en todos los flujos. 3) oic.consumer.Consumer.parse_authz devuelve un IdToken no verificado. La comprobación del token se dejó a discreción del implementador. 4) el reclamo de iat no se comprobó por sanidad (es decir, podría ser en el futuro). Estos problemas están parcheados en la versión 1.2.1
| Version | Type | Source | Base | Exp | Impact | Vector |
|---|---|---|---|---|---|---|
| 2.0 | Primary | NVD | 4.9 | 6.8 | 4.9 | AV:N/AC:M/Au:S/C:P/I:P/A:N |
| 3.1 | Primary | cve.org | 6.8 | — | — | CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N |
| 3.1 | Primary | cve.org | 6.8 | — | — | CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N |
| 3.1 | Primary | NVD | 6.8 | 1.6 | 5.2 | CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N |
| 3.1 | Secondary | GHSA | 6.8 | — | — | CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N |
| 3.1 | Secondary | NVD | 6.8 | 1.6 | 5.2 | CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N |
| 4.0 | Secondary | GHSA | 7.6 | — | — | CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N |