Рекомендуем
VPS на Windows и Linux — от 49 ₽ за 7 дней Быстрый запуск сервера на NVMe для сайтов, ботов и других задач.
Выбрать VPS

Emscripten 6.0.13 убрал старые загрузчики Windows и обновил libpng с исправлением CVE

19 октября 2026 года разработчики Emscripten выпустили версию 6.0.13 — набора инструментов, который превращает программы на C и C++ в WebAssembly для запуска в браузере и других средах. Обновление включает libpng 1.6.59 с исправлением уязвимости CVE-2026-46675, завершает переход на исполняемые файлы Windows и меняет правила совместимости для некоторых существующих проектов.

Emscripten 6.0.13
Emscripten 6.0.13

Emscripten получил libpng 1.6.59 с исправлением CVE-2026-46675

В поставке Emscripten обновили библиотеку libpng с версии 1.6.58 до 1.6.59. Она используется для чтения и обработки изображений PNG. Новая версия библиотеки устраняет уязвимость CVE-2026-46675, которую сопровождающие libpng оценили как проблему средней опасности.

Сбой связан с обработкой повреждённых служебных блоков PNG — zTXt, iTXt и iCCP, где могут храниться текстовые данные или цветовой профиль. При определённой последовательности вызовов libpng могла обратиться к уже освобождённому участку памяти. В неблагоприятных условиях это приводило к аварийному завершению приложения.

У этой ошибки есть существенное ограничение: она затрагивает программы, которые вызывают png_read_end() после чтения заголовков, ещё не начав чтение строк изображения. Обычные способы загрузки PNG, при которых изображение читается полностью, не подпадают под описанный сценарий. Подробности приведены в официальном бюллетене libpng.

Версия libpng 1.6.59 появилась ещё в конце сентября. Новость от 19 октября касается её включения в набор портируемых библиотек Emscripten. Исправление окажется в приложениях, заново собранных с обновлённым портом libpng; уже опубликованные WebAssembly-файлы сами по себе не изменяются.

Windows-инструменты Emscripten окончательно перешли на EXE

В Emscripten 6.0.13 удалили старые файлы запуска с расширениями .bat и .ps1. Прежде они использовались в Windows для вызова инструментов вроде emcc — компилятора, запускающего сборку C/C++ в WebAssembly.

Теперь проект опирается на собственные исполняемые загрузчики .exe. Они появились раньше и, по словам сопровождающих, уже несколько выпусков применялись без известных проблем. В версии 6.0.13 переход завершён удалением прежних сценариев запуска.

Наиболее заметное последствие касается систем сборки, где имена файлов указаны явно. Например, вызов emcc.bat в старом скрипте больше не найдёт этот файл в новой поставке; имя emcc.exe соответствует действующему способу запуска в Windows. Если система вызывает просто emcc, результат зависит от механизма поиска исполняемого файла в конкретной оболочке или инструменте сборки.

В обсуждении изменения № 27359 участники отдельно упоминали возможные несовместимости со сторонними сборочными сценариями и вопросы антивирусного распознавания новых .exe-загрузчиков. Подтверждённых массовых сбоев после релиза там не приводится.

Режим MEMORY64=2 объявлен устаревающим — его удаление ещё обсуждается

Разработчики пометили параметр -sMEMORY64=2 как устаревающий. Он позволяет собирать C/C++ с 64-битной моделью указателей, а затем преобразовывать обращения к памяти для выполнения в среде с 32-битной адресацией WebAssembly. Такой промежуточный режим помогает переносить код, зависящий от размеров 64-битных типов данных.

В Emscripten 6.0.13 параметр продолжает работать. При включённых предупреждениях -Wdeprecated компилятор сообщает о его устаревании. Срок окончательного удаления пока не установлен.

История оказалась сложнее первоначальных ожиданий авторов изменения. В обсуждении № 27952 участники нашли реальные случаи использования MEMORY64=2, включая QEMU, libffi, daScript и Flow PHP. Среди причин — необходимость сохранять 64-битное представление данных и одновременно поддерживать среды, где полноценный WebAssembly Memory64 ещё недоступен. В октябрьском обсуждении отдельно упоминалась совместимость с Safari.

Если промежуточный режим будет удалён, разработчикам некоторых библиотек могут понадобиться отдельные варианты сборки для 32- и 64-битной памяти. В проекте предусмотрен период предупреждений перед удалением возможностей, а сопровождающие допускают пересмотр решения с учётом использования режима в реальных приложениях.

Удаление FS.filesystems затрагивает нестандартный JavaScript-код

Ещё одно изменение связано с виртуальной файловой системой, через которую WebAssembly-программы работают с файлами. В версии 6.0.13 удалён недокументированный объект FS.filesystems.

Он позволял получить доступ к реализации файловой системы по имени, например через FS.filesystems['MEMFS']. В официальном changelog для такого случая указана прямая ссылка на MEMFS. Само удаление касается использования внутреннего объекта из JavaScript-кода, в том числе сторонних обвязок и нестандартных интеграций.

Это продолжение очистки старого интерфейса FS: в версии 6.0.11 разработчики уже удалили FS.findObject и объявили устаревающим FS.analyzePath. Изменения постепенно сокращают количество внутренних возможностей, на которые могли опираться проекты за пределами документированного API.

Состав Emscripten 6.0.13 и границы изменений

По сравнению с версией 6.0.12 новый релиз затрагивает сразу несколько независимых сценариев: обработку PNG через libpng, запуск компилятора в Windows, сборки с MEMORY64=2 и обращения к внутренностям JavaScript-файловой системы. Все они относятся к уже существующим приложениям и процессам сборки.

Есть и уточнение к журналу изменений. В текущей основной ветке changelog упоминается переход compiler-rt на LLVM 23.1.3, но 20 октября сопровождающий Emscripten уточнил в обсуждении, что этот переход не попал в версию 6.0.13 и запись должна относиться к следующему выпуску.

Таким образом, последствия версии 6.0.13 определяются тем, какие части Emscripten использует конкретный проект. Обновлённая libpng меняет состав будущих сборок с этой библиотекой, удалённые Windows-загрузчики влияют на старые сценарии запуска, а решение о дальнейшей судьбе MEMORY64=2 пока остаётся открытым.

Источники

При использовании материалов сайта необходимо указывать ссылку на TGLand.ru. Если вы копируете фрагменты текста в интернете, прямая гиперссылка, доступная для индексации поисковыми системами, должна быть размещена в начале материала.

Вам также может понравиться