The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Уязвимость в libcue, приводящая к выполнению кода при загрузке файлов в GNOME, opennews (??), 09-Окт-23, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


8. "Уязвимость в libcue, приводящая к выполнению кода при загруз..."  +3 +/
Сообщение от Анонин (?), 09-Окт-23, 23:38 
Нафига они вообще использовали int для INDEX?
Разве cue sheet допускает там отрицательные индексы?
Чем им unsigned не подошел?
Ответить | Правка | Наверх | Cообщить модератору

13. "Уязвимость в libcue, приводящая к выполнению кода при загруз..."  +1 +/
Сообщение от Карлос Сношайтилис (ok), 09-Окт-23, 23:53 
Ошиблись. Идеальных разработчиков не бывает. Кто-то чаще лажает, кто-то реже.
Проблема в языке, который позволяет такие примитивные ошибки
Ответить | Правка | Наверх | Cообщить модератору

15. "Уязвимость в libcue, приводящая к выполнению кода при загруз..."  +1 +/
Сообщение от Аноним (7), 10-Окт-23, 00:11 
Так водителей всех идеальных тоже не бывает.
Зато как получат штраф в 5-10% от средней зарплаты, сразу улучшаются навыки и распознавания знаков, и внимательность для всех цветов светофоров.

Но да, заборчики отделяющие проезжую часть от тротуара тоже важны.

Ответить | Правка | Наверх | Cообщить модератору

36. "Уязвимость в libcue, приводящая к выполнению кода при загруз..."  +/
Сообщение от Аноним (36), 10-Окт-23, 06:13 
Чтобы устанавливать штрафы, нужно начать платить зарплату тем, чей код бесплатно используешь. А кому это надо?
Ответить | Правка | Наверх | Cообщить модератору

52. "Уязвимость в libcue, приводящая к выполнению кода при загруз..."  +/
Сообщение от Аноним (7), 10-Окт-23, 11:15 
Так многим и платят, посмотри сколько разрабов ядра и других крупных проектов на зряплате корпов.

Но ты прав, штраф тут не помогут.
А вот введение каких-то правил... Что-то типа мисры, но не настолько сложное.
Или внедрить проверки на этап компиляции.

Например
- Каждая с либа которая используется в нашем проекте должна проходить Valgrind или другой стат. анализатор
- Если собираем Clangʼом используем -fcatch-undefined-behavior для тестов
- Для CI крутим разные стат и fuzzy тесты

