The OpenNET Project / Index page

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



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

Оглавление

Уязвимость в Ghostscript, приводящая к выполнению кода злоумышленника, opennews (??), 13-Апр-23, (0) [смотреть все]

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


74. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +/
Сообщение от Tron is Whistling (?), 14-Апр-23, 09:04 
Обделаться не может только тот, кто ничего не делает.
Учитывая количество софта на сях в сравнении со всяким хипстерьём - ну, вы поняли.
Ответить | Правка | К родителю #44 | Наверх | Cообщить модератору

85. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +/
Сообщение от Аноним (19), 14-Апр-23, 13:07 
> Обделаться не может только тот, кто ничего не делает.

Или тот, который использует недоязык и не делает выводов, из года в год наступая на те же грабли.

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

88. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +/
Сообщение от Tron is Whistling (?), 14-Апр-23, 13:27 
Это те, кто уже прошли путь от рубей до хруста?
Ответить | Правка | Наверх | Cообщить модератору

86. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +/
Сообщение от Аноним (19), 14-Апр-23, 13:09 
> Учитывая количество софта на сях

Осталось понять, где связь с количеством софта на сях и конкретно этим багом.

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

90. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +2 +/
Сообщение от fidoman (ok), 14-Апр-23, 15:10 
Сишники с рождения, как вы выражаетесь, "обделанные" - даже в стандартной библиотеке не смогли сами с собой договориться, нужен \0 в конце строки или нет.
strncpy vs strncat
Ответить | Правка | К родителю #74 | Наверх | Cообщить модератору

91. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +/
Сообщение от Tron is Whistling (?), 14-Апр-23, 15:29 
Не видишь логики в strncpy?
Сочувствую.
-> на гошечку
Ответить | Правка | Наверх | Cообщить модератору

94. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +/
Сообщение от Аноним (19), 14-Апр-23, 16:49 
> Сочувствую

А ты видишь логику в том, что strncpy при определенных условиях не добавляет ноль? Расскажи, было бы интересно почитать.

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

109. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +1 +/
Сообщение от Tron is Whistling (?), 15-Апр-23, 09:23 
> А ты видишь логику в том, что strncpy при определенных условиях не
> добавляет ноль? Расскажи, было бы интересно почитать.

Ладно, так и быть.

Есть у тебя "Black cat went up the alley".
Тебе надо "cat" на "dog" заменить, имея поинтер.
Как считаешь, если strncpy будет всегда \0 добавлять - получится?

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

118. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +/
Сообщение от Аноним (19), 15-Апр-23, 12:10 
В таком случае ты бы пользовался memcpy().
Ответить | Правка | Наверх | Cообщить модератору

121. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +/
Сообщение от Tron is Whistling (?), 15-Апр-23, 12:36 
Немножко семантически криво получится, не так ли?
Ответить | Правка | Наверх | Cообщить модератору

123. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +/
Сообщение от Аноним (19), 15-Апр-23, 12:44 
Да нет, это как раз прямо выразит твои намерения.
Ответить | Правка | Наверх | Cообщить модератору

110. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +/
Сообщение от Tron is Whistling (?), 15-Апр-23, 09:29 
Теперь второй пример. У тебя есть "I am a f****ng rUST programmer"
Нам бы надо заменить "programmer" на "fanatic", но следов от него в виде "er" - не оставлять.
Как считаешь, справится strncpy с задачей?
Ответить | Правка | К родителю #94 | Наверх | Cообщить модератору

120. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +/
Сообщение от Аноним (19), 15-Апр-23, 12:29 
> Как считаешь, справится strncpy с задачей?

Может справится, а может и нет - в зависимости от того, как ты напишешь вызов. Приведи пример кода.

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

133. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +/
Сообщение от Tron is Whistling (?), 15-Апр-23, 14:45 
Неправильный ответ.
Правильный ответ - справится. И даже нулями забьёт лишнее, как и договаривались.
Ответить | Правка | Наверх | Cообщить модератору

134. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +/
Сообщение от Аноним (19), 15-Апр-23, 14:50 
Это правильный ответ. Ты можешь ошибиться с вызовом strncpy так же, как и сотни тысяч людей до тебя. Поэтому приведи пример вызова для этой задачи - вот тогда и посмотрим.
Ответить | Правка | Наверх | Cообщить модератору

111. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +/
Сообщение от Tron is Whistling (?), 15-Апр-23, 09:30 
А теперь объясняю логику.

strncpy реально работает с терминатором (и переменной длиной) _только_ в src.
dst при этом является "сырым буфером", и \0 в src для strncpy - всего лишь символ, указывающий, что с src пора завязывать.

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

122. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +/
Сообщение от Аноним (19), 15-Апр-23, 12:42 
То, что ты объяснил - это не логика, а нелепо спроектированное поведение, с которым запросто можно выстрелить себе в ногу и получить ровно то, о чем говорится в новости.

