<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Уязвимость в HTTP-сервере muhttpd, открываяющая доступ к файлам вне рабочего каталога</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/128144.html</link>
    <description>В HTTP-сервере muhttpd, применяемом преимущественно в маршрутизаторах и точках доступа, выявлена уязвимость (CVE-2022-31793), позволяющая неаутентифицированному атакующему через отправку специально оформленного HTTP-запроса загрузить произвольные файлы, насколько это позволяют права доступа, под которыми выполняется HTTP-сервер (во многих устройствах muhttpd запускается с правами root). Например, атакующий может получить доступа к файлам с паролями, настройками беспроводного доступа, параметрами подключения к провайдеру и закрытыми ключами...&lt;br&gt;&lt;br&gt;Подробнее: https://www.opennet.ru/opennews/art.shtml?num=57601&lt;br&gt;</description>

<item>
    <title>Уязвимость в HTTP-сервере muhttpd, открываяющая доступ к фай... (anonymous)</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/128144.html#93</link>
    <pubDate>Sat, 13 Aug 2022 03:24:29 GMT</pubDate>
    <description>Никакой фантастики. Дайте железо и дрова, а линукс и прочий софт я сам накачу. А если в линуксе найдут дыру - обновлю линукс, это не проблема. Зачем вообще из эмбед делать отдельную сущность? Все те механизмы, которые работают на десктопах и сереверах, будут обеспечивать безопасность и на эмбеде.&lt;br&gt;</description>
</item>

<item>
    <title>Уязвимость в HTTP-сервере muhttpd, открываяющая доступ к фай... (Аноним)</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/128144.html#92</link>
    <pubDate>Thu, 11 Aug 2022 18:14:02 GMT</pubDate>
    <description>&amp;gt; По-твоему, логично, что сущность с названием null pointer может быть не равна нулю? &lt;br&gt;&lt;br&gt;Ты прочитал, что делает calloc?&lt;br&gt;&lt;br&gt;Правильно. Выделяет массив байт и обнуляет этот массив байт.&lt;br&gt;&lt;br&gt;Где ты увидел (нулевой) указатель? Причем тут &quot;null pointer constant&quot;, который имеет смысл только во время компиляции?&lt;br&gt;&lt;br&gt;Что надо сделать, чтобы появился указатель? Надо сперва записать указатель в то место, откуда потом будешь читать. Обнуление байтов - это не запись указателя.&lt;br&gt;&lt;br&gt;Общее правило: перед тем как читать из памяти данные определенного типа, надо туда записать данное того же типа.&lt;br&gt;&lt;br&gt;Конечно, есть некоторые правила бинарного представления типов данных: типа целые - в дополнительном коде, си-строки - последовательность ненулевых байт заканчивающаяся нулевым байтом и т.п.&lt;br&gt;</description>
</item>

<item>
    <title>Уязвимость в HTTP-сервере muhttpd, открываяющая доступ к фай... (burjui)</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/128144.html#91</link>
    <pubDate>Wed, 10 Aug 2022 17:46:57 GMT</pubDate>
    <description>Вообще-то, это обычная логика. По-твоему, логично, что сущность с названием null pointer может быть не равна нулю? Почему-то null pointer constant всегда равна нулю, а null pointer - нет. Логично то, что можно получить не ноль, присвоив чему-то ноль в языке без перегрузки операторов? Логично то, что сравнение ненулевого значения с нулём возвращает true? Все смеются над JavaScript с его неявными преобразованиями, но кода это касаеться C - &quot;это другое&quot;. Это не моя логика &quot;неправильная&quot;, а в C логика не работает, потому что комитет стандартизации решил использовать ноль для обозначения невалидного указателя, а потом оказалось, что где-то нулевой адрес вполне легитимен, и теперь мы имеем терминологию, имеющую лишь косвенное отношение к реальности, и поведение компилятора, которое в народе называется ugly hacks. Но, конечно, это моя вина, что я не прочитал ВЕСЬ стандарт, а там наверняка где-то написано, что null pointer - это не всегда null. Ну и, конечно, всё-таки, лучше использовать специальную константу NULL и </description>
</item>

<item>
    <title>Уязвимость в HTTP-сервере muhttpd, открываяющая доступ к фай... (Аноним)</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/128144.html#90</link>
    <pubDate>Wed, 10 Aug 2022 14:06:27 GMT</pubDate>
    <description>Странно, а я думал, что быстрый и безопасный это раст. Учу программирование строго по опеннету, если что.&lt;br&gt;</description>
</item>

