A flaw was found in jwcrypto. A remote attacker can send a specially crafted JSON Web Encryption (JWE) token containing numerous period delimiters. This malformed token can force the JWE.deserialize() function to allocate excessive memory, leading to a MemoryError. This issue results in a denial of service (DoS) for services that process untrusted JWE values.
A flaw was found in jwcrypto. When verifying a General JSON Serialization JWS using a JWKSet, the library does not correctly apply the current signature kid header when selecting the verification key. The root cause is located in jwcrypto/jws.py, where the code incorrectly evaluates the joseheader as a dictionary when it is actually a list for General JSON JWS objects. Consequently, the library may iterate through every key in the supplied JWKSet and accept a signature made by a different key than the one identified by the kid header.
An attacker who possesses a valid signing key within the application's trusted JWKSet can exploit this flaw to bypass kid-based authorization bindings. This allows the attacker to perform actions such as impersonating other tenants, accessing unauthorized data, or escalating privileges in applications that rely on the kid claim for security decisions.
A flaw was found in jwcrypto. When verifying a General JSON Serialization JWS using a JWKSet, the library does not correctly apply the current signature kid header when selecting the verification key. The root cause is located in jwcrypto/jws.py, where the code incorrectly evaluates the joseheader as a dictionary when it is actually a list for General JSON JWS objects. Consequently, the library may iterate through every key in the supplied JWKSet and accept a signature made by a different key than the one identified by the kid header.
An attacker who possesses a valid signing key within the application's trusted JWKSet can exploit this flaw to bypass kid-based authorization bindings. This allows the attacker to perform actions such as impersonating other tenants, accessing unauthorized data, or escalating privileges in applications that rely on the kid claim for security decisions.
The Rsa15 class in the RSA 1.5 algorithm implementation in jwa.py in jwcrypto before 0.3.2 lacks the Random Filling protection mechanism, which makes it easier for remote attackers to obtain cleartext data via a Million Message Attack (MMA).