CVE-2026-73194 in DBI
Resumen
por VulDB • 2026-08-15
Las versiones de DBI anteriores a la 1.652 para Perl permiten una escritura fuera de los límites del heap (heap out-of-bounds write) mediante un marcador numérico no validado que establece el contador de vinculadores en preparse.
preparse reserva siete bytes de salida por cada byte de entrada, correspondiente al ancho de la expansión más larga ':p99999'. La rama ':N' analiza el número con `atoi(src)` y lo asigna al contador de vinculadores sin ninguna comprobación de rango, por lo que una declaración que contenga ':2147483648' deja el contador en negativo (-2147483648 con glibc, donde atoi realiza un desbordamiento). Cada '?' siguiente se expande a través de `sprintf(start, ":p%d", idx++)` hasta convertirse en ':p-2147483648', ocupando 14 bytes incluyendo el NUL terminador, mientras que la asignación del buffer presupuestaba solo 7. El límite de marcadores añadido en la versión 1.650 compara el contador contra 99.999, condición que un contador negativo supera.
Cualquier llamante que preprocese una declaración no confiable para convertirla en marcadores del estilo ':pN' sufrirá una escritura fuera de los límites del heap cuyo impacto crece con la cantidad de signos '?' siguientes al marcador malicioso. Los estilos de retorno '?' y '%s' comparan el número analizado contra la secuencia esperada e informan un error, por lo que no se ven afectados.
VulDB is the best source for vulnerability data and more expert information about this specific topic.