LINUX.ORG.RU
ФорумTalks

Очередные технологические отверстия в иксах

 , , , ,


0

2

CVE-2023-0494 entails local privilege elevation on systems where the X.Org Server is privileged and remote code execution is supported for SSH X forwarding sessions. Thankfully for many modern X.Org Server environments these days, the X.Org Server is no longer run as root / elevated privileges but for older systems and in other select configurations unfortunately remains running in such a vulnerable configuration.

The CVE-2023-0494 vulnerability involves a use-after-free condition within DeepCopyPointerClasses for allowing reading and writing to freed memory via ProcXkbSetDeviceInfo() and ProcXkbGetDeviceInfo().

https://www.phoronix.com/news/X.Org-Server-CVE-2023-0494

★★★★★

Последнее исправление: Siborgium (всего исправлений: 1)

Ответ на: комментарий от alex1101
Фанбои сишки: "просто надо правильно работать с памятью!!!"
Реальные сишники: допускают use-after-free из-за пропущенной скобочки.
alex1101
()
Последнее исправление: alex1101 (всего исправлений: 1)
Ответ на: комментарий от alex1101

Они вим нормально настроить не могут? И про IDE никогда не слышали?

hateWin ★☆
()
Ответ на: комментарий от alex1101

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

LINUX-ORG-RU ★★★★★
()

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

  • struct array
  • ptr = arindex(array, index)
  • freenull()
cumvillain
()
Последнее исправление: cumvillain (всего исправлений: 1)
Ответ на: комментарий от alex1101

Посмотрел коммит, там не скобка пропущена, а зануления указателя было не сделано

to->button->xkb_acts = NULL;

Loki13 ★★★★★
()
Ответ на: комментарий от Loki13

Чёрт и правда, там такой бледный зелёный что под моим углом взгляда нижняя строка без diff подсветки.

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

Каждое реализуется в 4 строчки. Идиотские баги есть везде и зависят не от языка.

Да, это известная мантра адептов CVE-language. Проблема в sane defaults. Если у тебя нет sane defaults, получается прорва идиотских багов.

cumvillain
()
Ответ на: комментарий от cumvillain

Мантра не мантра, а на этих CVE-languages написано если не всё то большая часть того где почти любая ошибка фатальна или серьёзна. А на NONCVE-languages написано всё для юзерспейс песочницы и так обитой подушками хоть головой вниз прыгай. Почему то не наоборот.

Ты прав такие вещи нужны, но порой не нужны где у нас бюджет тактов на лишний if который миллиард раз будет дрыгаться средств нету. А где-то есть, вот там где есть перед free проверяем на NULL , но если ты память обработал на строчке выше, то просто логического смысла проверять её нет, она есть и удетит в free как родная.

Не хочется этим заниматься не пиши на языке где этим заниматься надо. И делов. =) Вон вам Раст сделали, пишите на нём =)

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)
Ответ на: комментарий от LINUX-ORG-RU

Мантра не мантра, а на этих CVE-languages написано если не всё то большая часть того где почти любая ошибка фатальна или серьёзна. А на NONCVE-languages написано всё для юзерспейс песочницы и так обитой подушками хоть головой вниз прыгай. Почему то не наоборот.

Дома, которые строятся таджиками, тоже стоят. Это не значит, что таджики хорошо строят, это значит, что проектировали эту штуку с десятикратным запасом прочности.

Ты прав такие вещи нужны, но порой не нужны где у нас бюджет тактов на лишний if который миллиард раз будет дрыгаться средств нету. А где-то есть, вот там где есть перед free проверяем на NULL , но если ты память обработал на строчке выше, то просто логического смысла проверять её нет, она есть и удетит в free как родная.

Ну вот где не нужны, там и надо делать insane, специально отметив, что мы делаем insane. Во всех остальных случаях должно быть sane. На самом деле, в хороших сишных проектах так и есть, просто к этому пришли спустя десятилетия боли и страданий.

Не хочется этим заниматься не пиши на языке где этим заниматься надо. И делов. =) Вон вам Раст сделали, пишите на нём =)

А потом начинаются вопли: кококо, зачем вы Rust в ядро тащите.

cumvillain
()
Ответ на: комментарий от cumvillain

Что это значит?

arindex это array[index] ? Зачем для этого функция? Если ты хочешь всунуть в неё какие-то проверки границ, то в Си их нет не по недоработке, а по осознанному решению: код делает только то, что сказал ему программист, и ничего лишнего. Надо проверить границу (ценой оверхеда) - укажи это явно.

