1.1, Аноним (1), 17:52, 05/08/2022 [ответить] [﹢﹢﹢] [ · · · ]
| +5 +/– |
Не уязвимость, а канал доступа. Красиво, вряд ли только сейчас нашли. Это примерно как у многих сайтов ластик в интернет вывешен или VNC без пароля, только лучше.
| |
|
2.3, Аноним (3), 17:58, 05/08/2022 [^] [^^] [^^^] [ответить]
| +2 +/– |
А писали бы на единственной безопасном и быстром языке Carbon, то уязвимость они бы все равно нашил куда вставить.
| |
|
3.9, Аноним (-), 18:36, 05/08/2022 [^] [^^] [^^^] [ответить]
| +8 +/– |
Что-то подсказывает что лажаться с обработкой путей кодеры будут одинаково, хоть на брейнфаке.
| |
|
4.16, Аноним (16), 18:55, 05/08/2022 [^] [^^] [^^^] [ответить]
| –5 +/– |
Чтобы не лажаться с обработкой путей, нужна capability-based security model. Но unix-way - это продолжать жрать кактус.
| |
|
5.41, Аноним (41), 23:09, 05/08/2022 [^] [^^] [^^^] [ответить]
| +5 +/– |
> нужна capability-based security model
которую изобрели в unix системах
| |
5.46, Аноним (-), 00:22, 06/08/2022 [^] [^^] [^^^] [ответить]
| +/– |
> Чтобы не лажаться с обработкой путей, нужна capability-based security model.
В линухе оно даже есть. Как и контейнеры позволяющие довольно эффективно отрезать сервер в его загон когда выйти довольно проблематично.
Пара нюансов?
1) У вон тех может быть инновационный кернел типа 2.6.32 где наиболее эффективных фич конечно же нет. Оно было в каком году вообще? Я даже и не помню этого уже.
2) Насколько там всем было на безопасность - намекает пуск вебсервака под рутом. Думаете вон ТЕ станут заморачиватья чем-то более продвинутым? Плин, там фирмварь делана жоскими индусами которые рады по уши что доисторический CrapDK от вендора вообще что-то работающее выдал, все, узкоглазикам из *-link или чего там еще можно идти это продавать :)
| |
|
6.57, YetAnotherOnanym (ok), 09:49, 06/08/2022 [^] [^^] [^^^] [ответить]
| +1 +/– |
Правильно, пока ты будешь имплементировать свою продуманную архитектуру, санитизировать каждый пук, прилетающий извне и огораживать все компоненты капабилитями, вон те выкинут на рынок дешёвую поделку, сделанную по принципу "тяп-ляп и в продакшон". И твоя железка будет интересна только кучке гиков, которые имеют неприличную манеру совать нос под капот.
| |
|
7.64, Аноним (64), 21:24, 06/08/2022 [^] [^^] [^^^] [ответить] | +/– | Ну да, ну да, поэтому хомякам придется жить с д рьмовыми железками где фирварь п... большой текст свёрнут, показать | |
|
|
5.56, YetAnotherOnanym (ok), 09:43, 06/08/2022 [^] [^^] [^^^] [ответить]
| +/– |
Чтобы не лажаться с чем бы то ни было, надо думать головой. А владельцу бизнеса или лицу, принимающему решения - думать головой, чтобы наннимать разрабов, которые думают головой.
А на случай лажи, которую почему-то не получилось избежать - да, использовать в том числе и capability-based security model.
| |
|
|
3.90, Аноним (90), 17:06, 10/08/2022 [^] [^^] [^^^] [ответить]
| +/– |
Странно, а я думал, что быстрый и безопасный это раст. Учу программирование строго по опеннету, если что.
| |
|
2.36, Аноним (36), 21:53, 05/08/2022 [^] [^^] [^^^] [ответить]
| –1 +/– |
А вот ужасный сустемдэ своим сервисом изолировал бы юзерспейс!
| |
|
3.47, Аноним (-), 00:23, 06/08/2022 [^] [^^] [^^^] [ответить]
| +/– |
Он 2 метра RAM жрет, а в том крапе всей оперативы 16..32 мега и ее впритык :)
| |
|
|
1.8, Аноним (8), 18:30, 05/08/2022 [ответить] [﹢﹢﹢] [ · · · ]
| +14 +/– |
> разработчики подразумевали, что первый символ всегда "/"
Взоржал.
| |
|
2.48, Аноним (48), 00:27, 06/08/2022 [^] [^^] [^^^] [ответить]
| –1 +/– |
Нет такого пакета в этой репе! Сектор Б на барабане. Поздравляем, Вы - банкрот!
| |
|
1.34, Аноним (34), 20:51, 05/08/2022 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
> muhttpd (mu HTTP daemon) is a simple but versatile web server written in portable ANSI C
Но это, конечно же, были ненастоящие программисты на C. Настоящие такой лажи никогда не допустили бы, такие ошибки можно на любом языке сделать и вообще в вашем смузикрипте тоже дыр полно!
| |
|
|
3.45, Анонн (?), 00:13, 06/08/2022 [^] [^^] [^^^] [ответить]
| +1 +/– |
Ахаха, ты серьезно?
"Проблема присутствует начиная с самой первой версии muhttpd ..." это с 2007 года (надеюсь, иначе вообще с 2002)!
| |
|
2.50, Аноним (50), 01:10, 06/08/2022 [^] [^^] [^^^] [ответить]
| +/– |
Учитывая, что я вообще впервые слышу про такой веб-сервер, глаз там было по числу коммитеров умножить на полтора. :)
| |
|
3.63, Аноним (35), 19:51, 06/08/2022 [^] [^^] [^^^] [ответить]
| +/– |
Ну ты может и в первый раз слышишь, а его используют серьезные ынтерпрайз конторы типа "AT&T, Frontier и Windstream"
| |
|
|
|
2.52, Cucumber (?), 05:17, 06/08/2022 [^] [^^] [^^^] [ответить]
| –1 +/– |
В расте такая болезненная работа с путями, что там даже никогда не заметили бы проблемы за мишурой из бесконечных кастов OSString в String, Path в PathBuf, ResultReadDir в ReadDir в IteratorResultDirEntry в IteratorDirEntry в DisplayDirEntryPathExt и обратно.
| |
|
3.66, Аноним (-), 21:46, 06/08/2022 [^] [^^] [^^^] [ответить]
| +/– |
> В расте такая болезненная работа с путями, что там даже никогда не
> заметили бы проблемы за мишурой из бесконечных кастов OSString в String,
> Path в PathBuf, ResultReadDir в ReadDir в IteratorResultDirEntry в IteratorDirEntry в
> DisplayDirEntryPathExt и обратно.
Интересно а в всем этом не будет новых бонусных вулнов как это уже было в их stdlib'е? :)
| |
|
|
1.43, Онаним (?), 23:17, 05/08/2022 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
muahahahttpd
Ну конечно "разработчики" эмбедовки тоже кони ещё те. С цирком.
httpd от рута - это прелесть просто.
| |
|
2.49, Аноним (48), 00:29, 06/08/2022 [^] [^^] [^^^] [ответить]
| +1 +/– |
Да это обычно обдолбаные узкоглазики которые койкак слабали вообще и скорее продавать.
| |
|
1.51, Аноним (51), 04:41, 06/08/2022 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Недырявый домашний роутер - это что-то вообще из области фантастики )
Хотите за 30 баксов и еще чтоб безопасно?
| |
|
2.93, anonymous (??), 06:24, 13/08/2022 [^] [^^] [^^^] [ответить]
| +/– |
Никакой фантастики. Дайте железо и дрова, а линукс и прочий софт я сам накачу. А если в линуксе найдут дыру - обновлю линукс, это не проблема. Зачем вообще из эмбед делать отдельную сущность? Все те механизмы, которые работают на десктопах и сереверах, будут обеспечивать безопасность и на эмбеде.
| |
|
1.54, Sylvia (ok), 08:06, 06/08/2022 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
О существовании некоторых вебсерверов (и некоторого другого софта) узнаешь из сообщений об уязвимостях в них
| |
1.59, Аноним (58), 10:01, 06/08/2022 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
То что модератор удалил все комментарии про то что уязвимость очевидно вставлена намеренно лишь подтверждает этот факт.
| |
1.62, Аноним (62), 19:19, 06/08/2022 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
дайте угадаю,. следующая найденная там уязвимость будет
GET /../../../../../../../etc/passwd
?
потому что 'используя технику "DNS rebinding"' затруднительно пинуть именно "a/etc/passwd" - браузер надо еще както заставить такое выдать. А вот /../../../../../../../etc/passwd вообще не проблема...
| |
|
2.69, Аноним (69), 21:15, 07/08/2022 [^] [^^] [^^^] [ответить]
| +/– |
> браузер надо еще както заставить
Настоящий хакер (крякер тем более) работает с сетью только через браузер.
| |
|
1.67, burjui (ok), 04:49, 07/08/2022 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
extern char **environ;
int clearenv(void) {
/* We would like to free previously set environment variables here,
* but at least FreeBSD 5.1 doesn't let us */
/* Create empty environment */
environ = malloc(sizeof(char*));
if(environ) {
*environ = NULL;
}
return 0;
}
Беллиссимо. Это не местные ыксперты писали, которые в новости про Rust бегают?
| |
|
|
3.72, burjui (ok), 11:21, 08/08/2022 [^] [^^] [^^^] [ответить]
| +/– |
Серьёзно? Местных сишников послушать - так они лучшие в мире и никогда не делают ошибок, а ты очевидных косяков не видишь :)
Во-первых, вместо этой портянки
environ = malloc(sizeof(char*));
if(environ) {
*environ = NULL;
}
достаточно написать
environ = calloc(sizeof(char*), 1);
т.к. NULL в C - это просто ноль, приведённый к типу void*.
Во-вторых, тут как в анекдоте: вы или штаны наденьте, или крестик снимите. Зачем clearenv() возвращать int, если она всегда возвращает ноль? Тут уж или void clearenv(), или давайте возвращать ещё что-то кроме нуля.
В-третьих, если функция возвращает некие коды, неплохо бы их объявить, а не просто return 0. Вернуть ноль любой дурак может, а вот чтобы понять, что он значит в этой функции, нужно уже лезть в исходник,
В-чертвёртых, комментарий "Create empty environment" должен комментировать функцию, а не её внутренности. И вообще, он должен быть в заголовочном файле.
В общем, как-то так:
---- clearenv.h ----
#define CLEARENV_SUCCESS 0
#define CLEARENV_FAILURE -1
/* Create empty environment */
int clearenv(void);
---- clearenv.c ----
int clearenv(void) {
/* We would like to free previously set environment variables here,
* but at least FreeBSD 5.1 doesn't let us */
environ = calloc(sizeof(char*), 1);
return environ ? CLEARENV_SUCCESS : CLEARENV_FAILURE;
}
| |
|
4.73, Аноним (-), 13:39, 08/08/2022 [^] [^^] [^^^] [ответить] | +/– | Это всё, что ты перечислил, стилевые придирки Которые совершенно нерелевантны д... большой текст свёрнут, показать | |
|
5.74, burjui (ok), 14:55, 08/08/2022 [^] [^^] [^^^] [ответить]
| +/– |
> Ты не читал аргументацию Кармака, почему DRY плох и почему его надо заменять на WET?
...
> Здесь есть _одно_ использование функции, а значит осмысленно обобщить её не удастся. Зачем пытаться тогда совершить невозможное?
Какое отношение всё это имеет к обсуждаемой функции? Какое обобщение? Я вообще об этом даже не заикался.
> Типа в стандарте так написано, или ты на своей системе проверил, и решил, что так везде? Я лично не очень доверяю этому. Не знаю, почему.
Вот вместо написания этих двух предложений лучше бы почитал стандарт и убедился. Люди уже гуглить обленились, дожили.
> Достаточно один раз договориться
Ну и как там процесс идёт? Разработчики библиотек между собой уже договорились? А с разработчиками приложений? А то здесь одни значения успеха, там другие, а потом это всё сходится в одном приложении и приходится каждый раз лазить в доки, потому что невозможно удержать в голове, какие из 200 используемых функций из разных библиотек придерживаются какого стиля.
Вообще, я уже устал дискутировать, на остальное отвечать просто лень. Всё равно понятно, что здесь собрались эксперты мирового класса, мне таких не переспорить. ВСЁ, что я пишу, постоянно оспаривается, как будто из принципа, а собственные косяки мои оппоненты или замалчивают, или преподносят как истину. Видите ли, раньше все нормальные люди писали дефайны кодов ошибок, как в тех же *nix ОС, и это считалось правильно, а сегодня пришёл Аноним и заявил, что это - корпоративное уфло. Ну ок.
| |
|
6.76, Аноним (-), 20:04, 08/08/2022 [^] [^^] [^^^] [ответить] | +/– | Да, я знаю, именно поэтому мне пришлось об этом говорить Если рассмотреть функц... большой текст свёрнут, показать | |
|
7.77, burjui (ok), 23:27, 08/08/2022 [^] [^^] [^^^] [ответить]
| +/– |
> Так понятнее стало?
Нет, мне не стало понятнее, с чего вдруг ты вообще заговорил про обобщение и выделение в функции. Вот представь себе, что мы обсуждаем температуру воздуха - например, при какой человеку комфортнее заниматься физкультурой, и я внезапно начинаю говорить о том, как важны пропорции кислорода и азота, ведь если бы кислорода стало не 21%, как сейчас, а 51%, мы бы все сгорели в глобальном планетарном пожаре. Мысль, безусловно, имеющая смысл, но не имеющая никакого отношения к обсуждаемой теме.
> Вот ещё. Делать мне больше нечего.
> Я не знаю почему, но в таких вопросах я привык доверять интуиции.
Я искренне не понимаю: это такой тонкий троллинг, или ты на полном серьёзе сейчас кичишься своей безграмотностью в данном вопросе?
> Усталось всегда возникает симптомом, когда сливаешь дискуссию.
Ещё она возникает после общения с десятком таких, как ты, "экспертов" с чутьём и интуицией вместо знаний, которые постоянно выдают абсолютные утверждения вроде этого, призванные впечатлить местную школоту, которая ведётся на уверенных в себе дерзких "лидеров". Главное - выглядеть уверенным, тогда схавают любую ахинею. Принцип тот же, что и в политике.
| |
|
8.81, Аноним (-), 13:30, 09/08/2022 [^] [^^] [^^^] [ответить] | +/– | Я не знаю чем тут можно помочь Могу ещё попробовать так есть разные причины вы... большой текст свёрнут, показать | |
|
9.82, burjui (ok), 13:45, 09/08/2022 [^] [^^] [^^^] [ответить] | +/– | Намного короче и понятнее, чем предыдущие портянки текста Более того, можно был... текст свёрнут, показать | |
|
10.86, Аноним (-), 15:32, 09/08/2022 [^] [^^] [^^^] [ответить] | +/– | А, у тебя проблемы с длинными предложениями Надо простые писать Не осложнённые... большой текст свёрнут, показать | |
|
|
|
|
|
|
4.78, Аноним (78), 10:50, 09/08/2022 [^] [^^] [^^^] [ответить]
| –2 +/– |
> NULL в C - это просто ноль, приведённый к типу void*
Вообще нет. NULL - это не ноль. NULL - это именно специальное значение NULL, которое зависит от платформы. То, что в большинстве реализаций оно является нулём, не делает его нулём.
А с таким подходом ты можешь круто обосраться при переносе кода.
| |
|
5.79, burjui (ok), 13:10, 09/08/2022 [^] [^^] [^^^] [ответить]
| +/– |
Понятно, здесь не умеют гуглить. Так и быть, сделаю это за вас:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf
6.3.2.3 Pointers
An integer constant expression with the value 0, or such an expression cast to type
void *, is called a null pointer constant. If a null pointer constant is converted to a
pointer type, the resulting pointer, called a null pointer, is guaranteed to compare unequal
to a pointer to any object or function.
Надеюсь, никто не будет спорить с тем, что "целая константа со значением ноль" не зависит от платформы.
| |
|
6.83, Аноним (69), 13:50, 09/08/2022 [^] [^^] [^^^] [ответить]
| +/– |
Теперь погугли, что делает calloc: кастует нулевые байты в нулевые указатели?
| |
|
7.84, burjui (ok), 14:03, 09/08/2022 [^] [^^] [^^^] [ответить]
| +/– |
Это уже все рамки разумного переходит.
Во-первых, кастовать не обязательно: "An integer constant expression with the value 0, OR such an expression cast to type void *". Во-вторых, найди мне в стандарте место, где говорится, что указатель, которому присвоили ноль, может по воле компилятора оказаться не нулевым.
| |
|
8.85, Аноним (69), 14:16, 09/08/2022 [^] [^^] [^^^] [ответить] | +/– | Является ли блок из нулевых байтов An integer constant expression with the valu... текст свёрнут, показать | |
|
9.87, burjui (ok), 14:03, 10/08/2022 [^] [^^] [^^^] [ответить] | +/– | Знаешь, а ты прав Я тут почитал доп инфу и понял, что могут быть архитектуры, ... текст свёрнут, показать | |
|
|
11.91, burjui (ok), 20:46, 10/08/2022 [^] [^^] [^^^] [ответить] | +/– | Вообще-то, это обычная логика По-твоему, логично, что сущность с названием null... большой текст свёрнут, показать | |
|
|
|
|
|
|
|
4.88, burjui (ok), 14:12, 10/08/2022 [^] [^^] [^^^] [ответить]
| +/– |
Итак, после обсуждения ниже выяснилось, что в C, когда имеешь дело с указателями, ноль может стать не нулём, а не ноль может быть равным нулю. Простой язык, говорили они. Ну что же, получается, с calloc я сел в лужу, и код принимает такой вид:
int clearenv(void) {
/* We would like to free previously set environment variables here,
* but at least FreeBSD 5.1 doesn't let us */
environ = malloc(sizeof(char*));
if (environ)
*environ = NULL;
return environ ? CLEARENV_SUCCESS : CLEARENV_FAILURE;
}
| |
|
3.75, Аноним (69), 16:13, 08/08/2022 [^] [^^] [^^^] [ответить]
| –1 +/– |
Он как ыксперт по безопасным каракулям руст не разобрался в опасных каракулях си и увидел обнуление после malloc, и хотел сказать, что ржавчина на серебряных пулях уничтожает таких монстров до полного обнуления.
| |
|
4.80, burjui (ok), 13:15, 09/08/2022 [^] [^^] [^^^] [ответить]
| +/– |
Очередной бессмысленный комментарий от очередного недалёкого анона. Бессмысленный он хотя бы потому, что оставлен уже после обсуждения того, что конкретно мне не нравится в коде. Я там факты привожу, почитай. Ты же умеешь читать код на C?
| |
|
|
|
1.68, Аноним (68), 18:03, 07/08/2022 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Ожидал всего что угодно, но такого. Они просто читают файл по относительному пути без каких либо проверок. Этот сервер писали школьники на уроках информатики?
| |
|