Files
validator/ctfcup2025-school-final/services/aws_sigma
..

AWS Sigma

Описание

ArSib Web Services Sigma - это сервис serverless функций, напоминающий AWS Lambda. Он позволяет пользователям создавать произвольные обработчики HTTP запросов (бессерверные функции) на языке JavaScript, способные взаимодействовать с диском и базой данных.

Возможности

  • Регистрация и вход (JWT под капотом)
  • Создание и управление проектами
  • Создание и управление функциями, редактирование кода с автодополнением, просмотр логов
  • Исполнение кода функции, назначенной на определенный HTTP endpoint, на стороне сервера

Реализация

  • Бэкенд на TypeScript + NestJS реализует функции панели управления проектами и балансировщик нагрузки/очередь для запуска функций на исполнение.

    Использует MongoDB

  • JavaScript рантайм на Rust + Boa позволяет (не)безопасно исполнять произвольный пользовательский код на сервере с лимитами по использованию памяти и времени исполнения.

    Использует PostgreSQL для хранения пользовательских данных

  • Веб-панель управления на TypeScript + React

Уязвимости

  • Arbitrary file access через API файловой системы для пользовательских функций -> Доступ к сгенерированному JWT токену в /etc/sigma/jwt.secret

  • Недостаточная валидация доступа к базе данных через API для пользовательских функций -> доступ к данным других проектов

  • NoSQL инъекция в обработчике GET /api/v1/projects через get query

  • NoSQL инъекция в практически любом обработчике через подделку JWT токена

  • DoS by design при выполнении пользовательских функций.

    Предусмотрены опции рантайма для быстрого закрытия уязвимости