joserfc — это библиотека Python, которая обеспечивает реализацию нескольких стандартов подписи и шифрования объектов JSON (JOSE). В версии 1.6.2 и более ранних версиях уязвимость, связанная с исчерпанием ресурсов в joserfc, позволяет неаутентифицированному злоумышленнику вызвать отказ в обслуживании (DoS) через нехватку ресурсов ЦП. Когда библиотека расшифровывает токен веб-шифрования JSON (JWE) с использованием алгоритмов шифрования на основе пароля (PBES2), она считывает параметр p2c (счетчик PBES2) непосредственно из защищенного заголовка токена.
Этот параметр определяет количество итераций для функции получения ключа PBKDF2. Поскольку joserfc не проверяет и не связывает это значение, злоумышленник может указать чрезвычайно большое количество итераций (например, 2^31 - 1), заставляя сервер затрачивать огромные ресурсы ЦП на обработку одного токена. Эта уязвимость существует на уровне JWA и затрагивает все высокоуровневые интерфейсы дешифрования JWE и JWT, если алгоритмы PBES2 разрешены политикой приложения.
Показать оригинальное описание (EN)
joserfc is a Python library that provides an implementation of several JSON Object Signing and Encryption (JOSE) standards. In 1.6.2 and earlier, a resource exhaustion vulnerability in joserfc allows an unauthenticated attacker to cause a Denial of Service (DoS) via CPU exhaustion. When the library decrypts a JSON Web Encryption (JWE) token using Password-Based Encryption (PBES2) algorithms, it reads the p2c (PBES2 Count) parameter directly from the token's protected header. This parameter defines the number of iterations for the PBKDF2 key derivation function. Because joserfc does not validate or bound this value, an attacker can specify an extremely large iteration count (e.g., 2^31 - 1), forcing the server to expend massive CPU resources processing a single token. This vulnerability exists at the JWA layer and impacts all high-level JWE and JWT decryption interfaces if PBES2 algorithms are allowed by the application's policy.
Характеристики атаки
Последствия
Строка CVSS v3.1