studybuffalo / django-flexible-subscriptions

A subscription and recurrent billing application for Django.
GNU General Public License v3.0
249 stars 57 forks source link

[Security] Bump cryptography from 3.1 to 3.3.2 #256

Open dependabot-preview[bot] opened 3 years ago

dependabot-preview[bot] commented 3 years ago

Bumps cryptography from 3.1 to 3.3.2. This update includes security fixes.

Vulnerabilities fixed

Sourced from The GitHub Security Advisory Database.

Symmetrically encrypting large values can lead to integer overflow

Impact

When certain sequences of update() calls with large values (multiple GBs) for symetric encryption or decryption occur, it's possible for an integer overflow to happen, leading to mishandling of buffers.

Patches

This is patched in version 3.3.2 and newer.

References

Affected versions: >= 3.1, < 3.3.2

Sourced from The GitHub Security Advisory Database.

RSA decryption vulnerable to Bleichenbacher timing vulnerability

Impact

RSA decryption was vulnerable to Bleichenbacher timing vulnerabilities, which would impact people using RSA decryption in online scenarios.

Patches

This is fixed in cryptography 3.2. https://github.com/pyca/cryptography/commit/58494b41d6ecb0f56b7c5f05d5f5e3ca0320d494 is the resolving commit.

Affected versions: < 3.2

Changelog

Sourced from cryptography's changelog.

3.3.2 - 2021-02-07

  • SECURITY ISSUE: Fixed a bug where certain sequences of update() calls when symmetrically encrypting very large payloads (>2GB) could result in an integer overflow, leading to buffer overflows. CVE-2020-36242

3.3.1 - 2020-12-09

  • Re-added a legacy symbol causing problems for older pyOpenSSL users.

3.3 - 2020-12-08

  • BACKWARDS INCOMPATIBLE: Support for Python 3.5 has been removed due to low usage and maintenance burden.
  • BACKWARDS INCOMPATIBLE: The ~cryptography.hazmat.primitives.ciphers.modes.GCM and ~cryptography.hazmat.primitives.ciphers.aead.AESGCM now require 64-bit to 1024-bit (8 byte to 128 byte) initialization vectors. This change is to conform with an upcoming OpenSSL release that will no longer support sizes outside this window.
  • BACKWARDS INCOMPATIBLE: When deserializing asymmetric keys we now raise ValueError rather than UnsupportedAlgorithm when an unsupported cipher is used. This change is to conform with an upcoming OpenSSL release that will no longer distinguish between error types.
  • BACKWARDS INCOMPATIBLE: We no longer allow loading of finite field Diffie-Hellman parameters of less than 512 bits in length. This change is to conform with an upcoming OpenSSL release that no longer supports smaller sizes. These keys were already wildly insecure and should not have been used in any application outside of testing.
  • Updated Windows, macOS, and manylinux wheels to be compiled with OpenSSL 1.1.1i.
  • Python 2 support is deprecated in cryptography. This is the last release that will support Python 2.
  • Added the ~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey.recover_data_from_signature function to ~cryptography.hazmat.primitives.asymmetric.rsa.RSAPublicKey for recovering the signed data from an RSA signature.

3.2.1 - 2020-10-27

  • Disable blinding on RSA public keys to address an error with some versions of OpenSSL.

3.2 - 2020-10-25

  • SECURITY ISSUE: Attempted to make RSA PKCS#1v1.5 decryption more constant time, to protect against Bleichenbacher vulnerabilities. Due to limitations imposed by our API, we cannot completely mitigate this vulnerability and a future release will contain a new API which is designed to be resilient to these for contexts where it is required. Credit to Hubert Kario for reporting the issue. CVE-2020-25659
  • Support for OpenSSL 1.0.2 has been removed. Users on older version of OpenSSL will need to upgrade.
  • Added basic support for PKCS7 signing (including SMIME) via ~cryptography.hazmat.primitives.serialization.pkcs7.PKCS7SignatureBuilder.

3.1.1 - 2020-09-22

  • Updated Windows, macOS, and manylinux wheels to be compiled with OpenSSL 1.1.1h.
Commits
  • 82b6ce2 correct buffer overflows cause by integer overflow in openssl (#5747)
  • 1ff0d50 re-add Cryptography_HAS_TLSEXT_HOSTNAME and bump for 3.3.1 (#5625)
  • 7e8fff7 Prepare for 3.3 release (#5603)
  • b5278c9 Fixed DH tests for latest CentOS FIPS OpenSSL (#5604)
  • 6693d55 Add support for RSA signature recovery (#5573)
  • 8686d52 Document that PKCS1v1.5 is not constant time (#5600)
  • 1be144a bump cffi minimum version to help out pyopenssl (#5598)
  • 96f2d96 remove legacy debugging code from setup.py (#5597)
  • 2660f93 Document that Firefox doesn't support unencrypted pkcs12 (#5596)
  • a209669 Added tls bindings for new OpenSSL APIs (#5595)
  • Additional commits viewable in compare view


Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Pull request limits (per update run and/or open at any time) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired)