1.3, Аноним (3), 14:01, 12/04/2023 [ответить] [﹢﹢﹢] [ · · · ]
| +9 +/– |
Что-то этот ваш "user namespace" какой-то перфорированный всё время.
| |
|
|
3.130, Аноним (-), 09:07, 13/04/2023 [^] [^^] [^^^] [ответить]
| +1 +/– |
Можно подумать это специально. Ядро не делали с учетом таких вещей, изначально система была одна, контейнеров не было, ядро считало CAP_NET_ADMIN безусловным сигналом к действию. А когда всем захотелось контейнеры, сову совместными усилиями натянули на глобус, оказалось что некоторые нюансы все же есть. Ну вот и штопают периодически, когда ядро рута контейнера за рута всей системы воспринимает. А таких мест в ядре в всяких экзотичных краевых случаях наверняка еще есть.
В обычной системе могли особо и не париться - если рут сам себе отстрелит пятку, он это и так мог, кому хуже то. А тут вот рут мог быть и не настоящий. Опа.
| |
|
2.72, пох. (?), 17:02, 12/04/2023 [^] [^^] [^^^] [ответить]
| +2 +/– |
ну так что ты хочешь от механизма дающего юзеру рута но не вот совсем совсем а так... на пол-шишечки?
| |
2.94, Аноним (94), 18:23, 12/04/2023 [^] [^^] [^^^] [ответить]
| –2 +/– |
Спасибо дидам с их офигенными идеями про привилегированные порты. В семидесятые это может быть и была хорошая идея, но уже в начале века было ясно, что от этого костыля надо избавляться. Почему за 20 лет не избавились — загадка.
| |
|
3.128, Аноним (-), 09:01, 13/04/2023 [^] [^^] [^^^] [ответить]
| +/– |
А при чем тут привилегированные порты? В уязвимости ни слова про это, там какие-то экзотичные краевые ситуации, когда раз в год и палка стреляет.
А юзерский неймспейс виноват только тем что пытается косить под отдельную систему и там у фэйкового рута могут быть эти права, чтобы свой контейнер настраивать. В данном случае проблема в том что рут контейнера может апгрейднуться до рута всей системы, а вот это уже нехорошо.
Однако с практической точки зрения - найти вот именно такой конфиг еще постараться надо, так что реальный масштаб проблемы - мизерный. А часто вы бываете в контейнере, с правами CAP_NET_ADMIN, чтобы оттуда наружу лезть? Ну вот то-то и оно.
| |
|
4.148, Аноним (94), 17:43, 13/04/2023 [^] [^^] [^^^] [ответить]
| –1 +/– |
Зачем, казалось бы, юзеру отдельный неймспейс с рутом и CAP_NET_ADMIN? Ну не для того же, чтобы слушать «привилегированный» порт? Понятно, что не только для этого, и примеров, когда без неймспейса никак тоже хватает, но основная задача таки тривиальна: слушать на портах <1024 без рута. А то, что всякие обскурные механизмы вроде QoS от такого ломаются то не диво. Диды те ещё программисты локалхоста были, они даже представить себе не могли, что в многопользовательской системе пользователи захотят что-то делать полезное, а не только sedеть и gawkать.
| |
|
5.150, Аноним (-), 18:54, 13/04/2023 [^] [^^] [^^^] [ответить] | +/– | Чтобы настраивать сеть на своем компе например То-есть, там свои сетевые ин... большой текст свёрнут, показать | |
|
|
3.129, 1 (??), 09:04, 13/04/2023 [^] [^^] [^^^] [ответить]
| +/– |
Это типа про "звон" ? Причём тут порты ? Тут как раз про любимые контейнеры.
| |
|
|
|
|
3.19, Rock (?), 14:47, 12/04/2023 [^] [^^] [^^^] [ответить]
| +/– |
> ...ваши предложения?
Очевидно же -- free должна портить память. Либо скорость, либо безопасность.
| |
|
4.66, Аноним (18), 16:40, 12/04/2023 [^] [^^] [^^^] [ответить]
| +/– |
> Либо скорость, либо безопасность
насколько это:
free(ptr);
быстрее, чем это:
free(ptr);
ptr = NULL;
?
| |
|
5.67, Аноним (67), 16:52, 12/04/2023 [^] [^^] [^^^] [ответить]
| +2 +/– |
Незаметно.
Удивительно, что дизайнеры C/POSIX API не сделали так, чтобы этот NULL возвращала функция free() после успешного освобождения.
ptr = free(ptr);
| |
|
6.76, Аноним (18), 17:13, 12/04/2023 [^] [^^] [^^^] [ответить]
| +1 +/– |
ты можешь написать макрос, который будет вызывать free() и обнулять переменную. Вызывать так: clear(ptr). Оставлю тебе на дом, каким должен быть #define clear.
| |
|
7.79, InuYasha (??), 17:37, 12/04/2023 [^] [^^] [^^^] [ответить]
| +1 +/– |
Вот, только каждый программист напишет своих подобных костылей с разными названиями и поведением - и сиди, сходи с ума, изучая всё это. Хотя, даже позикс иногда объявляется устаревшим - что уж там...
PS: только не макрос лучше, а инлайн, наверное.
| |
|
8.84, Аноним (18), 17:54, 12/04/2023 [^] [^^] [^^^] [ответить] | +/– | это лучше, чем заставлять free возвращать что-то там, хотя на самом деле ему воз... текст свёрнут, показать | |
|
|
6.123, n00by (ok), 07:27, 13/04/2023 [^] [^^] [^^^] [ответить]
| +/– |
> Удивительно, что дизайнеры C/POSIX API не сделали так, чтобы этот NULL возвращала
> функция free() после успешного освобождения.
> ptr = free(ptr);
А в случае неуспешного освобождения что будет возвращать free()?
| |
|
7.131, Аноним (-), 09:14, 13/04/2023 [^] [^^] [^^^] [ответить]
| +/– |
Неуспешное освобождение памяти - это что?! Как на чисто логическом уровне это могло бы выгдядеть вообще? Потому что в free() такой вариант не присутствует. См man 3 free.
В самых идиотских ситуациях (попытки освободить то что не выделяли или уже освободили) - в спеках на функцию сказано "undefined behavior". В идеале такие вещи следовало бы ловить но видимо трекинг аллокаций и проверка этого при free() достаточно дорого по скорости и оверхеду обходится.
| |
|
8.140, n00by (ok), 10:10, 13/04/2023 [^] [^^] [^^^] [ответить] | +/– | Это ситуация, обратная успешному освобождению См 8470 67, на которое я отвеча... большой текст свёрнут, показать | |
|
9.142, Аноним (-), 12:35, 13/04/2023 [^] [^^] [^^^] [ответить] | +/– | В вон том определении реализации функции просто нет места call fails - либо вс... большой текст свёрнут, показать | |
|
|
11.152, Аноним (-), 22:07, 13/04/2023 [^] [^^] [^^^] [ответить] | +/– | Call fails - как раз обычно well defined behavior, как именно проверить не успе... большой текст свёрнут, показать | |
|
|
13.158, Аноним (157), 09:30, 14/04/2023 [^] [^^] [^^^] [ответить] | +/– | А у вас проблемы с логическими операциями Для меня выглядит так как будто это Л... большой текст свёрнут, показать | |
|
|
|
|
17.166, Аноним (166), 23:58, 20/04/2023 [^] [^^] [^^^] [ответить] | +/– | Для функции free в стандарте ничего не сказано про то что эта операция вообще ... большой текст свёрнут, показать | |
|
|
|
|
|
|
|
|
|
|
|
|
5.165, Rock (?), 20:17, 18/04/2023 [^] [^^] [^^^] [ответить]
| +/– |
>> Либо скорость, либо безопасность
> насколько это:
> free(ptr);
> быстрее, чем это:
> free(ptr);
> ptr = NULL;
> ?
Ну, вот, как порча указателя на память связана с порчей памяти? Речь шла о том, что free могла бы обнулять память ради безопасности. Очевидно, что повлиять на указатели на эту память, сохраненные где-то снаружи, она чисто технически никак не может.
Я вообще не понимаю людей на этом форуме...
| |
|
|
|
4.102, Аноним (102), 19:19, 12/04/2023 [^] [^^] [^^^] [ответить]
| –1 +/– |
В JS (V8,JavaScriptCore) довольно быстрый сборщик мусора - в отличие от сишного дидовского кода, где memory-leak-мусор по всей системе и убирать его не спешат.
| |
|
5.132, Аноним (-), 09:18, 13/04/2023 [^] [^^] [^^^] [ответить]
| +/– |
> В JS (V8,JavaScriptCore) довольно быстрый сборщик мусора -
Угу, именно поэтому при потугах что-то активно делать все тормозит а браузер жрет гигазы оперативы. Достаточно посмотреть как работают например игровые движки, это достаточно здоровые штуки чтобы хотеть именно постоянную аллокацию-деаллокацию, т.к. держать в памяти всообще все ассеты более-менее приличной гамезы малореально.
| |
|
|
3.37, FF (?), 15:25, 12/04/2023 [^] [^^] [^^^] [ответить]
| –3 +/– |
да они не понимают, что такие ситуации можно отследить только контролем за каждой ссылкой, а значит затормаживанием операций, это же в многозадачной среде никакой канпилятор не отследит, т.к. они асинхронно работают, а за всеми проверками не уследишь.
| |
3.77, Аноним (77), 17:26, 12/04/2023 [^] [^^] [^^^] [ответить]
| +1 +/– |
Уже много раз повторялось - прикрутите вы нормальный менеджер памяти типа FastMM, который в FullDebugMode будет жутко тормозить, но зато показывать вообще все возможные косяки. А если будут програть наугад как сейчас, то так и будут вечно страдать от своих use-after-free.
| |
|
4.133, Аноним (-), 09:19, 13/04/2023 [^] [^^] [^^^] [ответить]
| +/– |
> Уже много раз повторялось - прикрутите вы нормальный менеджер памяти типа FastMM,
> который в FullDebugMode будет жутко тормозить, но зато показывать вообще все
> возможные косяки. А если будут програть наугад как сейчас, то так
> и будут вечно страдать от своих use-after-free.
Для тех кто этого хотел уже давно есть KASAN. Enjoy your ride (if you can). Но простите, ядро станет именно тем что вы просили.
| |
|
3.124, n00by (ok), 07:35, 13/04/2023 [^] [^^] [^^^] [ответить]
| +/– |
std::unique_prt<>
Но это породит новые проблемы, из-за использования двух языков. Потому Линус берёг хрупкий внутренний мир бородатых сишников.
| |
|
2.71, Иваня (?), 16:58, 12/04/2023 [^] [^^] [^^^] [ответить]
| +/– |
Не ной, сделай чекер, который будет находить такое и исправлять.
| |
|
3.74, Аноним (74), 17:04, 12/04/2023 [^] [^^] [^^^] [ответить]
| +/– |
зачем чекер ? достаточно просто в chatGPT написать - сделай нам хорошо; и всё, делов то на пару минут.
| |
|
|
1.22, Аноним (22), 14:51, 12/04/2023 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Мне кажется адепты "это не язык виноват, это программисты" ОБЯЗАНЫ фиксить такие баги и формально доказывать корректность фиксов =)
| |
|
|
Часть нити удалена модератором |
3.26, Анонин (?), 15:01, 12/04/2023 [^] [^^] [^^^] [ответить]
| +/– |
Предлагаю сишникам перестать делать use-after-free!
Это же всего-лишь нужно вызывать free только один раз, они что не в состоянии??
| |
|
4.31, Ivan_83 (ok), 15:12, 12/04/2023 [^] [^^] [^^^] [ответить]
| +2 +/– |
Вы даже не поняли смысла "use-after-free" а что то предлагаете.
uint8_t *ptr = malloc(10);
ptr[0] = 123;
free(ptr);
ptr[0] = 123; /* Вот тут use-after-free */
В программах бывает так что память освободили а где то остался указатель, например его часто забывают обнулить после освобождения, и потом его кто то юзает.
Если бы было объявлено как: free(void **ptr) и не только освобождало память но и зануляло указатель то use-after-free встречалось бы в разы реже.
| |
|
5.34, Аноним (10), 15:16, 12/04/2023 [^] [^^] [^^^] [ответить]
| –2 +/– |
Когда не выкупают иронию и самый простой юмор это уже старость.
| |
|
6.54, Ivan_83 (ok), 16:00, 12/04/2023 [^] [^^] [^^^] [ответить]
| +/– |
Не вижу юмора в том, что человек путает double-free и use-after-free.
| |
|
7.73, Анонин (?), 17:04, 12/04/2023 [^] [^^] [^^^] [ответить]
| –1 +/– |
Прости чувак, хаскелистам не интересно разбираться в сортах ваших сишных багов.
Но спасибо, буду знать. Но тогда предлагаю запретить и то, и другое!
| |
|
|
5.78, Аноним (77), 17:28, 12/04/2023 [^] [^^] [^^^] [ответить]
| +/– |
Привет FreeAndNil из паскаля. Так может C++ не такой уж классный?
| |
|
|
7.141, Аноним (21), 11:12, 13/04/2023 [^] [^^] [^^^] [ответить]
| +/– |
зачем? с++ это надстройка над си, а не какой-нибудь язык, претендующий на независимость
| |
|
8.160, Аноним (157), 11:17, 14/04/2023 [^] [^^] [^^^] [ответить] | +/– | Вот ведь блин, а ISO не в курсе такой ерунды и выпускает 2 набора стандартов от ... текст свёрнут, показать | |
|
|
|
|
|
|
2.38, FF (?), 15:26, 12/04/2023 [^] [^^] [^^^] [ответить]
| +1 +/– |
мне кажется, адепты, которым кто-то чего-то должен, просто не могут достать из лужи выпавшую соску сидя в коляске
| |
|
3.45, Аноним (22), 15:35, 12/04/2023 [^] [^^] [^^^] [ответить]
| –1 +/– |
А почему нужно быть должным кому-то? Иксперды лучше-всех-написаторы могут быть должны себе, ну просто чтобы не быть балаболами. Но, как мы видим, это им не очень интересно. Ведь болтать не мешки ворочать, толк из чип =)
| |
|
2.56, Аноним (56), 16:04, 12/04/2023 [^] [^^] [^^^] [ответить]
| +2 +/– |
Адепты "язык все исправит" вызвались написать свою ОС без "этих несчастных C проблем" и пока написали только memory leak (что иронично), а теперь почему-то очень уж хотят писать на своём языке в "дырявой системе написанной дедами"
| |
|
3.69, Анонимусс (?), 16:54, 12/04/2023 [^] [^^] [^^^] [ответить]
| +/– |
Как будто без этого "дырявая система написанная дедами" стала менее дырявой?
А писать в ней хотят как раз чтобы сделать ее лучше!
| |
|
|
5.117, Аноним (117), 00:33, 13/04/2023 [^] [^^] [^^^] [ответить]
| +/– |
Доказать эти сомнения элементарно - приведи пример аналогичного бага в раст коде =)
| |
|
6.162, Аноним (157), 11:32, 14/04/2023 [^] [^^] [^^^] [ответить]
| +/– |
> Доказать эти сомнения элементарно - приведи пример аналогичного бага в раст коде =)
Вас забанили на сайте с списком CVE? Там замечательный ассортимент, есть и ошибки управления памятью, и переполнения буфера, и что вы там еще хотели? Да, оказывается так можно было =)
| |
|
|
|
3.135, Аноним (-), 09:25, 13/04/2023 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Адепты "язык все исправит" вызвались написать свою ОС без "этих несчастных C
> проблем" и пока написали только memory leak (что иронично), а теперь
> почему-то очень уж хотят писать на своём языке в "дырявой системе
> написанной дедами"
Файрфоксу уже исправили, теперь это чудо природы стало стабильно падать раз в эн по ... выжиранию всей памяти в системе. Довольно странное понимание безопасности. Хотя если программа упала, хакер ее взломать уже не сможет, спору нет. Проблема в том что это как минимум DoS. А в случае с лисом вообще self destruct какой-то.
| |
|
|
1.28, Анонн (?), 15:04, 12/04/2023 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
Ядро 4.14 вышло в ноябре 2017 года.
И никто ничего не заметил. Печально.
| |
|
2.30, Аноним (18), 15:06, 12/04/2023 [^] [^^] [^^^] [ответить]
| +4 +/– |
> никто ничего не заметил
Ты пишешь под новостью, в которой кто-то что-то все-таки заметил.
| |
|
3.48, Rev (?), 15:48, 12/04/2023 [^] [^^] [^^^] [ответить]
| +2 +/– |
Всего-то 6 лет понадобилось чтобы заметить. Подумаешь!
| |
|
2.83, ИмяХ (?), 17:54, 12/04/2023 [^] [^^] [^^^] [ответить]
| +1 +/– |
Все видели, кому это надо было. Писали руткиты и продавали их, и/или получали заказы на взломы.
| |
|
1.57, Аноним (57), 16:09, 12/04/2023 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
> kernel.unprivileged_userns_clone=0
Уже было. Оказыватся, я уже это делал давно, судя по конфигам.
| |
|
2.59, Аноним (10), 16:17, 12/04/2023 [^] [^^] [^^^] [ответить]
| +2 +/– |
Кто-то всё знал и молчал...пора размотать этот клубок заговоров и лжи.
| |
|
3.136, Аноним (-), 09:27, 13/04/2023 [^] [^^] [^^^] [ответить]
| +/– |
> Кто-то всё знал и молчал...пора размотать этот клубок заговоров и лжи.
При том эти заговоры тянутся уже не менее полувека: какие-то п...сы пишут документацию, а другие п...сы ее упорно не читают, даже под угрозой расстрела. Ну вот что с ними делать? На урановые рудники ссылать всех кто RTFM не практикует? Там СТОЛЬКО двуногих не уместится.
| |
|
|
1.68, Анонимусс (?), 16:53, 12/04/2023 [ответить] [﹢﹢﹢] [ · · · ]
| –3 +/– |
Если я усну и проснусь через десят лет и меня спросят, что сейчас происходит в си кодах, я отвечу: портят память и рут получают.
| |
|
2.116, Аноним (116), 23:10, 12/04/2023 [^] [^^] [^^^] [ответить]
| +/– |
Правильный ответ будет "ничего не происходит", ибо искусственному интеллекту Cи не нужен.
| |
|
1.81, InuYasha (??), 17:39, 12/04/2023 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Кто-нить ещё помнит, зачем отключали QoS во времена Win98? :)))) Вот, теперь и в Линухе пора.
| |
|
2.92, Аноним (10), 18:13, 12/04/2023 [^] [^^] [^^^] [ответить]
| +1 +/– |
Потому что они хотели чтобы все ушли в NT где всё сделают правильно. Вин98 это веселенький гуй под досом. Почему линукс не может сделать тоже самое чтобы приложеньки всегда запускались? Это не ко мне.
| |
|
3.108, Аноним (108), 21:04, 12/04/2023 [^] [^^] [^^^] [ответить]
| +1 +/– |
У меня складывается впечатление, что все DE в linux это Win98 над MS-DOS. Я не сравниваю ни DE с Win98 ни GNU/Linux с MS-DOS. Всё не в пользу майкрософт. Но что-то похожее.
| |
|
|
1.97, Егор (??), 18:39, 12/04/2023 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
Я не понял они просто выбросили модуль вместо исправления?
От трюкачи ))
| |
|
2.109, Аноним (109), 21:43, 12/04/2023 [^] [^^] [^^^] [ответить]
| +/– |
В Debian 10 этот параметр выключен и тем не менее завели на него статус уязвимо.
В RHEL, Fedora, SUSE, Arch, Gentoo даже нет в базе этого CVE. Допустим они подумали, что он по умолчанию выключен. Но ведь можно и включить.
| |
|
3.153, Аноним (-), 22:13, 13/04/2023 [^] [^^] [^^^] [ответить]
| +/– |
> В Debian 10 этот параметр выключен и тем не менее завели на
> него статус уязвимо.
Видимо чтобы трекать поставки фикшеных ядер. Ну как, поставлять ядро с известной дырой, даже и не активной в дефолтном конфиге, все же моветон.
| |
|
|
1.107, Аноним (108), 20:53, 12/04/2023 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
12-04-2023 20:51:23
Gentoo, RHEL, SUSE, Fedora, Gentoo, Arch нет этого CVE в багтрекере.
Отреагировали только Debian и Ubuntu.
| |
|