惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
博客园 - 三生石上(FineUI控件)
S
Securelist
U
Unit 42
The Cloudflare Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Simon Willison's Weblog
Simon Willison's Weblog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
B
Blog
T
Tenable Blog
The Hacker News
The Hacker News
The Register - Security
The Register - Security
IT之家
IT之家
博客园 - 【当耐特】
Spread Privacy
Spread Privacy
P
Privacy & Cybersecurity Law Blog
博客园_首页
T
Tailwind CSS Blog
人人都是产品经理
人人都是产品经理
C
Cybersecurity and Infrastructure Security Agency CISA
Know Your Adversary
Know Your Adversary
NISL@THU
NISL@THU
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
阮一峰的网络日志
阮一峰的网络日志
T
Tor Project blog
C
CERT Recently Published Vulnerability Notes
Apple Machine Learning Research
Apple Machine Learning Research
Stack Overflow Blog
Stack Overflow Blog
T
Threat Research - Cisco Blogs
T
The Exploit Database - CXSecurity.com
V
Vulnerabilities – Threatpost
A
Arctic Wolf
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
V
V2EX
aimingoo的专栏
aimingoo的专栏
大猫的无限游戏
大猫的无限游戏
Scott Helme
Scott Helme
L
LINUX DO - 热门话题
Cyberwarzone
Cyberwarzone
V
Visual Studio Blog
月光博客
月光博客
爱范儿
爱范儿
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
美团技术团队
G
GRAHAM CLULEY
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
H
Heimdal Security Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Как Mozilla нашли 271 уязвимость в Firefox с помощью Claude Mythos
python_leade · 2026-05-08 · via Все публикации подряд на Хабре

Уровень сложностиПростой

Время на прочтение8 мин

Охват и читатели188

Обзор

Перевод

Две недели назад мы объявили, что с помощью Claude Mythos Preview и других AI-моделей нашли и исправили рекордное количество скрытых уязвимостей в Firefox. В этом посте — подробности о подходе, результатах и советы для других проектов, которые хотят применять эти техники.

Баги резко стали качественнее

Ещё несколько месяцев назад AI-сгенерированные отчёты о безопасности в open source были преимущественно мусором. Отвечать на отчёты, которые выглядят правдоподобно, но ошибочны, — асимметричная нагрузка: сгенерировать «проблему» дёшево, а разобраться в ней — дорого.

Сложно переоценить, насколько сильно эта картина изменилась за несколько месяцев. Два фактора сыграли роль одновременно: модели стали значительно мощнее, и мы кардинально улучшили техники управления ими.

Обычно подробные отчёты о багах остаются закрытыми несколько месяцев после выпуска исправлений и публикации security advisories — как мера защиты пользователей, которые медленно обновляются. Учитывая огромный интерес к теме и срочность происходящего в экосистеме, мы решили раскрыть небольшую выборку отчётов, стоящих за недавно выпущенными патчами. Мы постарались охватить разные подсистемы браузера, хотя выборка и остаётся несколько произвольной. Тем не менее глубина и разнообразие этих отчётов подкрепляет оценку возможностей и призыв к защитникам начать применять эти техники:

ID бага

Описание

2024918

Некорректная проверка равенства позволяет JIT оптимизировать инициализацию живой WebAssembly GC-структуры, создавая примитив fake-object с потенциальным произвольным чтением/записью в коде, который прошёл интенсивный фаззинг внутренними и внешними исследователями.

2024437

15-летний баг в элементе <legend>, воспроизводимый тщательно выстроенной оркестровкой крайних случаев из отдалённых частей браузера: лимиты глубины стека рекурсии, expando-свойства и cycle collection.

2021894

Надёжная эксплуатация race condition через IPC: скомпрометированный content process манипулирует refcount'ами IndexedDB в parent, провоцируя UAF и потенциальный sandbox escape.

2022034

Сырое значение NaN, пересекающее границу IPC, может маскироваться под tagged JS-указатель на объект. Двойная десериализация превращается в примитив fake-object в parent process для sandbox escape.

2024653

Изощрённый тест-кейс, проходящий через вложенные event loop, pagehide-листенеры и сборщик мусора, провоцирует UAF в атрибут-сеттере элемента <object>.

2022733

Инициирует UAF в parent-процессе через флуд WebTransport тысячами хешей сертификатов для растягивания race condition в refcount-тяжёлом цикле копирования; используется через IPC из скомпрометированного content process.

2023958

Эмулирует вредоносный DNS-сервер, перехватывая вызовы DNS-функций glibc, чтобы воспроизвести краевой случай UDP→TCP fallback, провоцирующий buffer over-read и утечку стековой памяти parent process при парсинге HTTPS RR и ECH.

2025977

