Скрытая уязвимость безопасности React

Критическая уязвимость под названием React2Shell заставляет разработчиков сомневаться в React Server Components. Узнайте, почему ваш выбор фреймворка, такого как TanStack Start, может быть единственным, что вас защищает.

Stork.AI
Hero image for: Скрытая уязвимость безопасности React
💡

Кратко / Главное

Критическая уязвимость под названием React2Shell заставляет разработчиков сомневаться в React Server Components. Узнайте, почему ваш выбор фреймворка, такого как TanStack Start, может быть единственным, что вас защищает.

Новый страх в React: RSCs или что-то другое?

React Server Components (RSCs) быстро преобразили ландшафт веб-разработки, вызвав значительный энтузиазм во всей экосистеме. Разработчики приняли их обещания улучшенной производительности, уменьшенных клиентских пакетов и унифицированной модели программирования. Эта инновационная парадигма, позволяющая рендеринг на сервере и потоковую передачу HTML клиенту, быстро стала краеугольной функцией для современных фреймворков React, получив широкое распространение и интеграцию.

Однако недавно на этот оптимизм пала тень. Волна критических уязвимостей, проявляющихся в виде тревожных CVEs, вызвала значительное беспокойство среди разработчиков. Многие поставили под сомнение безопасность самих RSCs, задаваясь вопросом, не привнесла ли эта мощная новая технология внутренние риски, которые перевешивают ее преимущества, особенно в отношении эксплойтов, таких как React2Shell, которые, по-видимому, были нацелены на серверные возможности React.

Крайне важно устранить основное заблуждение: уязвимость не связана напрямую с React Server Components. Вместо этого проблема заключается в конкретной реализации server functions, связанной, но отличной функции. Server functions позволяют клиентскому коду напрямую вызывать серверную логику, по сути, действуя как вызовы API, которые отправляют данные на сервер, размывая традиционную границу клиент-сервер и создавая новые поверхности для атак.

Опасность возникла из-за того, как некоторые фреймворки обрабатывают полезную нагрузку данных для этих server functions. В частности, Flight data payload, сложный формат данных, поддерживающий ссылки между объектами, стал вектором для эксплуатации. Его сложная конструкция, будучи мощной для поддержания ссылочной идентичности, непреднамеренно позволила злоумышленникам перемещаться по иерархии объектов JavaScript. Это перемещение способствовало выполнению произвольного кода, что привело непосредственно к эксплойтам, таким как React2Shell, даже на статических сайтах с технически «отключенными» server functions.

Фреймворки, такие как Next.js, например, маршрутизируют все вызовы server functions через предсказуемую `/` конечную точку, что делает их легкой мишенью. Более того, даже если разработчики отключают server functions, конечная точка остается активной, продолжая обрабатывать потенциально вредоносные полезные нагрузки. Эта комбинация, наряду с эксплуатируемой природой Flight data, создала идеальные условия для возникновения уязвимостей.

Таким образом, критическим фактором, определяющим уязвимость приложения, является не принятие RSCs, а подход базового фреймворка к реализации server functions. В то время как Next.js продемонстрировал уязвимости из-за своей предсказуемой маршрутизации, всегда активной обработки server functions и присущих рисков реализации Flight data, другие фреймворки, такие как TanStack Start, оказались невосприимчивыми. Их отличительные архитектурные решения — от динамически именованных конечных точек server functions до безопасных форматов данных, таких как Seroval — фундаментально меняют профиль безопасности, доказывая, что дьявол кроется в деталях реализации, а не в основной концепции server components.

Анатомия эксплойта: Деконструкция React2Shell

Иллюстрация: Анатомия эксплойта: Деконструкция React2Shell
Иллюстрация: Анатомия эксплойта: Деконструкция React2Shell

React2Shell, официально обозначенная как CVE-2025-55182, представляет собой критическую уязвимость удаленного выполнения кода (RCE), которая потрясла экосистему React. Это не недостаток в самом механизме рендеринга React Server Components (RSCs), а скорее прямая атака на базовую архитектуру серверных функций. Злоумышленники могут использовать этот эксплойт для получения несанкционированного контроля над серверными операциями, что представляет собой серьезную угрозу для целостности приложения.