Но это реально сложно(

Ответить | Правка | Наверх | Cообщить модератору

17. "Уязвимость в libcue, приводящая к выполнению кода при загруз..."  +4 +/
Сообщение от Аноним (28), 10-Окт-23, 00:14 
Тем не менее, использование signed int налево и направо — ужасно плохая практика. Это только вопрос времени, когда она вылезет где-нибудь боком.
Ответить | Правка | К родителю #13 | Наверх | Cообщить модератору

55. "Уязвимость в libcue, приводящая к выполнению кода при загруз..."  +/
Сообщение от FF (?), 10-Окт-23, 11:45 
я наоборот использую signed даже где будет только unsigned, чтобы потом наоборот в ожидаемое unsigned не залетело signed. благо 64 бит хватает, в отличие от 32.
Ответить | Правка | Наверх | Cообщить модератору

56. "Уязвимость в libcue, приводящая к выполнению кода при загруз..."  +1 +/
Сообщение от Анонин (?), 10-Окт-23, 12:05 
Но ты же добавляешь проверки, что значение не отрицательное перед использованием? Правда же?
Ответить | Правка | Наверх | Cообщить модератору

76. "Уязвимость в libcue, приводящая к выполнению кода при загруз..."  +/
Сообщение от FF (?), 10-Окт-23, 21:41 
Разумеется. Особенно после того как стал работать на Go - там эти бесячьи проверки порой 80% строк функции
Ответить | Правка | Наверх | Cообщить модератору

62. "Уязвимость в libcue, приводящая к выполнению кода при загруз..."  +1 +/
Сообщение от Аноним (28), 10-Окт-23, 13:49 
> благо 64 бит хватает, в отличие от 32

Воот, лень про это было писать: в 16-битную эпоху ещё экономили, в 32-битную расслабились, а теперь и вовсе…

Ответить | Правка | К родителю #55 | Наверх | Cообщить модератору

71. "Уязвимость в libcue, приводящая к выполнению кода при загруз..."  +/
Сообщение от MaleDog (?), 10-Окт-23, 18:58 
Иногда signed int используется для того чтобы положительным результатом вернуть значение, а отрицательным код ошибки. Иначе придется возвращать значение через указатель. Компиляторы кстати могут предупреждать о преобразованиях:
test.c:9:14: warning: conversion to ‘uint32_t’ {aka ‘unsigned int’} from ‘int32_t’ {aka ‘int’} may change the sign of the result [-Wsign-conversion]

Кто бы еще за этим следил бы. Обычно наоборот включают блокировку таких сообщений.

Ответить | Правка | К родителю #17 | Наверх | Cообщить модератору

73. "Уязвимость в libcue, приводящая к выполнению кода при загруз..."  –1 +/
Сообщение от Аноним (28), 10-Окт-23, 20:26 
> Иногда signed int используется для того чтобы положительным результатом вернуть значение, а отрицательным код ошибки.

Вот за это сишников надо не то что убивать, а пытать бесконечно.
Значение должно использоваться для того, чтобы вернуть значение, И ВСЁ.
Но нет, они же до сих пор полтора регистра и десять байтов памяти экономят.

Ответить | Правка | Наверх | Cообщить модератору

80. "Уязвимость в libcue, приводящая к выполнению кода при загруз..."  +/
Сообщение от MaleDog (?), 11-Окт-23, 01:38 
Не все сишники пишут под x64_86 и не то чтобы было большой проблемой проверить на >0 и привести к нужному типу. Ну и не все представляют, что завтра его либа станет использоваться в миллионе проектов ее использование расширится за пределы заложенные разработчиком.
Ну и есть люди, которые портируют не разбираясь в вопросе. К примеру кто-то написал драйвер датчика i2c под arduino, а следом кто-то пишет модуль ядра linux.
Ответить | Правка | Наверх | Cообщить модератору

81. "Уязвимость в libcue, приводящая к выполнению кода при загруз..."  +1 +/
Сообщение от Аноним (84), 11-Окт-23, 03:26 
> Не все сишники пишут под x64_86 и не то чтобы было большой проблемой проверить на >0 и привести к нужному типу.

Это совершенно не важно, подо что они пишут. Передача кода ошибки (и самого факта ошибки) в результатах вызова функции —  это даже в ассемблере 8086 было экономией на спичках (и в нормальных языках не использовалось).
У нас есть куча регистров. У нас есть миллион мегабайт памяти (которую мы бездарно транжирим). Но в бутылочное горлышко eax (ax, rax) мы постараемся протащить всё!

Ответить | Правка | Наверх | Cообщить модератору

87. "Уязвимость в libcue, приводящая к выполнению кода при загруз..."  +/
Сообщение от Аноним (87), 11-Окт-23, 13:36 
> Но нет, они же до сих пор полтора регистра и десять байтов памяти экономят.

Ага, а потом вот такие "программисты" пишут жирный код и "десять байтов" накапливаются по всему кода в разных частях, затем в разных программах и тд. А потом удивляемся чего это новые программы столько жрут при том же функционале.

Ответить | Правка | К родителю #73 | Наверх | Cообщить модератору

54. "Уязвимость в libcue, приводящая к выполнению кода при загруз..."  +/
Сообщение от FF (?), 10-Окт-23, 11:42 
проблема в электричестве, которое питает железо, позволяющее выполнять машинные инструкции без проверки границы буфера
Ответить | Правка | К родителю #13 | Наверх | Cообщить модератору

91. "Уязвимость в libcue, приводящая к выполнению кода при загруз..."  +/
Сообщение от Anonymous_3680 (?), 12-Окт-23, 15:12 
Ты не поверишь, но да, бывают - в особенности встречаетсая на дисках с непрерывным переходом из одного трека в другой.
Ответить | Правка | К родителю #8 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру