Автопилот PX4 — это решение для управления полетом дронов. До версии 1.17.0-rc1 использование кучи после освобождения обнаруживалось в функции MavlinkShell::available(). Проблема вызвана состоянием гонки между потоком получателя MAVLink (который обрабатывает создание/уничтожение оболочки) и потоком отправителя телеметрии (который опрашивает оболочку на наличие доступных выходных данных).
Проблема может быть вызвана удаленно с помощью сообщений MAVLink SERIAL_CONTROL (ID 126), которые могут быть отправлены внешней наземной станцией или автоматическим сценарием. Эта уязвимость исправлена в версии 1.17.0-rc1.
Показать оригинальное описание (EN)
PX4 autopilot is a flight control solution for drones. Prior to 1.17.0-rc1, a heap-use-after-free is detected in the MavlinkShell::available() function. The issue is caused by a race condition between the MAVLink receiver thread (which handles shell creation/destruction) and the telemetry sender thread (which polls the shell for available output). The issue is remotely triggerable via MAVLink SERIAL_CONTROL messages (ID 126), which can be sent by an external ground station or automated script. This vulnerability is fixed in 1.17.0-rc1.
Характеристики атаки
Последствия
Строка CVSS v3.1
Тип уязвимости (CWE)
Уязвимые продукты 3
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Dronecode Px4_Drone_Autopilot
cpe:2.3:a:dronecode:px4_drone_autopilot:*:*:*:*:*:*:*:*
|
— |
1.17.0
|
|
Dronecode Px4_Drone_Autopilot
cpe:2.3:a:dronecode:px4_drone_autopilot:1.17.0:alpha1:*:*:*:*:*:*
|
— | — |
|
Dronecode Px4_Drone_Autopilot
cpe:2.3:a:dronecode:px4_drone_autopilot:1.17.0:beta1:*:*:*:*:*:*
|
— | — |