Злоумышленники инициируют эксплойт, отправляя специально созданную полезную нагрузку непосредственно на конечную точку серверной функции. Эти серверные функции по сути действуют как вызовы API, позволяя клиентскому коду выполнять серверную логику. Например, в типичных реализациях Next.js одна предсказуемая конечная точка `/` обслуживает все серверные функции. Эта согласованная маршрутизация упрощает задачу злоумышленника, позволяя ему нацеливаться на известную точку входа без необходимости обнаруживать конкретные маршруты API. Даже приложения, настроенные без явных серверных функций, часто остаются уязвимыми, поскольку конечная точка может продолжать обрабатывать эти запросы, создавая скрытый бэкдор.

Суть эксплойта React2Shell заключается в его изощренной манипуляции полезной нагрузкой полетных данных, специализированным форматом сериализации данных, используемым для обмена данными с серверными функциями. Полетные данные предназначены для эффективной передачи сложных объектов, сохраняя ссылочную идентичность при пересечении данными границы клиент-сервер. Злоумышленник использует эту особенность, создавая сложные ссылки внутри полезной нагрузки. Эти ссылки предназначены для обхода иерархии объектов JavaScript, минуя типичные проверки безопасности для доступа к фундаментальным базовым методам. Этот несанкционированный доступ позволяет выполнять произвольный код непосредственно на сервере.

Критически важно, что эта уязвимость нацелена на уровень API, где выполняются серверные функции, а не на уровень рендеринга компонентов. Эксплойт не вмешивается в то, как RSCs рендерят элементы UI; вместо этого он обходит предполагаемую логику приложения, напрямую внедряя и выполняя код на сервере. Это различие подчеркивает серьезное нарушение на стороне сервера, позволяющее злоумышленнику скомпрометировать всю backend инфраструктуру, получить доступ к конфиденциальным данным или даже установить постоянный контроль над сервером. Возможность удаленного выполнения произвольного кода делает CVE-2025-55182 угрозой высокой степени серьезности.

Уязвимость Next.js: Тройная угроза

Next.js оказывается особенно уязвимым к React2Shell из-за совокупности архитектурных решений, создавая сценарий тройной угрозы для разработчиков. Во-первых, Next.js маршрутизирует все серверные функции через одну, очень предсказуемую конечную точку: корневой путь `/`. Эта единственная цель значительно упрощает разведывательные усилия злоумышленника, предоставляя согласованную, хорошо известную точку входа для исследования потенциальных эксплойтов без необходимости обнаруживать конкретные маршруты API или имена модулей. Отсутствие диверсификации конечных точек по своей сути снижает порог для начальных векторов атаки.

Усугубляя эту проблему, серверные функции Next.js по умолчанию остаются всегда включенными. Даже приложения, которые явно не определяют и не используют серверные функции, все равно предоставляют эту конечную точку `/` и ее базовый механизм обработки. Этот выбор дизайна создает ненужную и постоянную поверхность атаки, позволяя обработчику серверных функций оставаться активным и уязвимым для React2Shell, даже на кажущихся статическими сайтах, которые теоретически не должны иметь путей выполнения на стороне сервера. Разработчики не могут просто отключить эту угрозу.

Третий и наиболее критический недостаток заключается в зависимости Next.js от проприетарного формата flight data для полезных нагрузок серверных функций. Этот специализированный формат данных, разработанный для эффективной связи и поддержания ссылочной идентичности между клиентом и сервером, к сожалению, скрывает глубокую уязвимость безопасности. Хотя он мощный для сериализации сложных объектов и их взаимосвязей через сетевые границы, его расширенные возможности для ссылок на объекты, предназначенные для оптимизации передачи данных, становятся самим механизмом эксплуатации.

Злоумышленники используют сложные ссылочные возможности flight data для точного обхода иерархии объектов JavaScript. Манипулируя тем, как объекты ссылаются друг на друга внутри сериализованной полезной нагрузки, вредоносные субъекты могут достигать базовых методов, внедрять произвольный код и, в конечном итоге, выполнять команды на сервере. Этот прямой путь к удаленному выполнению кода фундаментально лежит в основе эксплойта React2Shell, превращая ключевую функцию оптимизации в критическую слабость безопасности, которая позволяет скомпрометировать систему. Для получения дополнительных технических сведений о смягчении этой широко распространенной уязвимости обратитесь к Защита от уязвимости CVE-2025-55182 (React2Shell) в React Server Components | Microsoft Security Blog. Этот неотъемлемый недостаток в обработке flight data требует немедленного и надежного устранения со стороны разработчиков фреймворков, поскольку одних только усилий по санитаризации оказалось недостаточно для полной нейтрализации угрозы.

Недостаток 'Flight Data': Когда Мощь Становится Опасностью

Формат "flight data" React, мощная инновация, лежит в основе этой конкретной уязвимости. Этот сложный протокол сериализации данных обеспечивает ссылочную идентичность для объектов, передаваемых между сервером и клиентом. Он гарантирует, что сложные структуры данных, включая функции и объекты, сохраняют свои исходные отношения и уникальные ссылки при пересечении сетевой границы, оптимизируя управление состоянием и повышая производительность в React Server Components.

Именно эта функция, разработанная для удобства и эффективности, открывает двери для злоумышленников. Механизм, позволяющий объектам ссылаться на другие части полезной нагрузки flight data, делает тривиально легким для вредоносного субъекта обход иерархии объектов JavaScript. Злоумышленники могут затем ссылаться на основные объекты JavaScript и манипулировать ими, что в конечном итоге приводит к выполнению произвольного кода на сервере.

Next.js реализовал стратегию смягчения, пытаясь санитаризировать входящие flight data. Однако этот подход представляет собой скорее заплатку на фундаментально уязвимом дизайне, чем надежное решение. Внутренняя способность flight data поддерживать глубокие ссылки по всей полезной нагрузке означает, что санитаризация становится постоянной игрой в «ударь крота» против развивающихся техник эксплуатации.

Несмотря на эти усилия, формат flight data остается постоянной проблемой. Недавние CVEs, включая один, выпущенный всего несколько дней назад, подтверждают его постоянную уязвимость. Эти уязвимости подчеркивают сложность обеспечения безопасности формата данных, который отдает приоритет глубоким ссылкам на объекты, постоянно вынуждая разработчиков догонять сложные методы эксплуатации.

Первая линия защиты TanStack Start: Непредсказуемость

Иллюстрация: Первая линия защиты TanStack Start: Непредсказуемость
Иллюстрация: Первая линия защиты TanStack Start: Непредсказуемость

TanStack Start представляет собой резкое архитектурное отличие от Next.js, намеренно обходя предсказуемые уязвимости, которые преследуют его аналог. Его фундаментальная стратегия безопасности начинается с интеллектуального подхода к раскрытию серверных функций, гарантируя, что путь к потенциальным эксплойтам будет чем угодно, но не прямолинейным.

В отличие от Next.js, который направляет все запросы серверных функций через одну, легко обнаруживаемую конечную точку '/', TanStack Start децентрализует эти критические точки доступа. Конечная точка каждой серверной функции напрямую связана с путем к файлу модуля, где она определена, создавая уникальный, специфичный для приложения URL для каждой функции.

Такой дизайн означает, что злоумышленник не может просто нацелиться на универсальную конечную точку для поиска уязвимостей, таких как React2Shell (CVE-2025-55182). Вместо этого он должен обладать предварительными знаниями о точном, определенном разработчиком URL для каждой отдельной серверной функции в данном приложении. Это значительно увеличивает нагрузку на разведку и препятствует автоматизированным атакам.

Этот архитектурный выбор является основной причиной, по которой TanStack Start не уязвим для React2Shell, даже при его надежной поддержке React Server Components (RSCs). Предсказуемая маршрутизация в Next.js предлагает 'известную хорошую' цель; TanStack Start по умолчанию предлагает множество 'неизвестных' целей, активно сопротивляясь легкой эксплуатации.

Такая философия безопасности по умолчанию значительно увеличивает сложность поверхности атаки для потенциальных эксплойтеров. Она превращает поиск эксплуатируемой серверной функции из одной, статической цели в динамичный, неизвестный ландшафт, требующий конкретной, целенаправленной информации для каждой потенциальной точки входа и делающий широкомасштабные атаки в значительной степени неэффективными.

