Bug 20783

Summary: CVE-2009-2477 Mozilla Firefox Memory Corruption Vulnerability
Product: Sisyphus Reporter: Vladimir Lettiev <crux>
Component: xulrunnerAssignee: Andrey Cherepanov <cas>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: major    
Priority: P3 Keywords: security
Version: unstable   
Hardware: all   
OS: Linux   
URL: http://secunia.com/advisories/35798/

Description Vladimir Lettiev 2009-07-15 10:05:37 MSD
SBerry has discovered a vulnerability in Mozilla Firefox, which can be exploited by malicious people to compromise a user's system.

The vulnerability is caused due to an error when processing JavaScript code handling e.g. "font" HTML tags and can be exploited to cause a memory corruption.

Successful exploitation allows execution of arbitrary code (http://milw0rm.com/exploits/9137).

The vulnerability is confirmed in version 3.5.
Comment 1 Alexey Gladkov 2009-07-17 03:26:17 MSD
А слабо написать эксплойт для linux, раз уж дублируете известные ссылки ?

FYI: У нас есть Security Group для таких багов.
Comment 2 Vladimir Lettiev 2009-07-17 12:10:11 MSD
Слабо зарелизить 3.5.1? ;)

Я почему-то думал, что уязвимость, которая была раскрыта публично не требует Security Group т.к. смысла скрывать её нет - детали уже всем известны, надо лишь пристальней следить за апстримом.
Comment 3 Alexey Gladkov 2009-07-17 13:06:36 MSD
Релиз был только вчера. Релизить раньше официального релиза я по понятным причинам не мог. О баге мне известно давно и дублировать такие вещи смысла нет.

Даже если я скажу что бага уже исправлена, вы это проверить не сможете на сборке из сизифа т.к. приведённый эксплойт показателен для винды. Это ещё одна причина не дублировать то что вы не сможете проверить.

Бага исправлена в новой сборке.
Comment 4 Vladimir Lettiev 2009-07-17 14:12:53 MSD
> О баге мне известно давно и дублировать такие вещи смысла нет.

https://bugzilla.mozilla.org/show_bug.cgi?id=503286

Товарищ Simon Berry-Byrne честно спёр пример кода, который вызывает крах приложения и прикрутил к нему код для забивания всей кучи NOP массивом с прикреплённым шелкодом на конце для запуска calc.exe. Так называемая техника heap spraying, которая позволяет в некоторых случаях при переходе по неверному адресу в памяти попасть именно в тот участок кучи, где находится наш шеллкод. Т.о. тот факт, что забыли поставить галочку видимости на баге привёл к тому, что появился 0-day эксплойт.

> Даже если я скажу что бага уже исправлена, вы это проверить не сможете на
> сборке из сизифа т.к. приведённый эксплойт показателен для винды. Это ещё одна
> причина не дублировать то что вы не сможете проверить.

Это неверно. Речь в этом баге идёт о уязвимости которая приводит к краху приложения. И воспроизвести это я могу на linux (что я и сделал до того как запостить сюда). Эксплойт всего лишь доказывает, что помимо краха эта уязвимость может использоваться и для выполнения произвольного кода. Пример кода, который воспроизводит крах без попыток выполнения кода: https://bugzilla.mozilla.org/attachment.cgi?id=387752

Заменив shell-код запуска calc.exe на шелкод, который работает на linux (выбираем какой нравиться: http://www.milw0rm.com/shellcode/linux/x86) можно попытаться добиться работы эксплойта на linux. Но запуска добиться не удалось, впрочем не удалось добиться запуска и calc.exe на windows. Очевидно выбранная методика атаки не даёт 100% результат.

> Бага исправлена в новой сборке.

Спасибо.