Даже man рекомендует использовать вместо него нестандартный strlcpy.

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

130. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +/
Сообщение от Tron is Whistling (?), 15-Апр-23, 14:37 
Для тебя - нелепо, мне - норм. И выстрелить себе в ногу там не так просто, если вовремя написания мозг включать, конечно же.
Ответить | Правка | Наверх | Cообщить модератору

131. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +/
Сообщение от Tron is Whistling (?), 15-Апр-23, 14:37 
- во время -
Ответить | Правка | Наверх | Cообщить модератору

132. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +/
Сообщение от Tron is Whistling (?), 15-Апр-23, 14:41 
Основные выстрелы в ногу встречаются как раз не там.
Основные выстрелы в ногу встречаются там, где забыли проверку длин этих самых буферов или в ней накосячили.
С увеличением числа излишне высокоуровневых лепил, которые забывают, что машине фиолетово, сколько ты там куда запишешь - ты сам должен думать об этом, число таких выстрелов будет неизбежно расти.
Ответить | Правка | К родителю #122 | Наверх | Cообщить модератору

136. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +/
Сообщение от Аноним (19), 15-Апр-23, 15:05 
> С увеличением числа излишне высокоуровневых лепил

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

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

138. Скрыто модератором  +/
Сообщение от Аноним (-), 15-Апр-23, 17:33 
Ответить | Правка | Наверх | Cообщить модератору

139. Скрыто модератором  +/
Сообщение от Аноним (-), 15-Апр-23, 17:33 
Ответить | Правка | К родителю #136 | Наверх | Cообщить модератору

99. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +/
Сообщение от fidoman (ok), 14-Апр-23, 20:16 
посочуствуй ещё, чувствительный наш.
в strncpy логику нашли, давай искать в strncat
Ответить | Правка | К родителю #91 | Наверх | Cообщить модератору

102. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +/
Сообщение от Tron is Whistling (?), 14-Апр-23, 22:22 
А с strncat-то что у тебя?
Ответить | Правка | Наверх | Cообщить модератору

105. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +/
Сообщение от fidoman (ok), 15-Апр-23, 06:53 
Вот уж действительно, показательный пример.
Человек, который сам не может банально прочитать доку и увидеть разницу в поведении двух функций (причём на которую было указано изначально) советует другим "идти в гошечку".
Слепая любовь, что тут ещё сказать.
Ответить | Правка | Наверх | Cообщить модератору

106. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  –1 +/
Сообщение от Tron is Whistling (?), 15-Апр-23, 09:13 
Хосспаде, родной, тебя смущает разница в поведении вызовов? RTFM.
Ответить | Правка | Наверх | Cообщить модератору

107. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +/
Сообщение от Tron is Whistling (?), 15-Апр-23, 09:14 
И в том, и в другом поведении есть своя логика.
Но любителям зачёсывать и круглое и треугольное под квадратное - да, мимо.
Ответить | Правка | К родителю #105 | Наверх | Cообщить модератору

143. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +/
Сообщение от fidoman (ok), 15-Апр-23, 19:04 
> И в том, и в другом поведении есть своя логика.
> Но любителям зачёсывать и круглое и треугольное под квадратное - да, мимо.

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

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

148. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +/
Сообщение от Tron is Whistling (?), 16-Апр-23, 10:55 
Люби, кто тебе мешает.
Просто не лезь туда, где тебе не понятно.
Ответить | Правка | Наверх | Cообщить модератору

112. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +/
Сообщение от Tron is Whistling (?), 15-Апр-23, 09:34 
strncat используется для объединения двух строк переменной длины с терминатором, он выполняет предварительный поиск терминатора в dst, чтобы понять, куда добавлять. И src и dst трактуются как терминированные строки, поэтому и на выходе - терминированная строка.
Ответить | Правка | К родителю #99 | Наверх | Cообщить модератору

142. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +/
Сообщение от fidoman (ok), 15-Апр-23, 19:02 
Всё это написано в учебнике. Только пишут ли там про то, что ты сам должен просчитать пространство для результирующей строки?
И в процессе этого рассчёта получаешь значение, которое делает конкретно *cat функцию избыточной.
Ну а если делать strncat наобум - то всё это заканчивается выходом за пределы буфера.

Если выделяешь новый буфер, нужно два strlen, и потом можно сделать просто два memcpy. strncat не нужен.

Если дописываешь в первую строку, надо делать strlen, чтобы определить сколько вообще места осталось.
И опять-таки можно использовать strncpy на буфер+длину из первого вызова - снова strncat не нужен.