«Выключатель», о котором забыл Next.js

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

Ключевое практическое преимущество этой философии дизайна заключается в следующем: если разработчик никогда не определяет серверную функцию в своем приложении, TanStack Start просто не включает никакого кода обработки серверных функций в окончательный скомпилированный пакет. Это означает, что поверхность атаки для эксплойтов серверных функций, таких как React2Shell, по умолчанию сокращается до нуля.

Next.js представляет собой резкий контраст. Его унифицированная конечная точка серверных функций (`/`) остается постоянно активной, даже при развертывании того, что кажется чисто статическим сайтом. Это оставляет «призрачную» уязвимость, дремлющий, но эксплуатируемый путь, присутствующий в каждом приложении Next.js, независимо от того, используются ли серверные функции активно.

Это фундаментальное различие подчеркивает основной принцип безопасности: минимальная поверхность атаки. Обрабатывая серверные функции только тогда, когда они явно запрошены и определены, TanStack Start избегает поставки ненужных векторов атаки. Это «выключатель», который Next.js, в своем стремлении к универсальным возможностям, похоже, упустил из виду.

Для более глубокого изучения принципов дизайна и архитектуры TanStack Start разработчики могут обратиться к TanStack Start Overview | TanStack Start React Docs. Эта прозрачность в дизайне значительно способствует его надежной безопасности против эксплойтов, таких как CVE-2025-55182.

Seroval: Невоспетый герой безопасных данных

Наиболее критический архитектурный выбор TanStack Start для безопасности заключается в его сериализации данных. В отличие от Next.js, который полагается на flight data, TanStack Start использует библиотеку Seroval. Это решение представляет собой проактивное, фундаментальное обязательство по защите приложений от сложных эксплойтов.

Seroval разработан для безопасной сериализации данных, предотвращая прямой обход или манипуляцию базовой иерархией объектов JavaScript. Его дизайн отдает приоритет безопасной передаче данных, гарантируя, что объекты, передаваемые между сервером и клиентом, сохраняют свою целостность, не раскрывая механизмы, которые могли бы привести к удаленному выполнению кода. Это резко контрастирует с мощной, но опасной способностью 'flight data' поддерживать ссылочную идентичность — функцию, которую React2Shell использует как оружие.

Хотя Seroval сталкивался со своей долей проверок, включая прошлые CVE, разработчики окончательно устранили эти уязвимости. Важно отметить, что ни одна из прошлых проблем Seroval не включала «вектор атаки с одной полезной нагрузкой в стиле React2Shell», который характеризует эксплойт 'flight data'. Характер этих исправлений никогда не требовал постоянных усилий по санитаризации, наблюдаемых с 'flight data', которые лишь смягчают симптомы, а не устраняют фундаментальный архитектурный недостаток.

Это стратегическое принятие Seroval фреймворком TanStack Start не является реактивным патчем; это преднамеренная позиция в области безопасности. Фреймворк сознательно выбрал метод сериализации, который изначально ограничивает поверхность атаки, предотвращая глубокие манипуляции с объектами, которые делают возможным React2Shell (CVE-2025-55182). По своей конструкции TanStack Start создал свои серверные компоненты с надежным форматом данных, предлагая более устойчивую защиту с самого начала.

Архитектура — это безопасность: История двух фреймворков

Иллюстрация: Архитектура — это безопасность: История двух фреймворков
Иллюстрация: Архитектура — это безопасность: История двух фреймворков

Резкий контраст между Next.js и TanStack Start освещает фундаментальную истину: архитектура — это безопасность. Дизайнерские решения Next.js, отдающие приоритет удобству и унифицированному опыту разработки, непреднамеренно создали предсказуемые векторы атаки. Его единственная конечная точка `slash (/)` для всех серверных функций, в сочетании с постоянно включенным состоянием по умолчанию, сделала его главной целью для эксплойтов, таких как React2Shell (CVE-2025-55182).

Подход TanStack Start, однако, встроил безопасность в свою основу. Он использует непредсказуемые, специфичные для модуля конечные точки для серверных функций и требует явного согласия для их активации. Это преднамеренное трение значительно повышает планку для злоумышленников, требуя точного знания внутренней структуры приложения, а не полагаясь на универсальную точку входа.