20-летний баг в XSLT: реентерабельные вызовы key() вызывают рехэш хеш-таблицы, освобождающий её backing store, пока на запись всё ещё указывает сырой указатель (один из нескольких sec-high-багов в XSLT).

2027298

Патчит color picker для имитации иначе не автоматизируемого выбора пользователем, затем использует синхронный input event для раскрутки вложенного event loop, повторно входящего в actor teardown и освобождающего callback при его исполнении — UAF в content process.

2023817

Скомпрометированный content process мог отправить произвольное изображение для декодирования в parent process; это можно было скомбинировать с гипотетической уязвимостью в декодере изображений для побега из sandbox. Потребовалось трудно автоматизируемое рассуждение об уровне доверия входных данных в parent process.

2029813

Побег из нашей технологии внутрипроцессного изолирования для сторонних библиотек (RLBox) через пробел в логике верификации при копировании значений из недоверенной части sandbox в доверенную.

2026305

Минимальный тест-кейс, эксплуатирующий специальную семантику rowspan=0 в HTML-таблицах: добавление >65 535 строк обходит clamping и переполняет 16-битное layout bitfield — годами не обнаруживалось фаззерами.

Ряд багов — это sandbox escapes, которые требуют комбинации с другими эксплойтами для полной компрометации Firefox. В этих отчётах предполагается, что изолированный процесс рендеринга уже скомпрометирован каким-то отдельным багом и выполняет управляемый атакующим машинный код, пытаясь повысить привилегии до уровня родительского процесса. При построении sandbox escape модели разрешено патчить исходный код Firefox — при условии, что изменённый код исполняется только в изолированном процессе. Такие баги традиционно крайне сложно обнаружить фаззингом, и хотя мы разрабатывали новые техники, AI-анализ обеспечивает значительно более полное покрытие этой критической поверхности.

Не менее интересно то, чего модели не нашли — не потому что не пытались, а потому что не смогли обойти эшелонированную защиту Firefox. Например, несколько лет назад мы получали отчёты от исследователей, которым удавалось сбежать из sandbox, провоцируя prototype pollution в привилегированном parent process. Вместо того чтобы чинить эти проблемы по одной, мы сделали архитектурное изменение, заморозив эти прототипы по умолчанию. Изучая логи харнесса, мы видели многочисленные попытки использовать этот вектор, заблокированные этим решением. Наблюдать прямую отдачу от прошлых решений по укреплению было даже приятнее, чем находить и чинить новые баги.

Построение пайплайна на основе моделей

На протяжении нескольких лет мы экспериментировали с аудитом кода через LLM: ранние попытки с GPT-4 и Sonnet 3.5 для статического анализа рискованного кода показывали определённый потенциал, но высокий процент ложных срабатываний делал масштабирование нецелесообразным.

Появление агентных харнессов, способных надёжно обнаруживать проблемы безопасности, полностью изменило ситуацию. Они находят реальные баги и отбрасывают невоспроизводимые предположения. Ключевое свойство такого харнесса: при наличии правильных интерфейсов и инструкций он создаёт и запускает воспроизводимые тест-кейсы для динамической проверки гипотез о багах в коде. После исправления первоначального набора проблем, присланных нам Anthropic в феврале, мы создали собственный харнесс поверх существующей инфраструктуры фаззинга.

Начинали с небольших экспериментов, направляя харнесс на поиск sandbox escape с Claude Opus 4.6. Уже с этой моделью мы нашли впечатляющее количество ранее неизвестных уязвимостей, требовавших сложного рассуждения о коде многопроцессного движка браузера. Поначалу мы наблюдали за процессом в терминале в реальном времени, настраивая промпты и логику. После отладки распараллелили задачи на несколько эфемерных VM, каждая из которых искала баги в конкретном целевом файле и записывала результаты в бакет.

Подсистема обнаружения — необходимое, но недостаточное условие. Для масштабирования потребовалась интеграция с полным жизненным циклом security-багов: определение, что искать, где искать и что делать с результатами. Последнее включает дедупликацию против известных проблем, трекинг, триаж, отправку фиксов. Модель — ядро харнесса, но весь пайплайн необходим для работы в масштабе.

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

Обновление моделей

После того как сквозной пайплайн выстроен, замена моделей по мере их появления становится тривиальной задачей. Раннее построение пайплайна помогло нам найти серьёзные баги на общедоступных моделях и дало возможность сразу запустить оценку Claude Mythos Preview. По нашему опыту, обновление модели повышает эффективность всего пайплайна одновременно: система лучше находит потенциальные баги, создаёт proof-of-concept тест-кейсы и формулирует патологию и влияние найденного.

Помимо исправления 271 бага, обнаруженного Claude Mythos Preview в релизе 150, мы выпустили дополнительные фиксы в 149.0.2 и 150.0.1. Внутренний поиск багов другими методами продолжается, и мы видим заметный рост числа внешних отчётов за последние несколько месяцев.

