Hacker News Digest

19 августа 2025 г. в 15:55 • research.kudelskisecurity.com • ⭐ 611 • 💬 207

OriginalHN

#github#markdown-it#latex#rce#postgresql#github-app#security#vulnerability

How we exploited CodeRabbit: From simple PR to RCE and write access on 1M repos

CodeRabbit: от PR до RCE и доступа к 1 млн репозиториев

CodeRabbit — самое популярное AI-приложение на GitHub Marketplace (1 млн репозиториев, 5 млн PR). При установке он анализирует каждый PR и оставляет AI-комментарии.

Найденные уязвимости

  1. RCE через Markdown-рендеринг

    • Внутри контейнеров запускается markdown-it с плагином markdown-it-katex.
    • Плагин использует child_process.exec без фильтрации LaTeX-ввода.
    • Внедрённый в PR $\input{/etc/passwd}$ запускает произвольные команды.
  2. Утечка токенов

    • Внутри контейнеров доступны переменные окружения: GITHUB_TOKEN, CODERABBIT_API_KEY, DATABASE_URL.
    • Чтение /proc/self/environ и ~/.netrc позволило получить токены GitHub, JWT-секреты и строку подключения к PostgreSQL.
  3. Доступ к 1 млн репозиториев

    • Установленный GitHub-App имеет scope contents:write во всех подключённых репозиториях.
    • С помощью украденного токена можно клонировать/писать в приватные репы, создавать PR, коммиты и релизы.

Цепочка атаки

  1. Создаём PR с вредным LaTeX.
  2. Получаем RCE в контейнере CodeRabbit.
  3. Считываем секреты.
  4. Используем токен GitHub для полного доступа к репозиториям.

Меры защиты

  • Переход на изолированные sandbox-среды.
  • Отключение опасных LaTeX-функций.
  • Минимизация scope GitHub-токенов.