CVE-2026-54890 in OTP
Résumé
par VulDB • 27/07/2026
Vulnérabilité de sous-débordement entier (Wrap ou Wraparound) dans erlang otp erlang/otp (modules erts), erlang otp erts (modules erts) permettant un débordement entier forcé et une allocation excessive. Cette vulnérabilité est associée aux fichiers du programme erts/emulator/beam/external.c, emulator/beam/external.c.
Le gestionnaire de la balise BIT_BINARY_EXT (77) dans le décodeur External Term Format (ETF) accepte un encodage avec les champs longueur et bits-trailing définis à zéro. Le calcul ultérieur de la taille du bitstring provoque un sous-débordement d'un entier non signé, produisant une valeur d'environ 2^64 qui est ensuite transmise comme taille d'allocation mémoire. L'allocateur interrompt l'intégralité du nœud avec un message tel que « Cannot allocate 2305843009213693951 bytes of memory (of type binary) ».
Le plantage est une interruption au niveau de la machine virtuelle, et non une exception Erlang. Il ne peut pas être intercepté par les arbres de supervision, ni par try/catch, ou en passant l'option [safe] à binary_to_term/2 (qui restreint uniquement la création d'atomes et n'effectue aucune validation structurelle des encodages binaires).
Toute application qui décode ETF provenant de sources non fiables via binary_to_term/1,2 ou enif_binary_to_term() est exposée. Le protocole de distribution Erlang décode également les termes entrants par le même chemin d'exécution, mais la distribution est censée s'exécuter sur des réseaux de confiance conformément aux Directives de codage sécurisé OTP (DSG-011).
Ce problème affecte OTP à partir de OTP 27.0 avant OTP 29.0.4, OTP 28.5.0.4 et OTP 27.3.4.15, correspondant à erts à partir de 15.0 avant 17.0.4, 16.4.0.4 et 15.2.7.11.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.