<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Локальная root-уязвимость в подсистеме inotify ядра Linux</title>
    <link>https://www.opennet.me/openforum/vsluhforumID3/111914.html</link>
    <description>Группа исследователей из Китайского университета Гонконга выявила (http://openwall.com/lists/oss-security/2017/08/03/2) уязвимость &lt;br&gt;(CVE-2017-7533 (https://security-tracker.debian.org/tracker/CVE-2017-7533)) в ядре Linux, которая может использоваться для повышения своих привилегий в системе. Проблема проявляется начиная с ядра v3.14-rc1 и актуальна вплоть до ядра 4.12. В сети уже распространяется эксплоит для 32-разрядых систем. Для 64-разрядных систем эксплоит пока отсутствует, но теоретически нет преград для его создания.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;Уязвимость вызвана состоянием гонки между обработкой события inotify и вызовом vfs_rename() в VFS, возникающим при выполнении операции переименования  над тем же файлом. Атакующий может добиться ситуации, при которой после обработки события inotify указатель указывает на новое имя файла, а буфер выделен для старого имени. Соответственно хвост нового имени файла сохраняется за пределами буфера и переписывает данные за границей текущего slab (https://ru.wikipedia.org/wiki/Slab), нап</description>

<item>
    <title>Локальная root-уязвимость в подсистеме inotify ядра Linux (Очередной аноним)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID3/111914.html#98</link>
    <pubDate>Fri, 18 Aug 2017 08:26:06 GMT</pubDate>
    <description>&amp;gt; Давай, расскажи нам, какие языки позволяют избежать гонки.&lt;br&gt;&lt;br&gt;Тот же D. Все &quot;обычные&quot; переменные локальны для потоков. Т.е. если ты объявишь &quot;int a;&quot; то в D это будет не глобальная переменная, которую может крутить каждый поток, конкурируя с соперниками. В D каждый поток получит свою копию этой переменной, которая будет храниться в TLS (thread-local storage). Если же тебе кровь из носу понадобится разделять её между потоками, то ты ее объявляешь разделяемой - &quot;shared int a;&quot;. И компилятор теперь знает, что она разделяется между потоками и запретит тебе совершать над ней опасные, не синхронизированные, действия. Т.е. ты не сможешь тупо сделать &quot;++a;&quot;, компилятор ругнется. Для этого  тебе придется использовать специальные атомарные примитивы из модуля std.concurrency для исключения одновременного незащищенного доступа. И вообще, там (в D) для взаимодействия потоков побуждают использовать подсистему сообщений, максимально локализуя, обособляя потоки друг от друга. Взаимодействие через разделяемые данные (которы</description>
</item>

<item>
    <title>Локальная root-уязвимость в подсистеме inotify ядра Linux (Ordu)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID3/111914.html#97</link>
    <pubDate>Tue, 15 Aug 2017 16:29:39 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;&amp;gt; сильно надуманно, но думаю степень можно опять), мы сохраняем на диск, &lt;br&gt;&amp;gt;&amp;gt; а второй поток начинает читать от туда, но первый ещё не &lt;br&gt;&amp;gt;&amp;gt; досохранял. Такое вот rust никак не отследит.&lt;br&gt;&amp;gt;&amp;gt; А то что у вас, это просто переменная в памяти, которая в &lt;br&gt;&amp;gt;&amp;gt; двух потоках трогается. Такое &quot;ещё в школе проходят&quot;, хотя не спорю, &lt;br&gt;&amp;gt;&amp;gt; случайно где-нибудь наступить можно.&lt;br&gt;&amp;gt; При всём при этом, возникает вопрос, придется ли мучится, если реально логикой &lt;br&gt;&amp;gt; эти потоки разделены, то есть одновременное выполнение кода не возможно, потому &lt;br&gt;&amp;gt; что второй поток уснул в ожидание. Я так понял, rust за &lt;br&gt;&amp;gt; такое будет пинать &lt;br&gt;&lt;br&gt;На такие случаи есть RefCell. RefCell сам по себе immutable объект (а значит можно одновременно иметь много ссылок на него), но если его попросить, то он выдаст mutable ссылку на содержащийся в нём объект. При этом он выполнит в рантайме проверки того, что в любой момент времени существует только одна mutable ссылка на объект. По сути, этот RefCell -- это те же проверки, которые </description>
</item>

<item>
    <title>Локальная root-уязвимость в подсистеме inotify ядра Linux (Ordu)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID3/111914.html#96</link>
    <pubDate>Tue, 15 Aug 2017 16:24:25 GMT</pubDate>
    <description>&amp;gt; Это все простейшие примеры. А логические гонки, когда, например (первое что пришло, &lt;br&gt;&amp;gt; сильно надуманно, но думаю степень можно опять), мы сохраняем на диск, &lt;br&gt;&amp;gt; а второй поток начинает читать от туда, но первый ещё не &lt;br&gt;&amp;gt; досохранял. Такое вот rust никак не отследит.&lt;br&gt;&lt;br&gt;Чем эта гонка &quot;логическая&quot;? Чтобы читать в или писать из File нужна mutable ссылка на этот File. Но rust запрещает иметь две mutable ссылки. В зависимости от того, каким образом вы попытаетесь создать две такие ссылки в разных потоках, вы получите либо ошибку компиляции, либо падение одного из потока в панику в описываемой ситуации, либо блокирование одного потока до завершения операции в другом.&lt;br&gt;&lt;br&gt;Другое дело, что потоки могут независимо придти к выводу, что файл надо открыть и что-то с ним сделать, и у них будет два разных объекта File. И да, от этого rust не защитит. Но в этом случае, race происходит _вне_ rust&apos;а. Здесь же речь идёт о _memory_ safety.&lt;br&gt;&lt;br&gt;&amp;gt; А то что у вас, это просто переменная в памяти, которая в &lt;br&gt;&amp;gt; двух потоках трогае</description>
</item>

<item>
    <title>Локальная root-уязвимость в подсистеме inotify ядра Linux (Аноним)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID3/111914.html#95</link>
    <pubDate>Tue, 15 Aug 2017 09:35:16 GMT</pubDate>
    <description>&amp;gt; Это все простейшие примеры. А логические гонки, когда, например (первое что пришло, &lt;br&gt;&amp;gt; сильно надуманно, но думаю степень можно опять), мы сохраняем на диск, &lt;br&gt;&amp;gt; а второй поток начинает читать от туда, но первый ещё не &lt;br&gt;&amp;gt; досохранял. Такое вот rust никак не отследит.&lt;br&gt;&amp;gt; А то что у вас, это просто переменная в памяти, которая в &lt;br&gt;&amp;gt; двух потоках трогается. Такое &quot;ещё в школе проходят&quot;, хотя не спорю, &lt;br&gt;&amp;gt; случайно где-нибудь наступить можно.&lt;br&gt;&lt;br&gt;При всём при этом, возникает вопрос, придется ли мучится, если реально логикой эти потоки разделены, то есть одновременное выполнение кода не возможно, потому что второй поток уснул в ожидание. Я так понял, rust за такое будет пинать&lt;br&gt;</description>
</item>

<item>
    <title>Локальная root-уязвимость в подсистеме inotify ядра Linux (Аноним)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID3/111914.html#94</link>
    <pubDate>Tue, 15 Aug 2017 09:33:35 GMT</pubDate>
    <description>Это все простейшие примеры. А логические гонки, когда, например (первое что пришло, сильно надуманно, но думаю степень можно опять), мы сохраняем на диск, а второй поток начинает читать от туда, но первый ещё не досохранял. Такое вот rust никак не отследит.&lt;br&gt;&lt;br&gt;А то что у вас, это просто переменная в памяти, которая в двух потоках трогается. Такое &quot;ещё в школе проходят&quot;, хотя не спорю, случайно где-нибудь наступить можно.&lt;br&gt;</description>
</item>

<item>
    <title>Локальная root-уязвимость в подсистеме inotify ядра Linux (Аноним)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID3/111914.html#93</link>
    <pubDate>Sun, 13 Aug 2017 15:48:25 GMT</pubDate>
    <description>&amp;gt;  Енжой ёр Си.&lt;br&gt;&lt;br&gt;А что, есть ЯП где гонки невозможно сделать принципиально?&lt;br&gt;</description>
</item>

<item>
    <title>Локальная root-уязвимость в подсистеме inotify ядра Linux (Ordu)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID3/111914.html#92</link>
    <pubDate>Fri, 11 Aug 2017 16:46:02 GMT</pubDate>
    <description>&amp;gt; Тут верный способ рассуждений такой: а кому ВЫГОДНО вкладываться в развитие Rust/Go/D ?&lt;br&gt;&lt;br&gt;Не совсем так. Выгодно всем, кто хоть немного в теме. Вопрос в том, кто вкладывается.&lt;br&gt;&lt;br&gt;&amp;gt; Приведу пример: MS Visual Studio принципиально не поддерживает стандарт C11 до сих &lt;br&gt;&amp;gt; пор.&lt;br&gt;&lt;br&gt;А майкрософтовский C++ компилятор ещё жив? Ну, в смысле, есть gcc, есть llvm, зачем кому-нибудь может быть нужен майкрософтовский компилятор? Если нужен MSVS, то проще ведь воткнуть llvm в MSVS и не париться на этот счёт больше никогда. То есть, я не в курсе на самом деле, писать какой-либо код под венду я не пытался очень давно и очень давно не интересовался как это надо делать. Может быть там все давно перешли писать на паскале, а я и не заметил.&lt;br&gt;&lt;br&gt;Вообще же это майкрософт в её стиле. Если MS занимается поддержкой какой-нибудь не своей технологии, то исключительно с целью перетянуть одеяло на себя. С C++ им особо ничего не светит в их понимании света. Поэтому они не будут заморачиваться поддерживать какие-то там стандарты C++. MS нико</description>
</item>

<item>
    <title>Локальная root-уязвимость в подсистеме inotify ядра Linux (pripolz)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID3/111914.html#91</link>
    <pubDate>Fri, 11 Aug 2017 14:20:34 GMT</pubDate>
    <description>&amp;gt; считать что индукция в данном случае -- неверный способ рассуждений&lt;br&gt;&lt;br&gt;Тут верный способ рассуждений такой: а кому ВЫГОДНО вкладываться в развитие Rust/Go/D ?&lt;br&gt;&lt;br&gt;Приведу пример: MS Visual Studio принципиально не поддерживает стандарт C11 до сих пор.&lt;br&gt;</description>
</item>

<item>
    <title>Локальная root-уязвимость в подсистеме inotify ядра Linux (Led)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID3/111914.html#89</link>
    <pubDate>Tue, 08 Aug 2017 18:31:28 GMT</pubDate>
    <description>&amp;gt; Почему перебегать улицу на красный свет плохо, мне объясняли.&lt;br&gt;&lt;br&gt;Для будущего асфальторовнятеля в модной оранжевой робе этого достаточно.&lt;br&gt;</description>
</item>

</channel>
</rss>