В общем, по всем фронтам лишняя функция. Ну а если использовать её наобум - получится очередной gets.
Либо тупо заводить буфер размером максимальная длина строки*количество складываемых строк.

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

149. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +/
Сообщение от Tron is Whistling (?), 16-Апр-23, 10:56 
> И в процессе этого рассчёта получаешь значение, которое делает конкретно *cat функцию
> избыточной.

Расчёта.
Кроме того, буферы могут быть фиксированной длины - если допускается обрезка результата. Тогда ничего считать не надо. Либо длина заранее известна. И тогда тоже ничего считать не надо.
Но да, высокоуровневые япшечки от тебя всё это скрывают, поэтому ты даже не предполагаешь наличия таких вариантов.

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

144. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +/
Сообщение от fidoman (ok), 15-Апр-23, 19:31 
> strncat используется для объединения двух строк переменной длины с терминатором, он выполняет
> предварительный поиск терминатора в dst, чтобы понять, куда добавлять. И src
> и dst трактуются как терминированные строки, поэтому и на выходе -
> терминированная строка.

А у strncpy трактуются как-то по-другому?

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

145. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +/
Сообщение от Tron is Whistling (?), 16-Апр-23, 10:51 
Внезапно да. RTFM, не вижу смысла в слепоглухонемом споре.
Ответить | Правка | Наверх | Cообщить модератору

152. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +/
Сообщение от fidoman (ok), 16-Апр-23, 12:28 
> Внезапно да. RTFM, не вижу смысла в слепоглухонемом споре.

Вот уж действительно, спорить о C с человеком, который чуть что сбегает в PHP...

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

159. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +/
Сообщение от Tron is Whistling (?), 16-Апр-23, 14:21 
Если мне нужен свервысокий уровень - я бегу в PHP.
Если мне нужно очень быстро и с памятью - я беру C или плюсы.
Если нужна серебряная пуля - я тащу в PHP тот самый модуль на сях.
Ответить | Правка | Наверх | Cообщить модератору

161. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +/
Сообщение от Tron is Whistling (?), 16-Апр-23, 14:23 
(к счастью, пых изначально делался заматеревшими гошниками, и притащить туда то, что тебе нужно на подложке - вопрос пары часов)
Ответить | Правка | Наверх | Cообщить модератору

162. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +/
Сообщение от Tron is Whistling (?), 16-Апр-23, 14:24 
Тьфу блин, гошниками, сишниками.
Ответить | Правка | Наверх | Cообщить модератору

160. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +/
Сообщение от Tron is Whistling (?), 16-Апр-23, 14:22 
Пытаться делать ВСЁ на одной моднявке (привет гошечка), даже то, для чего она не приспособлена - ну такое.
Ответить | Правка | К родителю #152 | Наверх | Cообщить модератору

163. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +/
Сообщение от fidoman (ok), 16-Апр-23, 15:04 
Ну так не делай. Только это очень странно, не пользоваться и при этом нахваливать, а тем, кто пользуется заявлять что это "не их".
Ответить | Правка | Наверх | Cообщить модератору

154. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +/
Сообщение от Аноним (19), 16-Апр-23, 13:12 
Ага, тот самый мануал, который советует использовать strlcpy именно из-за упоротого поведения strncpy. Но опеннетным экспертам не страшно - они-то все понимают, на асме строками ворочали...
Ответить | Правка | К родителю #145 | Наверх | Cообщить модератору

155. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +/
Сообщение от Tron is Whistling (?), 16-Апр-23, 14:13 
В каком стандарте у нас есть strlcpy?
Без BSD_SOURCE везде соберётся?
Што нащёт визуал студии?
Ответить | Правка | Наверх | Cообщить модератору

113. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +/
Сообщение от Tron is Whistling (?), 15-Апр-23, 09:35 
Всю эту сишную логику можно понять только после того, как ты на асме занимался строковыми операциями.
Если глубже высокоуровневых примитивов мышление не заглядывало, да - логику увидеть бывает сложновато.
Ответить | Правка | К родителю #99 | Наверх | Cообщить модератору

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

127. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  –1 +/
Сообщение от Tron is Whistling (?), 15-Апр-23, 14:20 
Ты с трудом понимаешь, что такое "буфер", отсюда и вот это вот недоразумение.
Ответить | Правка | Наверх | Cообщить модератору

129. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +/
Сообщение от Tron is Whistling (?), 15-Апр-23, 14:35 
Чтобы две строки "плюсиком" сложить в разных этих вот всяких тебе придётся целую аллокацию нового буфера насиловать. Когда у тебя набуизнесс-логика, которая может полчаса ворочаться при сложении трёх томов войны и мира - да, дело одно. А когда у тебя системная подложка, которая вынуждена работать быстро, иначе ты вместо полчаса три часа получишь - дело другое.
Ответить | Правка | К родителю #126 | Наверх | Cообщить модератору

135. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +/
Сообщение от Аноним (19), 15-Апр-23, 15:01 
А чтобы сложить в сях "не плюсиком", аллокацию типа не надо делать?
Ответить | Правка | Наверх | Cообщить модератору

141. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +/
Сообщение от fidoman (ok), 15-Апр-23, 18:29 
> А чтобы сложить в сях "не плюсиком", аллокацию типа не надо делать?

У каждого сишника есть свой набор нормальных функций работы со строками)
В конечном счёте приходишь к структу в котором лежит размер буфера, текущая длина и сама строка... может и что-то ещё по вкусу.
Потому что если если не держать это в структе придётся держать где-то отдельно.
А если это всё не делать, получится очередной gets

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

146. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +/
Сообщение от Tron is Whistling (?), 16-Апр-23, 10:52 
Если у тебя буфер целевой строки превышает по размеру обе-двое - зачем?
Ответить | Правка | К родителю #135 | Наверх | Cообщить модератору

153. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +/
Сообщение от Аноним (19), 16-Апр-23, 13:04 
А буфер целевой строки аллоцировать не надо? Речь о сложении, а не о добавлении к существующей.

Но даже если говорить о сложении: ты же в курсе, что во всех нормальных языках строковый буфер действительно аллоцируется размером чуть больше, чем необходимо - как раз для описываемой тобой ситуации. Плюс еще есть оптимизация коротких строк.

А в сишечных str*() - шишь. Считай размер ручками, аллоцируй/удаляй ручками, дергай strlen на каждый чих (производительность, да) - и смотри не обделайся. Абстракции для дураков ведь. А сишечка лучше мерзкого Раста, ага.

Вобщем, эта дискуссия вполне закономерно превратилась в цирк.

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

156. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +/
Сообщение от Tron is Whistling (?), 16-Апр-23, 14:16 
Если мне из всех строк нужна только сложенная и размер dst позволяет - зачем мне третий буфер? Мне заняться нечем?

Ну и да, ся - оно такое. Дёргай много чего сам, как тебе нужно, а не как за тебя очередная хипстота решила. Цирк - это когда жаваскриптеры в си лезут.

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

157. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +/
Сообщение от Tron is Whistling (?), 16-Апр-23, 14:18 
На входе мне пришли допустим 6 строк, ага. Длины уже известны.
Мне их надо в одну сложить частями. На каждое сложение отдельную аллокацию делать? Смешные.
Ответить | Правка | Наверх | Cообщить модератору

158. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +/
Сообщение от Tron is Whistling (?), 16-Апр-23, 14:18 
(ключевые заголовки SIP разбираем, ага)
Ответить | Правка | К родителю #157 | Наверх | Cообщить модератору

140. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +/
Сообщение от fidoman (ok), 15-Апр-23, 18:23 
Дадад, эту логику могут понять только избранные.
Нельзя просто сказать - не додумали, ошиблись?
Гордость не позволяет? Или просто понты от глупости?
strncat, кстати, вообще в целом бесполезная функция - прежде чем её вызывать, надо знать, сколько у тебя уже есть строки в буфере, чтобы посчитать, сколько можно дописать - а если ты эту длину знаешь, смысл какой-то cat делать если можно просто эту длину к указателю добавить.
И что касается ассемблера, на RISC архитектурах (где регистров до жопы и нет проблем выделить один под счётчик) сишные строки теряют все свои преимущества перед паскаль-стайл.

Вообще вся stdlib всратая, даже сраный popen чтоб был без шелл прокладки и с нормальной передачей аргументов приходится копировать хрен знает откуда и фиксить чтобы оно нормально работало.

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

147. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +/
Сообщение от Tron is Whistling (?), 16-Апр-23, 10:53 
> Нельзя просто сказать - не додумали, ошиблись?

Нельзя. Потому что никто не ошибался, просто ты отказываешься понимать смысл работы.

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

150. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  –1 +/
Сообщение от Tron is Whistling (?), 16-Апр-23, 10:58 
> Вообще вся stdlib всратая

Вот с этого и надо было начинать. C - не твоё :D
Делай как я - выбирай дуализм. Для высокоуровневого - PHP, он как раз всё это обвязывает и скрывает много тонкостей. А вот критичные и системные участки - на C.

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

151. "Уязвимость в Ghostscript, приводящая к выполнению кода злоум..."  +/
Сообщение от Tron is Whistling (?), 16-Апр-23, 11:01 
(естественно именно в похапэ тебя никто силком не тащит, щито угодно. мой выбор основан на схожести кода, не требуется какой-либо зубодробительный синтаксис очередной однодневки изучать. да, с названиями там такая же жесть, как и в сях)
Ответить | Правка | Наверх | Cообщить модератору

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

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




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

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