Наиболее критическое расхождение заключается в сериализации данных. Зависимость Next.js от 'flight data', хотя и мощная для поддержания ссылочной идентичности, оказалась по своей сути уязвимой для атак обхода из-за ее сложных механизмов ссылки на объекты. Даже при постоянных усилиях по санитаризации ее фундаментальный дизайн остается проблемой. TanStack Start выбирает библиотеку Seroval, более надежный и проверенный в боях сериализатор, который доказал свою устойчивость к аналогичным векторам эксплойтов.

Это сравнительное сопоставление подчеркивает, как первоначальные архитектурные решения определяют долгосрочную позицию фреймворка в области безопасности.

| Функция | Next.js | TanStack Start | | :------------------ | :------------------------------------------ | :--------------------------------------------------- | | Предсказуемость конечных точек | Единая, предсказуемая конечная точка `slash (/)` | Непредсказуемые, специфичные для модуля конечные точки | | Состояние по умолчанию | Серверные функции всегда активны | Серверные функции строго по согласию | | Формат данных | 'Flight data' (сложный, уязвимый) | Seroval (безопасная, надежная сериализация) |

Разработчики должны смотреть дальше списков функций и показателей производительности. Оценка безопасности фреймворка требует тщательного изучения его базовой архитектурной философии. Защита приложений от сложных угроз, таких как React2Shell, требует понимания того, что безопасность — это не просто дополнение; это неотъемлемое качество, формируемое самими дизайнерскими решениями используемых нами инструментов.

Что это значит для вашего следующего проекта

Разработчики должны критически оценивать свой выбор фреймворков в свете недавних откровений. Эксплойт React2Shell (CVE-2025-55182) подчеркивает фундаментальную истину: удобство часто сопряжено с компромиссами в области безопасности. Отдавайте приоритет глубокому пониманию базовых механизмов сериализации, маршрутизации и выполнения выбранного вами стека, а не полагайтесь исключительно на абстракции фреймворка.

Next.js по-прежнему предлагает беспрецедентный опыт для разработчиков и обширную, зрелую экосистему. Для проектов, которые отдают приоритет быстрой итерации, широкой доступности компонентов и поддержке сообщества, его преимущества остаются убедительными. Однако использование Next.js требует повышенного внимания к его последствиям для безопасности, особенно в отношении Server Actions. Его предсказуемая конечная точка '/' и постоянно включенная обработка серверных функций требуют строгой проверки входных данных, кодирования вывода и тщательного контроля доступа. Разработчики должны активно управлять этими рисками. Для получения всестороннего руководства по получению данных в Next.js, включая Server Actions, обратитесь к их документации по Server Actions and Mutations - Data Fetching - Next.js.

Напротив, TanStack Start представляет собой убедительную альтернативу для проектов, требующих приоритета безопасности с самого начала. Его архитектурные решения напрямую устраняют уязвимости, эксплуатируемые React2Shell, включая непредсказуемые конечные точки серверных функций, строго добровольные серверные функции, предотвращающие случайное раскрытие, и надежный сериализатор Seroval, доказавший свою большую устойчивость к атакам на основе полезной нагрузки, чем flight data.

Рассматривайте TanStack Start как превосходный выбор для приложений, где безопасность не подлежит обсуждению. Это включает: - Корпоративные приложения, обрабатывающие конфиденциальные пользовательские или проприетарные данные - Общедоступные API, которые являются основными целями для эксплуатации - Финансовые или медицинские платформы, подпадающие под строгие нормативные требования - Любой проект, где стоимость нарушения значительно перевешивает удобство разработки

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

За пределами хайпа: Строим безопасное будущее для React

React Server Components (RSCs) бесспорно представляют собой монументальный сдвиг в веб-разработке, обещая беспрецедентный прирост производительности и оптимизированный опыт для разработчиков. Появление React2Shell, официально отслеживаемого как CVE-2025-55182, не должно уменьшать трансформационный потенциал этой технологии. Вместо этого, эта уязвимость удаленного выполнения кода служит критическим, хотя и болезненным, уроком для всей экосистемы относительно глубоких последствий для безопасности при объединении серверной логики с клиентской реактивностью.

