Рубріки: Новини

GitHub зберігає навіть «видалені» коміти — багхантер зумів заробити на цьому $25 000

Дмитро Сімагін

Експерт з кібербезпеки Шерон Брізінов розповів, що GitHub залишає доступними коміти навіть після команди force push. Як наслідок, в них все ще можна знайти токени, ключі і паролі. 

За допомогою безкоштовного інструменту Force Push Scanner Брізінову відшукати десятки багів і секретів, завдяки чому він заробив $25 000 як винагороду за знайдені помилки.

Наприклад, якщо розробник закомітив секрет і потім «видалив» його через git reset –hard і git push –force, то, на перший погляд, слідів не залишилося. Але це не зовсім так: GitHub зберігає всі коміти, включаючи ті, що більше не прив’язані до жодної гілки.

У публічному GitHub Archive вони фіксуються як PushEvent з нулем комітів, що сигналізує про перезапис історії.

Брізінов проаналізував такі події з 2020 року і знайшов десятки тисяч «висячих» коммітів. Їхній вміст можна було перевірити через інструмент для пошуку секретів TruffleHog. Ось як це працювало: 

  • дослідник використовував GitHub Archive та Event API, щоб знаходити force push-події без комітів;
  • для кожної події витягував «віддалений» хеш коміта;
  • клонував репозиторій та переглядав вміст коміту через TruffleHog;
  • фільтрував результати, виділяючи потенційно цінні секрети.

Для спрощення аналізу він навіть написав власну платформу та підключив ШІ з метою оцінки значущості знайдених ключів.

Найнебезпечнішим випадком знайдених секретів став доступ до репозиторій Istio. Один із знайдених токенів надав адміністраторський доступ до всіх репозиторій Istio — проекту з 36 000 зірок та десятками тисяч користувачів, включаючи Google, IBM та Red Hat. Ця вразливість могла призвести до масштабної supply-chain атаки. На щастя, команда швидко відреагувала та відкликала ключ.

Для розробників випадок з Брізіновим дає наступне:

  • force push не стирає історію — коміти все ще доступні публічно.
  • Будь-який закомічений секрет потрібно негайно відкликати навіть якщо він «видалений».
  • .env, config.js і README.md — найчастіші джерела витоків.

GitHub поки не має інструменту для виявлення таких вразливостей, але компанія Truffle Security вже випустила open-source сканер для перевірки репозиторію.

Останні статті

xAI випустила Grok 4.1 — модель встановила рекорд і поки безкоштовна

Компанія xAI випустила нову флагманську LLM-модель Grok 4.1. Новинка вже доступна у веб-версії та мобільних…

18.11.2025

OpenAI випустила гайд для розробників, як писати промпти з GPT-5.1

Компанія OpenAI опублікувала розширений посібник для розробників з рекомендаціями застосування нової LLM-моделі GPT-5.1. В документі…

17.11.2025

PyPI посилює перевірку користувачів після зміни пристрою авторизації

Розробники репозиторію Python-пакетів PyPI (Python Package Index) запровадили додаткову перевірку під час авторизації. Тепер від…

17.11.2025

Новий сервіс Code Wiki від Google сам пише та оновлює документацію для GitHub-репозиторіїв

Компанія Google представила новий проект Code Wiki — сервіс, який автоматично генерує технічну документацію для…

17.11.2025

В оновленому Visual Studio Code з’явився Agent HQ — центр управління агентами кодування

Редактор коду Visual Studio Code отримав чергове оновлення. У релізі 1.106 з'явився Agent HQ —…

17.11.2025

ІТ-компанії, засновані українцями в США, генерують $23,2 млрд доходу і створили 130 000 робочих місць

Американські компанії, засновані вихідцями з України, генерують майже $60 млрд річного доходу в США та…

17.11.2025