Отдельную тему слили в баяны, что ж, опубликую здесь, может кому то пригодится для понимая работы данной уязвимости.
Итак в чем суть - все процессоры Intel выпущенные за последние лет 15 имеют в себе дыру, которая позволяет прочитать память другого процесса. Что бы всем был понятен масштаб поясню - это не баг в программном обеспечении, который можно поправить обновлением, это баг в самой архитектуре процессора, то есть для полного его устранения вам понадобиться заменить процессор целиком, а для этого его еще должны спроектировать, запустить в производство и еще много всего, т.е. это дело не одного года.
А теперь вкратце как это работает.
Для начала вводный курс по программированию. В программировании есть такой оператор ветвлений - if - и в зависимости от условия, которое проверяется в самом начале, будет выполнен тот или иной кусок кода.
Все современные процессоры работают очень быстро. Намного быстрее, чем каналы связи (шины), по которым они получают данные. И для того, что бы процессор просто так не простаивал, ожидая, когда ему будут подгруженные данные из памяти для дальнейшей работы (а это порядка пары десятков тактов), они начинают выполнять дальнейший код программы (инструкции), исходя из ожиданий о том, какие именно данные с наибольшей вероятностью поступят. Это называется спекулятивным выполнение.
Возьмем такой код:
if (x < array1_size)
{
y = array1[x]
}
При последовательном выполнении этого кода процессор сначала проверяет, что переменная x находится в пределах массива array1, а потом выполняет вторую строку. При спекулятивном выполнении после какого-то количества if'ов, в которых действительно x < array1_size, процессор начинает считать, что данное условие с высокой вероятностью выполняется. поэтому начинает выполнение второй строки, не дожидаясь вычисления условия.
Что случается, если результат вычисления условия вдруг оказывается негативным? Процессор просто отбрасывает все предварительно вычисленные результаты и проводит вычисления заново, на этот раз уже последовательно. Одновременно модуль предсказания ветвлений снижает оценку вероятности того, что данное условие будет выполняться.
Что случается, если переменная x оказывается расположенной не просто за пределами конкретного массива, а вообще за пределами доступной данному процессу памяти? Процессор всё равно выполняет вторую строку кода.
И эти данные попадут в кэш процессора. Откуда использую атаку по времени их можно будет достать.
Всё гениальное просто. Подливает масло в огонь и то, что простой javascript в вашем браузере теоретически сможет эксплуатировать данную уязвимость. И никакой антивирус это засечь не сможет, так как, оговорюсь еще раз, это лежит не в плоскости софта, уязвимость закралась на аппаратном уровне.
Помимо meltdown, который свойственен только процессорам интел, так же была обнаружена уязвимость Specter, которой подвержены уже все современные процессоры, включая AMD, ARM (а это большая часть мобильных устройств) и другие. Specter более сложен в эксплуатации, да и в понимании его работы, поэтому писать о нём тут я не буду. Стоить лишь отметить, что софтового патча для защиты от спектр не будет.
Более подробно о Meltdown можно прочесть
тут