Короче, пацаны, слушайте сюда, ща будет угар! 🔥 Представьте: сидят эти умники из Mozilla, кодят свой Firefox, думают, они самые крутые. А потом один чувак, видимо, после бурной вечеринки или просто потому что руки-крюки, берет и путает два значка в коде. И всё, приехали! 💀
В движке JavaScript (типа мозг браузера) под названием SpiderMonkey нашли дыру, через которую хакеры могли залезть в твой комп и делать там что хотят – ну, типа полный доступ, RCE называется [[3]]. И знаете, в чем прикол? Вся эта катастрофа случилась из-за того, что программист вместо палочки | написал амперсанд & [[2]]. Да-да, одна буковка, бл*дь! Это как если бы ты вместо "привет" написал "приве6", только тут последствия чуть серьезнее, чем недопонимание в чате.
Этот гений писал код для сборки мусора в WebAssembly (это такая штука, чтобы сайты летали быстро). Он делал рефакторинг, ну, типа "причесывал" код, и в файле WasmGcObject.cpp накосячил [[4]].
Надо было написать:
... = ... | 1; (это значит "поставь единичку в конец, типа пометка важная")
А он написал:
... = ... & 1; (а это значит "сотри всё нафиг и оставь только последнюю цифру") [[2]].
И вот тут начинается цирк! 🎪 Из-за того, как компы хранят данные в памяти, эта ошибка превращала важные адреса в обычный НОЛЬ. Просто 0. Пустота. 🕳️
Тут появился чел с ником Erge. Он копался в исходниках версии Firefox Nightly (это тестовая версия для самых отбитых), искал идеи для CTF (соревнования хакеров), и нашел этот косяк [[28]]. И такой: "Опа-на! Ща мы устроим дискотеку!". 💃🕺
Он сделал так:
Самое смешное, что этот бардак попал только в версию Firefox 149 Nightly [[21]]. То есть, обычные школьники и офисные работники со стабильным браузером даже не заметили, как рядом прошла пуля. Уязвимость не успела дойти до релиза, слава богу! 🙏
Хакер Erge быстро настучал в Mozilla (3 февраля), они сначала офигели, потом испугались, и уже 9 февраля всё пофиксили [[28]]. 11 февраля даже выплатили награду этому челу и еще одному, кто тоже нашел эту дыру. Молодцы, конечно, что нашли, но блин, как можно было так тупануть с одним символом?! 🤦♂️
Мораль сей басни: Ребята, проверяйте свой код, а то одна опечатка – и привет, ваша безопасность насмарку. И да, учите матчасть, чем отличается & от |, а то станете героем таких вот новостей! 😂🚫
Источник вдохновения (и ужаса): SecurityLab