<item>
    <title>Уязвимость в HTTP-сервере muhttpd, открываяющая доступ к фай... (Аноним)</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/128144.html#89</link>
    <pubDate>Wed, 10 Aug 2022 12:02:37 GMT</pubDate>
    <description>Вот ты лучше расскажи своей логикой растомана. Почему, записывая массив байтов из нулей, хочешь из этого массива байтов прочитать (валидный) указатель? Раст позволяет такие вольности с преобразованиями типов?&lt;br&gt;</description>
</item>

<item>
    <title>Уязвимость в HTTP-сервере muhttpd, открываяющая доступ к фай... (burjui)</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/128144.html#88</link>
    <pubDate>Wed, 10 Aug 2022 11:12:43 GMT</pubDate>
    <description>Итак, после обсуждения ниже выяснилось, что в C, когда имеешь дело с указателями, ноль может стать не нулём, а не ноль может быть равным нулю. Простой язык, говорили они. Ну что же, получается, с calloc я сел в лужу, и код принимает такой вид:&lt;br&gt;&lt;br&gt;int clearenv(void) &#123;&lt;br&gt;    /* We would like to free previously set environment variables here,&lt;br&gt;     * but at least FreeBSD 5.1 doesn&apos;t let us */&lt;br&gt;    environ = malloc(sizeof(char*));&lt;br&gt;    if (environ)&lt;br&gt;        *environ = NULL;&lt;br&gt;    return environ ? CLEARENV_SUCCESS : CLEARENV_FAILURE;&lt;br&gt;&#125;&lt;br&gt;</description>
</item>

<item>
    <title>Уязвимость в HTTP-сервере muhttpd, открываяющая доступ к фай... (burjui)</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/128144.html#87</link>
    <pubDate>Wed, 10 Aug 2022 11:03:33 GMT</pubDate>
    <description>Знаешь, а ты прав. Я тут почитал доп. инфу и понял, что могут быть архитектуры, где null pointer не нулевой и не равен null pointer constant. При этом сравнение первого со вторым будет возвращать true, несмотря на фактически разные значения. И вообще, получается, что ты присваиваешь чему-то ноль, а там после этого не ноль. Пожалуй, это хорошо, что я уже давно не пишу на C - не только для пользователей, но и для моей психики.&lt;br&gt;</description>
</item>

<item>
    <title>Уязвимость в HTTP-сервере muhttpd, открываяющая доступ к фай... (Аноним)</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/128144.html#86</link>
    <pubDate>Tue, 09 Aug 2022 12:32:29 GMT</pubDate>
    <description>&amp;gt; Намного короче и понятнее, чем предыдущие портянки текста. Более того, можно было сократить даже до одного предложения.&lt;br&gt;&lt;br&gt;А, у тебя проблемы с длинными предложениями? Надо простые писать? Не осложнённые всякими деепричастными оборотами, так? И уж тем более не составные. Ок.&lt;br&gt;&lt;br&gt;&amp;gt; А, ну понятно.&lt;br&gt;&lt;br&gt;Нет. Ты опять не понял. Там опять были сложные предложения. Давай я тебе простыми изложу.&lt;br&gt;&lt;br&gt;Инженерное дело -- это не о том, что ты наизусть помнишь. Инженерное дело о том, какую информацию ты можешь найти. И об умении опознать ситуацию, в которой надо искать.&lt;br&gt;&lt;br&gt;Наизусть запоминать -- это уровень undergraduate студента. Потому что их академическая успешность измеряется способностью воспроизводить по памяти никому не нужные заученные знания.&lt;br&gt;&lt;br&gt;/* Длинное предложение получилось, да? Давай я про инженеров скажу, там короче выйдет: */&lt;br&gt;&lt;br&gt;Успешность инженера определяется не тем, как много стандартов он заучил. Успешность инженера определяется качеством произведённого им продукта.&lt;br&gt;&lt;br&gt;&amp;gt; о Rust&lt;br&gt;&lt;br&gt;Кто о чём, а опеннет о р</description>
</item>

<item>
    <title>Уязвимость в HTTP-сервере muhttpd, открываяющая доступ к фай... (Аноним)</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/128144.html#85</link>
    <pubDate>Tue, 09 Aug 2022 11:16:08 GMT</pubDate>
    <description>Является ли блок из нулевых байтов &quot;An integer constant expression with the value 0&quot;?&lt;br&gt;&lt;br&gt;Или (чтобы не было UB) надо сперва записать в блок по адресу &quot;нулевой указатель&quot;, чтобы потом прочитать по этому адресу тот самый &quot;нулевой указатель&quot;?&lt;br&gt;</description>
</item>

</channel>
</rss>