firkax ★★★★★
()
Ответ на: комментарий от firkax

arindex это array[index] ? Зачем для этого функция? Если ты хочешь всунуть в неё какие-то проверки границ, то в Си их нет не по недоработке, а по осознанному решению: код делает только то, что сказал ему программист, и ничего лишнего. Надо проверить границу (ценой оверхеда) - укажи это явно.

Я понимаю, что каргокультирование сильно сидит в голове, но стоит начать его потихоньку вытаскивать наружу и рефлексировать.

cumvillain
()
Последнее исправление: cumvillain (всего исправлений: 1)
Ответ на: комментарий от firkax

код делает только то, что сказал ему программист

Ну и да, это было так во время PDP-11. Сейчас код делает то, о чем подумал оптимизирующий компилятор. А он (компилятор) частенько не угадывает, что от него хотели.

cumvillain
()
Последнее исправление: cumvillain (всего исправлений: 2)
Ответ на: комментарий от cumvillain

Просто пиши на пхп, там такого нет. Я сам на нём пишу, когда надо по-быстрому и не думая. А Си даёт доступ к низкоуровневым операциям.

firkax ★★★★★
()
Ответ на: комментарий от firkax

Просто пиши на пхп, там такого нет. Я сам на нём пишу, когда надо по-быстрому и не думая. А Си даёт доступ к низкоуровневым операциям.

Нет, в php постоянно что-то взрывается из-за бажной сишки.

cumvillain
()
Последнее исправление: cumvillain (всего исправлений: 1)
Ответ на: комментарий от alex1101

Есть статические анализаторы, которые такие ошибки легко находят. Почему ими не пользуются вопрос интересный.

imul ★★★★★
()
Ответ на: комментарий от cumvillain

sys/queue - это интрузивные списки. Ужасно сделанные, кстати, и с UB. Как это перенести на массивы - для меня загадка.

free(ptr); ptr = NULL;

Тут согласен.

unsigned ★★★★
()
Ответ на: комментарий от cumvillain

огромного количества идиотских багов можно было бы избежать, если

писать на C++, а не C.

pr849
()

Зато в вяленом дырок нет, он же памятник протокол! Нет кода – нет дырок, а что до уязвимостей в реализациях, так ведь проблемы кодерков, архитектора не волнуют.

cocucka ★★★★☆
()

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

thesis ★★★★★
()
Ответ на: комментарий от thesis

Джуниор (junior) — это младший специалист. Он знает теорию, освоил синтаксис одного языка программирования и может писать на нём код. Если джуниор не умеет писать код, то это стажер.

i_am_not_ai
()
Ответ на: комментарий от Siborgium

Для чего и кому нужно стажировать человека, не умеющего писать код?

Всё в этом мире относительно. 20 лет назад я уже думал что умею программировать. Бог ты мой - как я заблуждался…

bugfixer ★★★★
()
Ответ на: комментарий от bugfixer

Речь о базовых навыках написания кода. Знать язык, уметь без букваря читать чужой код, писать хотя бы хелловорлды в своей предметной области. Вы согласны, что если человек не умеет написать хелловорлда, то и умеющим писать код его назвать нельзя?

Siborgium ★★★★★
() автор топика
Ответ на: комментарий от Siborgium

Для чего и кому нужно стажировать человека, не умеющего писать код?

Ну простейшие ведь примеры.

Берём в штат бюджетного учреждения выпускника вуза с «нулевой» трудовой книжкой. Сын хорошего человека, трогать его нельзя. Писать код по факту не умеет. Но через полгода-год приходит разнарядка «сверху» - отчитаться о проделанной работе за квартал. И таких студентов в штате - три. Начальник отдела начинает напрягать мозги, как оформить отчёты о проделанной работе. Пара студентов ещё что-то делали (сайт там наполняли, или помогали вбивать циферки главному специалисту-эксперту на своём АРМ). Но с третьим - беда. И начальник ставит задачу - придумать этому студенту какое-нибудь задание. Заинтересовать его, так сказать. Чтобы в следующий раз что-то вписать в отчётность. Вот и думаешь - чем бы его завлечь в программирование.

Я их называю - «стажёры». Первые полгода-год молодой специалист обычно только «въезжает» в тему, смотрит, как работают остальные.

i_am_not_ai
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)