GitHub Advisoryadvisory · PyPI

GHSA-wvcv-832q-fjg7 RSA weakness in tslite-ng

HIGH Published 2020-12-21 Modified 2024-11-13 Official page ↗
Aliases
CVE-2020-26263
Ecosystem
PyPI
Packages
tlslite-ng
Severity
High
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
Weaknesses
CWE-326
Reviewed
2020-12-21

Affected packages

• PyPI tlslite-ng: < 0.7.6 → fixed in 0.7.6

Description

Impact The code that performs decryption and padding check in RSA PKCS#1 v1.5 decryption is data dependant. In particular, code in current (as of 0.8.0-alpha38) master https://github.com/tlsfuzzer/tlslite-ng/blob/0812ed60860fa61a6573b2c0e18771414958f46d/tlslite/utils/rsakey.py#L407-L441 and code in 0.7.5 branch https://github.com/tlsfuzzer/tlslite-ng/blob/acdde3161124d6ae37c506b3476aea9996d12e97/tlslite/utils/rsakey.py#L394-L425 has multiple ways in which it leaks information (for one, it aborts as soon as the plaintext doesn't start with 0x00, 0x02) about the decrypted ciphertext (both the bit length of the decrypted message as well as where the first unexpected byte lays). All TLS servers that enable RSA key exchange as well as applications that use the RSA decryption API directly are vulnerable. All previous versions of tlslite-ng are vulnerable. Patches The patches to fix it are proposed in https://github.com/tlsfuzzer/tlslite-ng/pull/438 https://github.com/tlsfuzzer/tlslite-ng/pull/439 Note: the patches depend on Python processing the individual bytes in side-channel free manner, this is known to not be the case: https://securitypitfalls.wordpress.com/2018/08/03/constant-time-compare-in-python/ As such, users that require side-channel resistance are recommended to use different TLS implementations, as stated in the security policy of tlslite-ng. Workarounds There is no way to workaround this issue. References https://securitypitfalls.wordpress.com/2018/08/03/constant-time-compare-in-python/ For more information If you have any questions or comments about this advisory please open an issue in tlslite-ng.

Related

Alias · CVE (1)

  • CVE-2020-26263 tlslite-ng is an open source python library that implements SSL and TLS cryptographic protocols. vulnerability

Weakness · CWE (1)

  • CWE-326 Inadequate Encryption Strength weakness

References