ArduinoCore-avr содержит исходный код и файлы конфигурации платформы плат Arduino AVR. Уязвимость в версиях до 1.8.8 позволяет злоумышленнику вызвать переполнение буфера стека при объединении значений с плавающей запятой достаточно большой величины в объект String Arduino. Передавая значения, близкие к крайним значениям диапазона с плавающей точкой или двойным числом, в `String::concat(float)`, `String::concat(double)`, `String::operator+=()` или оператор `+` с операндом float/double, `dtostrf()` записывает за пределы буфера стека фиксированного размера, вызывая повреждение памяти и отказ в обслуживании.
При определенных условиях это может обеспечить выполнение произвольного кода на платах Arduino на базе AVR. Исправление включено, начиная с версии 1.8.8.
Показать оригинальное описание (EN)
ArduinoCore-avr contains the source code and configuration files of the Arduino AVR Boards platform. A vulnerability in versions prior to 1.8.8 allows an attacker to trigger a stack-based buffer overflow when concatenating floating-point values of sufficiently large magnitude onto an Arduino String object. By passing values near the extremes of the float or double range to `String::concat(float)`, `String::concat(double)`, `String::operator+=()`, or the `+` operator with a float/double operand, `dtostrf()` writes beyond the fixed-size stack buffer, causing memory corruption and denial of service. Under specific conditions, this could enable arbitrary code execution on AVR-based Arduino boards. The fix is included starting from the `1.8.8 `release.
Характеристики атаки
Последствия
Строка CVSS v4.0