Этот инцидент знаменует собой поворотный момент, вынуждая переоценить, как фреймворки безопасно реализуют серверные функции. Основная проблема заключалась не в самих RSCs, а в конкретных решениях по реализации серверных функций и мощном формате сериализации flight data. Это подчеркивает, что надежная безопасность должна быть неотъемлемой частью дизайна фреймворка, требуя комплексного моделирования угроз и безопасных по умолчанию конфигураций, а не полагаясь на бдительность разработчиков для исправления уязвимостей после развертывания.

TanStack Start предлагает убедительное контр-повествование, иллюстрируя, как архитектура, безопасная по умолчанию, может сосуществовать с инновациями RSC. Его продуманные проектные решения напрямую смягчают векторы атак, наблюдаемые в React2Shell: серверные функции строго выбираются пользователем (opt-in), их конечные точки динамически генерируются и непредсказуемы, и, что крайне важно, он использует надежную библиотеку Seroval для сериализации данных вместо flight data. Эта многоуровневая защита демонстрирует проактивный, ориентированный на безопасность подход с самого начала.

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

Часто задаваемые вопросы

Что такое уязвимость React2Shell?

React2Shell — это не недостаток в самих React Server Components, а эксплойт, нацеленный на реализации серверных функций, особенно во фреймворках, таких как Next.js, которые используют формат 'flight data' для сериализации.

Почему TanStack Start не уязвим для React2Shell?

TanStack Start невосприимчив благодаря трем ключевым архитектурным решениям: 1) конечные точки серверных функций привязаны к конкретным модулям и непредсказуемы, 2) серверные функции являются opt-in и не включены по умолчанию, и 3) он использует более безопасный формат данных Seroval вместо уязвимого формата flight data.

Означает ли это, что Next.js небезопасен?

Не по своей сути, но его архитектура по умолчанию для серверных функций создает специфическую уязвимость к React2Shell, о которой разработчики должны знать и которую должны устранять. Разработчики фреймворка активно работают над патчами и санитаризацией.

В чем разница между Seroval и 'flight data'?

Flight data — это специфический для React формат, который сохраняет ссылки на объекты, особенность, которая может быть использована для удаленного выполнения кода. Seroval — это библиотека сериализации общего назначения, разработанная с приоритетом безопасности, избегающая специфических уязвимостей обхода, обнаруженных в flight data.

Часто задаваемые вопросы

Новый страх в React: RSCs или что-то другое?
React Server Components быстро преобразили ландшафт веб-разработки, вызвав значительный энтузиазм во всей экосистеме. Разработчики приняли их обещания улучшенной производительности, уменьшенных клиентских пакетов и унифицированной модели программирования. Эта инновационная парадигма, позволяющая рендеринг на сервере и потоковую передачу HTML клиенту, быстро стала краеугольной функцией для современных фреймворков React, получив широкое распространение и интеграцию.
Что такое уязвимость React2Shell?
React2Shell — это не недостаток в самих React Server Components, а эксплойт, нацеленный на реализации серверных функций, особенно во фреймворках, таких как Next.js, которые используют формат 'flight data' для сериализации.
Почему TanStack Start не уязвим для React2Shell?
TanStack Start невосприимчив благодаря трем ключевым архитектурным решениям: 1) конечные точки серверных функций привязаны к конкретным модулям и непредсказуемы, 2) серверные функции являются opt-in и не включены по умолчанию, и 3) он использует более безопасный формат данных Seroval вместо уязвимого формата flight data.
Означает ли это, что Next.js небезопасен?
Не по своей сути, но его архитектура по умолчанию для серверных функций создает специфическую уязвимость к React2Shell, о которой разработчики должны знать и которую должны устранять. Разработчики фреймворка активно работают над патчами и санитаризацией.
В чем разница между Seroval и 'flight data'?
Flight data — это специфический для React формат, который сохраняет ссылки на объекты, особенность, которая может быть использована для удаленного выполнения кода. Seroval — это библиотека сериализации общего назначения, разработанная с приоритетом безопасности, избегающая специфических уязвимостей обхода, обнаруженных в flight data.
🚀Узнать больше

Будьте в курсе трендов ИИ

Откройте лучшие инструменты ИИ, агенты и MCP-серверы от Stork.AI.

Все статьи