В ядре Linux устранена следующая уязвимость: ax25: Исправлен дисбаланс счетчика ссылок для входящих соединений. При высвобождении сокета в …
В ядре Linux устранена следующая уязвимость: ax25: Исправлен дисбаланс счетчика ссылок для входящих соединений. При высвобождении сокета в ax25_release() мы вызываем netdev_put() для уменьшения счетчика ссылок на связанное устройство ax.25. Однако путь выполнения для принятия входящего соединения никогда не вызывает netdev_hold(). Этот дисбаланс приводит к ошибкам счетчика ссылок и, в конечном итоге, к сбоям ядра. Типичная трассировка вызовов для вышеописанной ситуации начинается с одной из следующих ошибок: refcount_t: decrement hit 0; leaking memory. refcount_t: underflow; use-after-free. И затем имеет трассировку, подобную следующей: Call Trace: <TASK> ? show_regs+0x64/0x70 ? __warn+0x83/0x120 ? refcount_warn_saturate+0xb2/0x100 ? report_bug+0x158/0x190 ? prb_read_valid+0x20/0x30 ? handle_bug+0x3e/0x70 ? exc_invalid_op+0x1c/0x70 ? asm_exc_invalid_op+0x1f/0x30 ? refcount_warn_saturate+0xb2/0x100 ? refcount_warn_saturate+0xb2/0x100 ax25_release+0x2ad/0x360 __sock_release+0x35/0xa0 sock_close+0x19/0x20 [...] При перезагрузке (или любой попытке удалить интерфейс) ядро застревает в бесконечном цикле: unregister_netdevice: waiting for ax0 to become free. Usage count = 0 Этот патч исправляет эти проблемы, обеспечивая вызов netdev_hold() и ax25_dev_hold() для новых соединений в ax25_accept(). Это делает логику, приводящую к ax25_accept(), соответствующей логике для ax25_bind(): в обоих случаях мы увеличиваем счетчик ссылок, который в конечном итоге уменьшается в ax25_release().
Продукт использует счётчик ссылок для управления ресурсом, однако не обновляет счётчик ссылок или обновляет его некорректно.
https://cwe.mitre.org/data/definitions/911.html →Открыть в коллекции CWE →| Продукт | Вендор | Статус |
|---|---|---|
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux | Отслеживается | |
| linux-5.15 | Отслеживается | |
| linux-5.15 | Отслеживается | |
| linux-6.1 | Отслеживается | |
| linux-6.1 | Отслеживается | |
| linux-6.1 | Отслеживается | |
| linux-allwinner-5.19 | Отслеживается | |
| linux-aws | Отслеживается | |
| linux-aws | Отслеживается | |
| linux-aws | Отслеживается | |
| linux-aws | Отслеживается |