В ядре Linux устранена следующая уязвимость:
трассировка: привязанные строки синтетических полей с помощью seq_buf
Помощники синтетических полей создают префиксное имя синтетической переменной и
сгенерированная команда hist в фиксированных буферах MAX_FILTER_STR_VAL.
текущий код добавляет эти строки с помощью необработанной функции strcat(), поэтому длинные списки ключей,
имена полей или сохраненные фильтры могут работать после окончания промежуточного этапа.
буферы.
Создайте обе строки с помощью seq_buf и распространите -E2BIG, если
имя синтетической переменной или сгенерированная команда превышает
MAX_FILTER_STR_VAL. Это сохраняет существующее ограничение на стороне трассировки, в то время как
использование помощника, предназначенного для построения ограниченных команд.
[ sdr: перемещена структура seq_buf *s для форматирования перевернутого рождественского дерева]
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: tracing: Bound synthetic-field strings with seq_buf The synthetic field helpers build a prefixed synthetic variable name and a generated hist command in fixed MAX_FILTER_STR_VAL buffers. The current code appends those strings with raw strcat(), so long key lists, field names, or saved filters can run past the end of the staging buffers. Build both strings with seq_buf and propagate -E2BIG if either the synthetic variable name or the generated command exceeds MAX_FILTER_STR_VAL. This keeps the existing tracing-side limit while using the helper intended for bounded command construction. [ sdr: Moved struct seq_buf *s for upside-down x-mas tree formatting ]