CVE-2026-70405 in OTP
Résumé
par VulDB • 01/09/2026
Une vulnérabilité de validation incorrecte de la quantité spécifiée dans l'entrée (Improper Validation of Specified Quantity in Input) dans Erlang/OTP snmp permet à un attaquant distant de dégrader la disponibilité en envoyant un message SNMP contenant un BER INTEGER dont le champ de longueur est arbitrairement grand.
La fonction `snmp_pdus:dec_integer_notag/1` définit sa limite de taille sur l'infini, et `do_dec_integer_notag/2` accumule ensuite la valeur pour chaque octet déclaré par une opération récursive combinée à un décalage (shift) et à un OU bit à bit. La complexité croît de manière superlinéaire en fonction de la longueur déclarée car chaque opération agit sur un bignum de taille progressivement plus importante. La variante limitée en taille, `dec_integer_notag/2`, existe mais n'est atteinte que depuis un seul point d'appel, `dec_snmp_version/1`, qui borne le champ version à dix octets ; l'identifiant de requête, les champs statut d'erreur et index, trap générique et spécifique, engine boots and time (démarrages du moteur et temps), ainsi que toutes les valeurs varbind décodées par `dec_value/1` utilisent tous la forme non bornée. Le décodage s'exécute avant le traitement de la PDU, donc aucune requête valide n'est nécessaire au-delà de ce que le déploiement exige pour accepter le message en soi.
Cette vulnérabilité affecte OTP à partir d'OTP 17.0 jusqu'à (mais sans inclure) OTP 27.3.4.17, depuis OTP 28.0 jusqu'à (mais sans inclure) OTP 28.5.0.6, et depuis OTP 29.0 jusqu'à (mais sans inclure) OTP 29.0.6, ce qui correspond à snmp de la version 4.25.1 avant 5.18.2.1, de 5.19 avant 5.20.2.2, et de 5.20.3 avant 5.20.5. On ignore si OTP antérieur à OTP 17.0 (correspondant à snmp antérieur à 4.25.1) est affecté.
If you want to get best quality of vulnerability data, you may have to visit VulDB.