{"id":"CVE-2020-26244","aliases":["EUVD-2020-0119","GHSA-4fjv-pmhg-3rfg","PYSEC-2020-69","openSUSE-SU-2024:11244-1","openSUSE-SU-2024:14150-1","openSUSE-SU-2026:12021-1"],"status":"published","title":"Cryptographic issues in Python oic","description":"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.","severity":{"version":"3.1","score":6.8,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-11","score":0.00832,"percentile":0.58051,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-325","CWE-347"],"published":"2020-12-02T20:05:15Z","modified":"2026-10-20T10:52:56Z","fixes":[{"ecosystem":"PyPI","package":"oic","fixed_in":["1.2.1"],"sources":["ghsa","osv"]},{"ecosystem":"openSUSE:Tumbleweed","package":"python-oic","fixed_in":["1.5.0-1.8","1.7.0-2.4"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"PyPI","package":"oic","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.2.1"}]}]},{"source":"osv","ecosystem":"PyPI","package":"oic","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.2.1"}]}],"versions":["0.10.0.0","0.11.0.0","0.11.0.1","0.12.0","0.13.0","0.13.1","0.14.0","0.15.0","0.15.1","0.4.0","0.5.0","0.6.0","0.7.0","0.7.2","0.7.3","0.7.4","0.7.5","0.7.6","0.7.7","0.7.8","0.8.1","0.8.2","0.8.3","0.8.4.0","0.8.5.0","0.9.0.0","0.9.1.0","0.9.4.0","0.9.5.0","1.0.0","1.0.1","1.1.0","1.1.1","1.1.2","1.2.0"]},{"source":"osv","ecosystem":"PyPI","package":"oic","ranges":[{"type":"GIT","events":[{"introduced":"0"},{"fixed":"62f8d753fa17c8b1f29f8be639cf0b33afb02498"}]},{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.2.1"}]}],"versions":["0.4.0","0.5.0","0.6.0","0.7.0","0.7.2","0.7.3","0.7.4","0.7.5","0.7.6","0.7.7","0.7.8","0.8.1","0.8.2","0.8.3","0.8.4.0","0.8.5.0","0.9.0.0","0.9.1.0","0.9.4.0","0.9.5.0","0.10.0.0","0.11.0.0","0.11.0.1","0.12.0","0.13.0","0.13.1","0.14.0","0.15.0","0.15.1","1.0.0","1.0.1","1.1.0","1.1.1","1.1.2","1.2.0"]},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"python-oic","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.5.0-1.8"}]}]},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"python-oic","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.7.0-2.4"}]}]}],"products":[{"vendor":"openidc","product":"pyoidc"},{"vendor":"python_openid_connect_project","product":"python_openid_connect"}],"references":[{"url":"https://github.com/OpenIDC/pyoidc/security/advisories/GHSA-4fjv-pmhg-3rfg","tags":["x_refsource_CONFIRM","x_transferred","Third Party Advisory","advisory","web"]},{"url":"https://pypi.org/project/oic/","tags":["x_refsource_MISC","x_transferred","Product","Vendor Advisory","package"]},{"url":"https://github.com/OpenIDC/pyoidc/commit/62f8d753fa17c8b1f29f8be639cf0b33afb02498","tags":["x_refsource_MISC","x_transferred","Patch","Third Party Advisory","fix","web"]},{"url":"https://github.com/OpenIDC/pyoidc/releases/tag/1.2.1","tags":["x_refsource_MISC","x_transferred","Third Party Advisory","advisory","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2020-26244","tags":["advisory"]},{"url":"https://github.com/pypa/advisory-database/tree/main/vulns/oic/PYSEC-2020-69.yaml","tags":["web"]},{"url":"https://pypi.org/project/oic","tags":["web"]},{"url":"https://github.com/advisories/GHSA-4fjv-pmhg-3rfg"},{"url":"https://github.com/OpenIDC/pyoidc","tags":["package"]},{"url":"","tags":["advisory"]},{"url":"https://www.suse.com/security/cve/CVE-2020-26244","tags":["web"]}],"sources":{"cve":[{"id":"CVE-2020-26244","title":"Cryptographic issues in Python oic","description":"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.","status":"published","published":"2020-12-02T20:05:15Z","modified":"2024-08-04T15:56:04.228Z","cvss":[{"version":"3.1","score":6.8,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N","level":"medium","assessor":"cna"}],"cwes":["CWE-325","CWE-347"],"updated_at":"2026-11-02T14:35:46.129376Z"}],"euvd":[{"id":"EUVD-2020-0119","description":"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.","status":"published","published":"2020-12-02T20:05:15Z","modified":"2024-08-04T15:56:04Z","cvss":[{"version":"3.1","score":6.8,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N","level":"medium"}],"updated_at":"2026-11-03T03:07:15.15938Z"}],"ghsa":[{"id":"GHSA-4fjv-pmhg-3rfg","title":"Multiple cryptographic issues in Python oic","description":"### Impact\n* Client implementations using this library\n\n### Issues\n1) The IdToken signature algorithm was not checked automatically, but only if the expected algorithm was passed in as a kwarg.\n2) JWA `none` algorithm was allowed in all flows.\n3) `oic.consumer.Consumer.parse_authz` returns an unverified IdToken. The verification of the token was left to the discretion of the implementator.\n4) `iat` claim was not checked for sanity (i.e. it could be in the future)\n\n### Patches\n1) IdToken signature is now always checked.\n2) JWA `none` algorithm is now allowed only if using the `response_type` `code`\n3) IdToken verification is now done automatically.\n4) `iat` claim is now checked for sanity.","status":"published","published":"2020-12-04T16:47:12Z","modified":"2024-10-07T21:07:23Z","cvss":[{"version":"4.0","score":7.6,"vector":"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","level":"high"},{"version":"3.1","score":6.8,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N","level":"medium"}],"cwes":["CWE-325","CWE-347"],"updated_at":"2026-11-02T14:38:08.742903Z"}],"nvd":[{"id":"CVE-2020-26244","description":"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.","status":"published","published":"2020-12-02T20:15:13.43Z","modified":"2026-06-17T03:07:54.433Z","cvss":[{"version":"3.1","score":6.8,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N","level":"medium","assessor":"secondary"},{"version":"3.1","score":6.8,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N","level":"medium","assessor":"primary"},{"version":"2.0","score":4.9,"vector":"AV:N/AC:M/Au:S/C:P/I:P/A:N","level":"medium","assessor":"primary"}],"cwes":["CWE-325","CWE-347"],"updated_at":"2026-11-02T14:06:25.394006Z"}],"osv":[{"id":"CVE-2020-26244","description":"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.","status":"published","published":"2020-12-02T20:15:13.43Z","modified":"2026-10-20T10:52:56.449413145Z","cvss":[{"version":"3.1","score":6.8,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N","level":"medium"}],"updated_at":"2026-11-02T15:44:15.879068Z"},{"id":"GHSA-4fjv-pmhg-3rfg","title":"Multiple cryptographic issues in Python oic","description":"### Impact\n* Client implementations using this library\n\n### Issues\n1) The IdToken signature algorithm was not checked automatically, but only if the expected algorithm was passed in as a kwarg.\n2) JWA `none` algorithm was allowed in all flows.\n3) `oic.consumer.Consumer.parse_authz` returns an unverified IdToken. The verification of the token was left to the discretion of the implementator.\n4) `iat` claim was not checked for sanity (i.e. it could be in the future)\n\n### Patches\n1) IdToken signature is now always checked.\n2) JWA `none` algorithm is now allowed only if using the `response_type` `code`\n3) IdToken verification is now done automatically.\n4) `iat` claim is now checked for sanity.","status":"published","published":"2020-12-04T16:47:12Z","modified":"2026-07-08T05:59:40.468770443Z","cvss":[{"version":"3.1","score":6.8,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N","level":"medium"},{"version":"4.0","score":7.6,"vector":"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","level":"high"}],"cwes":["CWE-325","CWE-347"],"updated_at":"2026-11-02T15:46:36.782754Z"},{"id":"openSUSE-SU-2024:11244-1","title":"python36-oic-1.2.1-1.2 on GA media","description":"These are all security issues fixed in the python36-oic-1.2.1-1.2 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2024-06-15T00:00:00Z","modified":"2026-02-04T03:19:44.166121Z","updated_at":"2026-11-02T16:58:34.894275Z"},{"id":"openSUSE-SU-2024:14150-1","title":"python310-oic-1.5.0-1.8 on GA media","description":"These are all security issues fixed in the python310-oic-1.5.0-1.8 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2024-07-12T00:00:00Z","modified":"2026-02-04T02:50:12.752655Z","updated_at":"2026-11-02T16:58:36.662953Z"},{"id":"openSUSE-SU-2026:12021-1","title":"python313-oic-1.7.0-2.4 on GA media","description":"These are all security issues fixed in the python313-oic-1.7.0-2.4 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2026-10-04T00:00:00Z","modified":"2026-10-05T10:15:35.007769699Z","updated_at":"2026-11-02T16:58:40.245664Z"},{"id":"PYSEC-2020-69","description":"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.","status":"published","published":"2020-12-02T20:15:00Z","modified":"2023-11-08T04:03:15.948349Z","updated_at":"2026-11-02T15:52:52.682031Z"}]}}
