Ad

CVE-2026-72155

NONE EPSS 0.21%
Обновлено 23 августа 2026
Linux
Параметр Значение
Поставщик Linux
Публичный эксплойт Нет

В ядре Linux устранена следующая уязвимость: mtd: spi-nor: swp: Улучшение взаимодействия с пользователем при блокировке. В случае блокировки первого блока (или нескольких первых блоков), Если пользователь хочет полностью разблокировать устройство, у него есть две возможности: - либо просит разблокировать всё устройство, и это работает; - или он просит разблокировать только те блоки, которые в данный момент заблокированы, что терпит неудачу. Это не удается, поскольку условия «can_be_top» и «can_be_bottom» правда.

Ведь в данном случае мы разблокируем все, поэтому бит ТБ не срабатывает. дело. Однако в текущей реализации use_top будет иметь значение true (поскольку это любимый вариант) и lock_len, который на практике должен быть уменьшено до 0, установлено значение «nor->params->size - (ofs + len)», что положительное число. Это неправильно.

Самый простой способ — просто добавить дополнительное условие. В пути unlock() если мы сможем добиться одинакового результата с обеих сторон, это значит, что мы разблокируем все, а lock_len должно быть просто 0. Для пояснения добавлен комментарий эта логика.

Показать оригинальное описание (EN)

In the Linux kernel, the following vulnerability has been resolved: mtd: spi-nor: swp: Improve locking user experience In the case of the first block being locked (or the few first blocks), if the user want to fully unlock the device it has two possibilities: - either it asks to unlock the entire device, and this works; - or it asks to unlock just the block(s) that are currently locked, which fails. It fails because the conditions "can_be_top" and "can_be_bottom" are true. Indeed, in this case, we unlock everything, so the TB bit does not matter. However in the current implementation, use_top would be true (as this is the favourite option) and lock_len, which in practice should be reduced down to 0, is set to "nor->params->size - (ofs + len)" which is a positive number. This is wrong. An easy way is to simply add an extra condition. In the unlock() path, if we can achieve the same result from both sides, it means we unlock everything and lock_len must simply be 0. A comment is added to clarify that logic.