Исследователи безопасности обратили внимание (https://www.bamsoftware.com/hacks/deflate.html) на возможность создания PNG-файлов, при распаковке съедающих всю доступную память. Определённый набор настроек в заголовке в сочетании с особенностями распаковки нулевых областей при использовании метода сжатия DEFLATE (каждая пара бит может кодировать 258 нулевых байт) позволили создать PNG-изображение размером 6 Мб (в форме bzip-архива (https://www.bamsoftware.com/bzr/deflate/spark.png.bz2) 420 байт), которое распаковывается в картинку 50 гигапикселей (225000 × 225000), которая в раскладке 3 байта на пиксель потребует для своей обработки буфера в 141.4 Гб.
Как правило, попытка открытии такой картинки в приложениях или браузере приводит к завершению процесса из-за исчерпания доступной памяти. В качестве примеров атак отмечается подстановка данной картинки на сайт в качестве изображения favicon.ico, открываемого браузером по умолчанию, или загрузка в online-сервисы в качестве аватара для инициирования сбоев скриптов обработки изображений. Потенциально атака может быть осуществлена и для других типов контента, в которых используется метод сжатия DEFLATE.URL: https://news.ycombinator.com/item?id=10158529
Новость: http://www.opennet.me/opennews/art.shtml?num=42905
Safari спокойно отобразил картинку.
> Safari спокойно отобразил картинку.И что на ней?
Моя бывшая массой 140кг.
Ужас!
Чёрный квадарат.
Хотя вполне возможно, что safari просто сжульничал и не стал рендерить картинку без всяких оповещений (такое поведение я за ним замечал на больших объёмах информации)
Это не жульничество, а элементарная проверка исходных данных перед распаковкой. Очень сильно разочаруюсь в разработчиках других браузеров, если такой проверки у них нет
> Это не жульничество, а элементарная проверка исходных данных перед распаковкой. Очень сильно
> разочаруюсь в разработчиках других браузеров, если такой проверки у них нетНежульничество - написать "не хочу распаковывать большую картинку", или хотя бы "не покажу, плохая картинка", как это сделал firefox.
А показывать черный квадрат - это жульничество, юзеры подумают, что браузер нормально открыл картинку и на ней черный квадрат. Собственно, так они и подумали, см.выше.
как ни странно, завалявшаяся опера 12 тоже. А вот современний seamonkey и gqview просто выругались, что image contains errors
И что она показала? Там на картинке надпись есть. И мне интересно, какие программы осилят её показать.
Есть комментарии ( https://sohabr.net/gt/post/261276/#comment_8761792 ) что Microsoft Picture Manager и Adobe Photoshop CC 2015 успешно открывают.
А показана там надпись на синем фоне - "Sorry, our princess is in another pixmap"
Не пролистывал
Скриншот сафари с открытой картинкой в студию!
https://www.dropbox.com/s/s9fvdp9ot4pat4f/Screenshot%20...
> https://www.dropbox.com/s/s9fvdp9ot4pat4f/Screenshot%20...Сафари читит! Вместо картинки чорный квадрат показывает. Наверняка Малевич проплатил.
> Наверняка Малевич проплатил.Угу, с того света. По курсу 30-тых.
Творчеством Малевича конечно восхищаться далеко не обязательно, но не знать банальнейших вещей (типа, что это далеко не наш современник) ...
Стыдно, не?
> Угу, с того света. По курсу 30-тых.
> Творчеством Малевича конечно восхищаться далеко не обязательно, но не знать банальнейших
> вещей (типа, что это далеко не наш современник) ...
> Стыдно, не?Сарказм же! Неужели в современном мире надо обязательно теги проставлять? [сарказм]#сарказм[/сарказм]
А проплатить мог и кто-то из потомков-правопреемников, носящих ту же фамилию...
> Safari спокойно отобразил картинку.Лис сказал что "contains an error" и показывать не стал. Ristretto корректно рассказал что картинка 225000 на 225000 пикселов и памяти на такую картинку не хватит.
Тестируем:
1. https://upload.wikimedia.org/wikipedia/commons/f/f4/360-degr...
2. http://derpicdn.net/img/2012/11/9/146238/full.png
Это фэйк. Оба изображения нормально открываются.
> Это фэйк. Оба изображения нормально открываются.Ждём тех, у кого нет.
Дорогой, IE уже поддерживает PNG. Кого ждем?
Мимо, единственное у кого могут быть проблемы на больших картинках - это пользователи фурифокса на линуксе, ибо иксы ...
https://bugs.freedesktop.org/show_bug.cgi?id=77107
https://bugs.freedesktop.org/show_bug.cgi?id=44099
https://bugzilla.mozilla.org/show_bug.cgi?id=957741
...
Хрен Вам! «Изображение содержит ошибки»
> Хрен Вам! «Изображение содержит ошибки»Хрен Вам. Оба нормально показыаются. Фурифоксом, на линухе. Одновременно. На одном пони, на другом панорама с звездным небом. При том тестовая система была довольно малохольная: 2Гб RAM на все вместе. Без свопа. Предъява линухам и фоксу какая-то не предъявистая получилась.
УМВР, обе картинки открылись нормально. Iceweasel 40.0.3, X.Org X Server 1.16.4, NVIDIA Driver Version: 352.21.Картинку с новости что Хром, что Лиса не осилили.
Пользователь фурифокса на линухе рапортует о норманом отображении, фейк?
> Пользователь фурифокса на линухе рапортует о норманом отображении, фейк?Не совсем. Файрфокс проверяет размеры, сильно большие картинки отказывается отображать. В смысле, он не виснет, но и картинку не показывает.
Не хочу разводить срач, но...Bug 77107
Component: Driver/RadeonBug 44099
Component: Driver/RadeonЧто как бы намекает.
оно намекает что баг не поленился зарепортить пользователь с радеоном.
У меня точно такая же херня на антикварном intel D2700 (с проприетарными интеловскими драйверами, разумеется). Похоже, автор багрепорта прав - нужно сочетание медленный процессор+медленный gpu+какая-то присущая преимущественно мазилле особенность работы с графикой(на самом деле не только, у xv те же проблемы, а вот у gqview и прочего более современного софта их нет - скорее всего потому, что они масштабируют либо режут картинку до отправки ее графическому модулю)
Репортить бессмысленно - баг будет закрыт потому что "это все поганый проприетарный драйвер", "у меня не воспроизводится", "смените версию мазилы/иксов/драйвера/пользователя за клавиатурой". А настоящая причина, разумеется, в том что у девелопера дорогая и мощная игрушка, и его эта проблема не достает. Фрисофтваре такое вот фрисофтваре...AOT: на винде ни один из имеющихся браузеров spark.png открывать не захотел с идиотскими сообщениями о том что файл битый (гуглезонда у меня нет, но не думаю что и у него что-то другое). Виндовая смотрелка честно сообщила что "что-то оперативной памяти у тебя маловато" и тоже не упала. Intel HD3000 - возможно, на дискретной видюхе винда таки попыталась бы использовать видеокарту для масштабирования. Но вряд ли.
P.S. советы вида "тебе надо - пойди и исправь сам" принимаются от тех, у кого есть хоть один коммит в дерево xorg или принятый коммитером патч. И не в xterm.c
Не могу согласится со всем выше написанным, но факт в том, что у меня всё открывает и не хрюкает (у меня Невидиа). И нет, я никого не защищаю, просто получилось тогда видюшку со скидкой купить, ей и пользуюсь.Ну про spark.png я уже говорил - не открывает ни у кого. У меня в обоих браузерах не открывает. Но большие картинки у меня открывает без проблем, правда в фурифоксе всё-таки медленно рендерится.
Зачем эти ссылки, когда в новости есть ссылка на bzip2 файл?Pale Moon 25.7.0 выдает 'The file "../spark.png" cannot be displayed because it contains errors.'
У меня нет желания и времени качать и распаковывать…
> У меня нет желания и времени качать и распаковывать…Зато сюда спамить бесполезный мусор - у тебя время есть.
>Pale Moon 25.7.0 выдает 'The file "../spark.png" cannot be displayed because it contains errors.'Практически, аналогично. В Слаке Гвенвью и текущий (31.8 на моей системе) фаерфокс послали нафиг. И чо?
Не смотря на то, что моя лиса нещадно течёт (я об этом уже писал), картинки открылись шустрее некоторых сайтов. Лиса жива…
> 50 гигапикселей (225000 × 225000),...
> 141.4 Гб.Масштабно. Хотя подождите, они изобрели zip-бомбу, заливаемую любителями лулзов на BBSки несимпатичным сисопам. А потом авер вкалывает два дня, а все остальные дружно курят, как минимум без новых аплоадов.
такого рода бага была где можно было favicon.ico создать гигабайтами и все браузеры по умолчанию будут автоматически грузить его и тем самым грузить клиентскую систему и кушать трафф %) https://github.com/benjamingr/favicon-bug
Мы неделю назад такие же квадратные pngшки дикого размера генерили для тестов нашего сайта. Кто-то читает логи нашей конфы...
А вы -- это кто, если не секрет?
Анонины с анонимного сервера, разумеется.
В принципе можно сказать, что анонимы с публичными чатлогами, да.
> В принципе можно сказать, что анонимы с публичными чатлогами, да.Хорошо, другой вопрос. Вы чем-то можете доказать ваши слова? Я просто хотел сам загуглить после того, как узнаю кто вы, но так как вы не хотите деанонимизироваться, то у меня нет такой возможности.
>> В принципе можно сказать, что анонимы с публичными чатлогами, да.
> Хорошо, другой вопрос. Вы чем-то можете доказать ваши слова? Я просто хотел
> сам загуглить после того, как узнаю кто вы, но так как
> вы не хотите деанонимизироваться, то у меня нет такой возможности.P.S.: Я просто люблю проверять факты, извиняюсь если это прозвучало грубо — ничего плохого не имелось в виду.
> P.S.: Я просто люблю проверять факты, извиняюсь если это прозвучало грубо —
> ничего плохого не имелось в виду.Ничего страшного, просто деанонимизирует это не совсем меня...
6.2 гигапикселя
> Мы неделю назад такие же квадратные pngшки дикого размера генерили для тестов
> нашего сайта. Кто-то читает логи нашей конфы...А вы, наверное, прочитали матюки сисопов 20-летней давности, когда им на BBS'ки лили зипари с нулями ужатые 100500 к 1 :). Сисопы обиделись и наиболее ушлые из них стали проверять степень сжатия. Если больше чем эн к одному - можно банхаммер в репу получить. Атоматически.
> А вы, наверное, прочитали матюки сисопов 20-летней давности, когда им на BBS'ки
> лили зипари с нулями ужатые 100500 к 1 :). Сисопы обиделись
> и наиболее ушлые из них стали проверять степень сжатия. Если больше
> чем эн к одному - можно банхаммер в репу получить. Атоматически.Мы свой сайт на устойчивость тестили, смотрели на каких размерах начнёт дохнуть и лимиты настраивали. Понятно, что идея не нова. Да и ничего особенного в ней нет, это не droste.zip. Но забавно, что про неё вспомнили именно после наших экспериментов с большими png-шками.
> неё вспомнили именно после наших экспериментов с большими png-шками.Вообще-то не после ваших, а после сабжевых. Не надо себе приписывать чужие заслуги, вы - не пуп земли.
Сколько ещё шутников выложит левые ПНГшки под видом сабжа, только хоть кто-то посмотрел на дурацкие картинки?
У меня на Ubuntu при попытке открыть эту PNG в GIMP 2.9.1 сработало. Началось быстрое поедание памяти, действия, например переключение между окнами приложений, начали отрабатываться с лагом в несколько секунд. Нажал отмену, не дожидаясь полного зависания.
Это потому что ты не пользуешься zram.
> Это потому что ты не пользуешься zram.Ударим компрессией памяти по ZIP-бомбам! :)
>> Это потому что ты не пользуешься zram.
> Ударим компрессией памяти по ZIP-бомбам! :)Блжад, на заплёваной вами венде компрессионные бомбы еще в прошлом столетии пролечили.
Фаерфокс открывать эту пнг отказался, при попытке открыть файл в гимп получилось как-то так http://i.imgur.com/ffdhd26.jpg
На этом пожирание памяти остановилось и система оставалась отзывчивой. Видимо сработала какая-то защита от таких атак...
Gimp создаёт свой своп-файл и сбрасывает данные туда. Погляди в ~/.gimp-2.8
Действительно, так и есть. 10гб еще успел на диск записать до того как я его закрыл. Был лучшего мнения о гимпе.
> Действительно, так и есть. 10гб еще успел на диск записать до того
> как я его закрыл. Был лучшего мнения о гимпе.Это нормально, вообще-то. Других способов редактирования гигантских картинок нет.
Это где такие картинки по 20гб то еть? Да и он мог спросить пользователя скажем на 1гб+ стоит ли продолжать загружать эту картинку. А тут молча фигачит на диск. А так выходит открыл картинку, свернул окно, через несколько минут ссд на 100 гигов полностью забито.
> Это где такие картинки по 20гб то еть?Геоданные, астрономия...
> Да и он мог спросить пользователя скажем на 1гб+ стоит ли
> продолжать загружать эту картинку. А тут молча фигачит на диск.У него это в настройках есть.
И где у него такие настройки? Я нашел только некий tile cache size = 7 Гб, но если это оно и есть, то его значение игнорируется http://i.imgur.com/yIjMuB2.png
Обратите внимание на IO Write. Оно серьезно собирается писать на диск пока не кончится место. И при этом оно даже не ограничено размером своп раздела. apt-get purge gimp давай до свидания.
> И где у него такие настройки? Я нашел только некий tile cache
> size = 7 Гб, но если это оно и есть, то
> его значение игнорируется http://i.imgur.com/yIjMuB2.pngTile cache size это как раз объём оперативной памяти, который можно занять под картинку. То что не влезет он будет на диск свопить.
Там рядом есть максимальный размер картинки же! Или он только для новых файлов его проверяет?
Ну так как значение 7Гб, а свопить он начал после 10Гб, то явно это не то значение.
>The cache tile size is the amount of data (tiles) that Photoshop operates on at one time.Видимо и в гимпе эта настройка означает то же самое.
И да, размер максимальный размер можно задать только для новых картинок.
> apt-get purge gimp давай до свидания.Это огромная потеря для сообщества Gimp юзеров, мы все помним и скорбим о твоем уходе. Нам не безразлично что ты удалил Gimp и в ближайшее время я и еще 33 добровольца уйдет с основной работы и начнут улучшать Gimp фултайм в надежде что ты возвратишься и сделаешь apt-get install gimp.
Ну а пока что apt-get install adobe-photoshop
> Это нормально, вообще-то. Других способов редактирования гигантских картинок нет.Посмотрите nip2.
>> Это нормально, вообще-то. Других способов редактирования гигантских картинок нет.
> Посмотрите nip2.То же самое. `nip2 spark.png` просит подождать 126 минут, а тем временем пишет гигабайты в ~/.nip2*
Ну так если вы хотите работать с 140Гб картинкой целиком в памяти, без медленной эмуляции недостающей памяти диском - извольте себе эти 140Гб физической памяти докупить. Ну или смысла то жаловаться что HDD - тормозная эмуляция оперативы? Мы и без вас это знали.
Сейчас подойдёт Прокудин и скажет что всё в полном порядке, так и было задумано.
Вообще-то этой "технике" лет чуть ли не столько же, сколько формату PNG.И вообще, нормальные редакторы/просмотрщики, которые в курсе что изображения бывают и гигапикселями (например в астрофото или панорамах), грузят только кусок картинки, а не всю целиком. Фотошоп, например, не удалось подвесить, т.к. в нем обработка больших картинок сделана по уму.
Так что на картинке-то?
Просмотр изображений в Убунте сказал что "Недостаточно памяти для хранения изображения размером 225000 на 225000; попробуйте закрыть некоторые приложения, чтобы уменьшить количество используемой памяти"..не взорвалас "бомба" (((((
safari - отобразил большой чёрный квадрат
opera и firefox - не стали загружать, типа некорректное изображение
Встроенный просмотрщик в OS X - сожрал 61 ГБ памяти, появилось сообщение о том, что "не хватает памяти", закрыл
В Windows 8.1 средствами системы тоже не получается отобразить фаил - сразу пишет нехватка памяти.
libpng error: IDAT: CRC error
feh открыл и не упал.
Файл открылся хекс-редактором. Никакого выедания памяти и зависаний. Лжёт новость.
> feh открыл и не упал.Мне `feh -F spark.png` показал чорный экран вместо картинки и IDAT: CRC error.
Попробовал открыть через ImageMagic через три минуты комп повис напрочь и больше не включается. Пишу с телефона.
Брат-то жив?
> Попробовал открыть через ImageMagic через три минуты комп повис напрочь и больше
> не включается. Пишу с телефона.Я попробовал открыть с телефона, телефон теперь не включается, пишу с печатной машинки.
С пылесоса же!
Попробовал открыть с печатной машинки, теперь не нажимаются клавиши, пишу через сервис HTTP/PM (HTTP over Pidgeon Mail).
Попробовал через сервис HTTP/PM (HTTP over Pidgeon Mail) - завис, выключил электричество в квартире, взял палатку, еду и пошёл в лес на три дня, чтобы развеяться из-за череды неудач и зависаний
Ни одна программа не зависла и не открыла картинку.
в GIMP смог воспроизвести, но он не уронил систему, начал в свой собственный своп все валить
+ phatch (удобное ПО для пакетного редактирования изображений) реально смогла воспроизвести, ОЗУ и своп забился под упор..... остальное ПО дало ошибку..
Ubuntu 15.04
http://m8y.org/tmp/zipbomb/foo.html - то же самое, но на svg.
Роняет виндовую мазилу, вместе с виндой, из _успешно_закрытого_ Bug 1174811 которой я и добыл эту чудесную ссылку ;-)В линуксе должен, по идее, сработать oom-killer, но под рукой нет мазилы, которую не жалко уронить, а виртуалку запускать мне лень.
да, внутри там, естественно, вот такой big.svgz:
compressed uncompressed ratio uncompressed_name
1042150 1073741875 99.9% big.svg
> но под рукой нет мазилы, которую не жалко уронить,
> а виртуалку запускать мне лень.Зачем виртуалку? Можно же запустить в отдельном профиле, ограничив ему память:
ulimit -v 1000000
firefox --no-remote -p testsvg
> Зачем виртуалку? Можно же запустить в отдельном профиле, ограничив ему память:так она тогда гавкнется в core по лимиту, а oom не придет.
P.S. msie страницу открыл, но криво. Подсунул ему сам svgшник - сожрал 11гиг и политкорректно самоубился. Правда, обещал вернуться и "восстановить страницу" ;-)
> Правда, обещал вернуться и "восстановить страницу" ;-)Да, хорошая мысль - восстановить страницу съевшую 11 гигз. Лучше всего это сделать автоматически, без подтверждения пользователем. Мозилла когда-то так и делали. Но постепенно жизнь научила их не загружать содержимое восстанавливаемых табов пока юзер на них не клацнул, а то и вовсе подтверждение на рестор сессии спрашивать. И чего это они? :)
Фф отожрал 11гб и начал дико глючить, но вкладку закрыть дал.
> http://m8y.org/tmp/zipbomb/foo.html - то же самое, но на svg.
> Роняет виндовую мазилу, вместе с виндой, из _успешно_закрытого_ Bug 1174811 которой я
> и добыл эту чудесную ссылку ;-)На FreeBSD Фурифокс как бы останавливает прорисовку окна на несколько секунд, отжирая 6,2 ГБ ОЗУ, а потом оживает, освобождая 4,5 ГБ - это сообщение пишу рядом с "горящим танком" с соседней вкладки.
Chromium делает "Опаньки" и просит перезагрузить вкладку, не зависая.
Icecat тоже роняет. И midori. А вот 12ю Оперу - нет, как ни странно. Память отжирается со скоростью 3 Мб в секунду, что позволяет неторопливо серфить по другим вкладкам или остановить загрузку "плохой".
В-общем твой svgz опаснее представленного в новости png, который не свалил ничего в моей системе.
А это норм на линуксах https://bugzilla.kernel.org/attachment.cgi?id=118351 ?
Какой номер репорта, можно ссылку на репорт? :)
https://bugzilla.kernel.org/show_bug.cgi?id=60533
ппц это было выложено 2013-12-14 и все еще отлично работает
да так работает что от него настолько заглючило baloo что даже после ребута он крашил плазму
> А это норм на линуксах https://bugzilla.kernel.org/attachment.cgi?id=118351 ?icecat сожрал всю память, хромка и мидори выжили, память не сожрали. Ну и опера12 само собой переварила.
> А это норм на линуксах https://bugzilla.kernel.org/attachment.cgi?id=118351 ?Там написано Loading... и "ohmed was here". Им что, тоже багзиллу сломали?
Где картинку скачать? Запощу, друзья перепостят и пошло-поехало...
дамы и господа, баг с favicon.ico был описан когда? ну-ка, пользуемся поиском..... по сабжу, хипстеры-пейсатели просто не знают про мыльные бомбы..
> PNG-изображение размером 6 Мб (в форме bzip-архива
> (https://www.bamsoftware.com/bzr/deflate/spark.png.bz2) 420 байт), которое распаковывается
> в картинку 50 гигапикселей (225000 × 225000), которая в раскладке 3
> байта на пиксель потребует для своей обработки буфера в 141.4
> Гб.% ls spark.png
-r-------- 1 igor wheel 5,8M 5 сен 19:12 spark.png
% eom spark.png
Убит
% uname -rsm
FreeBSD 10.2-STABLE amd64Телеметрия по памяти: http://s14.postimg.org/n1y14mqa9/spark_png_eom_1_10_3_Free_B...
> Телеметрия по памяти:Изен выучил новое слово. Но правда не знает что оно означает - а где там ТЕЛЕ, собственно? Ты с ремотного компа это собрал? И даже гуйную прогу научился запускать. На свой зад.
(интересно, а если ты perf увидишь - ты наверное офигеешь от тамошней телеметрии и что так вообще можно было).
И все бы ничего но в твоей "телеметрии" - шрифты ну просто забойный трэшак. Попытка прочесть обозначения процентов вообще мигом приведет к окулисту.
>И все бы ничего но в твоей "телеметрии" - шрифты ну просто забойный трэшак. Попытка прочесть обозначения процентов вообще мигом приведет к окулисту.Шрифты в стиле чертёжных ГОСТ.
Хм, у меня сей файл отказываются открывать: eyeofmate, firefox и GIMP. Все трое ругаются на неправильный размер.
Версии не очень уж новые:
eom --version «Глаз MATE» 1.6.0
Mozilla Firefox 38.2.0
GNU Image Manipulation Program версии 2.8.14Так что, бага действует на что-то очень старое, расслабьтесь =)
XnView для линукса не открыл, браузеры все тоже, гляделка lxde сказала что ты много хочешь, обломайся. Так что png не катит. А вот svgz - интересная тема.