График объёма исправлений security-багов Firefox по месяцам: в диапазоне 20–30 в 2025 году, с пиком 60–70 в феврале–марте 2026 и ростом до 423 в апреле 2026

График объёма исправлений security-багов Firefox по месяцам: в диапазоне 20–30 в 2025 году, с пиком 60–70 в феврале–марте 2026 и ростом до 423 в апреле 2026

В конечном счёте каждый баг требует тщательной работы для правильного исправления. Справляться с беспрецедентным объёмом оказалось непросто — последние несколько месяцев команда работала с большой нагрузкой. Более 100 человек внесли вклад в код: писали и ревьюили патчи, строили и масштабировали пайплайн, делали триаж, тестировали исправления, управляли процессом релизов.

Выводы

Любой разработчик ПО уже сегодня может запустить харнесс с современной моделью для поиска багов и укрепления своего кода. Рекомендуем начать прямо сейчас. Вы найдёте баги и будете готовы использовать новые модели по мере их появления.

Начать можно с простейших промптов, наблюдать и итерировать. Наши начальные промпты были похожи на те, что описаны здесь. В процессе итераций мы построили оркестровку и инструментарий для оптимизации и масштабирования, но суть внутреннего цикла осталась прежней: в этом фрагменте кода есть баг — найди его и построй тест-кейс.

Сейчас сканирование сосредоточено на конкретных участках кода (файлах, функциях), которые мы указываем системе на основе сочетания экспертного суждения и автоматических сигналов. В ближайшем будущем мы намерены интегрировать этот анализ в систему CI для сканирования патчей при их добавлении в дерево. Модели достаточно гибки в отношении формы предоставляемого контекста, и мы ожидаем, что сканирование на основе патчей будет работать не хуже файлового, а возможно, и лучше.

Русскоязычное сообщество про AI в разработке

Друзья! Перевод этой статьи подготовила команда ТГК «AI for Devs» — канала, где мы рассказываем про AI-агентов, плагины для IDE, делимся практическими кейсами и свежими новостями из мира ИИ. Подписывайтесь, чтобы быть в курсе и ничего не упустить!

FAQ

1. В заголовке говорилось о «271 баге», но я считаю иначе. В чём дело?

На странице advisories все внутренне обнаруженные баги группируются в «сводные» CVE с несколькими багами под каждым. Страница строится на основе yaml в репозитории foundation-security-advisories — это каноническое место для CVE-назначений. В Firefox 150 было три внутренних сводки: CVE-2026-6784 (154 бага), CVE-2026-6785 (55 багов) и CVE-2026-6786 (107 багов).

Сумма — 316, а не 271. Разница объясняется тем, что команда безопасности ежедневно ищет новые баги несколькими методами: (а) системы фаззинга, (б) ручной анализ, (в) новый агентный пайплайн на разных моделях.

Всего в апреле мы исправили 423 security-бага. В дополнение к 271 багу из объявления было 41 из внешних отчётов; оставшиеся 111 примерно поровну распределились между: багами Claude Mythos Preview, исправленными в других релизах; багами, найденными пайплайном с другими моделями; и багами из других техник, включая фаззинг.

Отдельно мы напрямую атрибутировали Anthropic 3 CVE (CVE-2026-6746, CVE-2026-6757, CVE-2026-6758) — это исправления для багов, присланных нам командой Anthropic Frontier Red несколько месяцев назад.

2. Что означают рейтинги безопасности?

Мы применяем рейтинги серьёзности от critical до low. sec-critical и sec-high присваиваются уязвимостям, воспроизводимым при обычном поведении пользователя (например, переходе на веб-страницу); технического различия между ними нет, но sec-critical зарезервирован для публично раскрытых или эксплуатируемых в реальных атаках проблем. sec-moderate — то, что иначе было бы sec-high, но требует необычных и сложных действий от жертвы. sec-low — баги, далёкие от реального вреда пользователю.

Из 271 бага для Firefox 150: 180 — sec-high, 80 — sec-moderate, 11 — sec-low.

3. Является ли sec-high или sec-critical баг готовым эксплойтом?

Не обязательно. В большинстве случаев одного критического/высокого бага недостаточно для компрометации Firefox из-за эшелонированной архитектуры защиты: например, эксплуатация JIT-бага даёт выполнение кода только в изолированном и сайт-специфичном процессе. Реальным атакующим нужно выстраивать цепочку из нескольких эксплойтов для повышения привилегий через слои изоляции и OS-митигаций вроде ASLR.

Готовые эксплойты мы обычно не строим. Классификация sec-high основана на предсказуемых симптомах краша — use-after-free или out-of-bounds обращения к памяти, фиксируемые AddressSanitizer. Наша threat model предполагает, что любой из них может быть эксплуатирован при достаточных усилиях.