
Cloud Vulnerability DB
Eine von der Community geführte Datenbank für Schwachstellen
RSACrypt::decryptWithRSAOAEP(), where the RSA-OAEP and RSA-OAEP-256 key encryption algorithms (and the experimental RSA-OAEP-384 and RSA-OAEP-512) end, did not require the JWE Encrypted Key to be a single RSAES-OAEP ciphertext. It split the value into blocks of the modulus length, decrypted each block with the private key and returned the concatenation of the plaintexts; only the total length was checked afterwards, against the CEK size of the enc header parameter. RSAES-OAEP decryption takes exactly one ciphertext of the modulus length, and the RSA1_5 path of the same class already enforced it.
Anyone holding the recipient's public key can build blocks that decrypt to bytes of their choice, and place the encrypted key of a captured JWE among them. AES-CBC-HMAC content encryption takes the first half of the CEK as the HMAC key and checks the tag before anything else: with such an enc, the attacker chooses the whole HMAC key but one byte, which comes from the captured CEK. If the application reveals whether a token was decrypted, the attacker finds that byte with at most 65,536 tokens, then the next ones, and finally reads the content of the captured JWE. With RSA-OAEP-256, a captured A256GCM token and A256CBC-HS512 accepted by the application, the 32-byte CEK was recovered with about a million tokens and the captured payload decrypted with it.
The same loop has two more effects:
Applications that decrypt JWEs with RSA-OAEP or RSA-OAEP-256, or with the experimental RSA-OAEP-384 and RSA-OAEP-512.
The key recovery also requires that the application accepts an AES-CBC-HMAC content encryption algorithm whose HMAC key is at least as long as the CEK of the captured token minus one byte: A256CBC-HS512 for 32-byte CEKs (A256GCM, A128CBC-HS256), A128CBC-HS256 or A192CBC-HS384 for 16- or 24-byte CEKs. Tokens encrypted with A192CBC-HS384 or A256CBC-HS512 are out of reach. The attacker needs the recipient's public key, a copy of the target JWE and a way to tell a decrypted token from a rejected one.
Applications that accept only AES-GCM content encryption are exposed to the malleability of the encrypted key and to the per-block cost, not to the key recovery. RSA1_5 is not affected.
Every release is affected: the loop dates from the initial commit.
RSA-OAEP decryption now handles a single block of the length of the modulus. An encrypted key longer than the modulus is rejected before any private key operation, with the same RuntimeException as any other invalid encrypted key. On encryption, the CEK is encrypted as a single block and is no longer split over several.
3.4.13 is the last release of the 3.x line, which has reached its end of life. Users of 3.x should plan the move to 4.x.
Compatibility. Tokens from conforming senders are decrypted as before. Three cases change:
InvalidArgumentException("Message too long") on encryption. This only happens with keys shorter than 2048 bits, for example RSA-OAEP-256 with a 1024-bit key and A256CBC-HS512 (62 bytes fit, 64 are needed), or the experimental RSA-OAEP-384 with a 1024-bit key and a CEK of more than 30 bytes. The tokens previously produced that way had an encrypted key of several blocks, which other implementations do not decrypt and which is no longer decrypted either;RuntimeException instead of a PHP warning followed by a TypeError.Until you upgrade, do not accept the AES-CBC-HMAC content encryption algorithms next to RSA-OAEP for decryption, or reject a token whose encrypted key is longer than the RSA modulus before decrypting it. Limiting the size of the tokens you accept bounds the per-block cost.
RSA1_5Reported by Anthropic's OSS Scanner (ANT-2026-18B9GZYU).
Quelle: NVD
Kostenlose Verwundbarkeitsbewertung
Bewerten Sie Ihre Cloudsicherheitspraktiken in 9 Sicherheitsbereichen, um Ihr Risikoniveau zu bewerten und Schwachstellen in Ihren Verteidigungen zu identifizieren.
Eine personalisierte Demo anfordern
"Die beste Benutzererfahrung, die ich je gesehen habe, bietet vollständige Transparenz für Cloud-Workloads."
"„Wiz bietet eine zentrale Oberfläche, um zu sehen, was in unseren Cloud-Umgebungen vor sich geht.“ "
"„Wir wissen, dass, wenn Wiz etwas als kritisch identifiziert, es auch wirklich kritisch ist.“"