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

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 сканер для перевірки репозиторію.

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

Google випускає Agent Development Kit (ADK) для Java: новий рівень створення ШІ-агентів

Компанія Google оголосила про запуск Agent Development Kit (ADK), спеціально розробленого для мови програмування Java.…

02.04.2026

Європейців закликали масово переходити на дистанційну роботу

Керівництво Європейського Союзу офіційно заявило про необхідність негайного зниження попиту на пальне. Для цього треба…

02.04.2026

Google зобов’язує розробників програм для Wear OS перейти на 64-бітну архітектуру

Компанія Google офіційно оголосила про впровадження обов’язкової підтримки 64-бітних архітектур для всіх застосунків платформи Wear…

02.04.2026

Як почати розмовляти з legacy-інфраструктурою і спростити життя розробникам

Сьогодні більшість нових систем створюються з використанням контейнерів та хмарної інфраструктури. Але в реальному корпоративному…

02.04.2026

Cтруктуровані промпти підвищують точність моделі до 93% — дослідження Meta

Дослідники компанії Meta розробили новий підхід до використання великих мовних моделей (LLM) для аналізу програмного…

02.04.2026

Google DeepMind розкриває секрети: шість способів, як зламати ШІ-агента

Нове дослідження від Google DeepMind попереджає: поки ми навчаємось працювати з автономними ШІ-агентами, які здатні…

02.04.2026