Skip to content
RiverCore
Помилка Gitea Registry Розкриває Приватні Образи Впродовж Чотирьох Років
Gitea auth bypassCVE-2026-27771container registryGitea private images unauthenticated accessGitea registry vulnerability patch

Помилка Gitea Registry Розкриває Приватні Образи Впродовж Чотирьох Років

30 тра 20266 хв. читанняAlex Drover

Кожен, хто коли-небудь запускав самостійно розгорнутий Git-сервер, знає цю угоду: ви міняєте рахунок за керований SaaS на операційну поверхню, якою тепер володієте о 3-й ночі. CVE-2026-27771 — це саме той тип помилки, який робить цю угоду дорогою. Логічна вада у вбудованому реєстрі контейнерів Gitea мовчки роздавала приватні OCI-образи неавтентифікованим запитувачам майже чотири роки, і приблизно 31 750 доступних з інтернету інстансів були все ще відкриті, коли з'явилось попередження.

Ключові деталі

Вразливість, відстежувана як CVE-2026-27771 і розкрита 28 травня 2026 року, є обходом автентифікації в логіці контролю доступу реєстру контейнерів Gitea. Як повідомляє Rescana, кінцева точка реєстру відповідає на стандартні запити Docker та OCI pull від неавтентифікованих клієнтів, навіть якщо відповідний репозиторій позначено як приватний. Без токена. Без cookie. Без облікового запису. Просто pull.

Масштаб проблеми значний. Усі версії Gitea від 1.13.0 до 1.26.1 включно є вразливими, а також будь-яка більш рання версія, де увімкнено функцію реєстру. Це довгий хвіст версій, що охоплює приблизно чотири роки. Forgejo, відомий форк спільноти, успадкував вразливу кодову базу і також є під загрозою, і інші похідні форки, ймовірно, знаходяться в тому ж становищі. Локально або в хмарі — не має значення. Помилка в коді, а не в топології розгортання.

Автономний агент для тестування на проникнення NoScope Security виявив вразливість у квітні 2026 року та відповідально розкрив її мейнтейнерам Gitea. Виправлення вийшло у Gitea 1.26.2. Для команд, які не можуть оновити бінарний файл сьогодні, задокументований обхідний шлях — встановити [service].REQUIRE_SIGNIN_VIEW=true в конфігурації Gitea. Цей прапор повністю вимикає анонімний доступ, включаючи до легально публічних репозиторіїв та образів, тому це грубий інструмент, але він зачиняє двері.

Масштаб відкритих ресурсів — це та частина, яка має викликати занепокоєння у керівників платформ. Приблизно 31 750 доступних з інтернету розгортань Gitea у більш ніж 30 країнах є досяжними, і понад половина з них знаходиться на великих хмарних платформах. Серед постраждалих секторів — охорона здоров'я, аерокосмічна галузь, роздрібна торгівля, провайдери та компанії з розробки корпоративного програмного забезпечення. Станом на момент публікації звіту немає публічного PoC і підтвердженої активної експлуатації, жодна APT-група не була названа. Каталог на MITRE — місце, де варто стежити за розвитком запису CVE.

Чому це важливо для команд безпеки

Контейнерний образ — це не просто бінарний блок. Це упакований опис того, як побудовано ваш сервіс. Приватні образи зазвичай містять вихідний код застосунку, пропрієтарну бізнес-логіку, вбудовані API-ключі, облікові дані для баз даних та файли конфігурації інфраструктури. Завантажте один — і ви фактично підглянули за роботою інженера на ноутбуці протягом тижня.

Це змінює оцінку цієї помилки. Неавтентифікований pull є помітним лише тоді, коли ви ведете журнал доступу до реєстру на рівні, де видимі неавтентифіковані запити. Більшість команд, з якими я працював, добре журналюють автентифіковану активність і сприймають анонімні відповіді 200 як нудний CDN-шум. Виробничі інциденти, які я бачив, як правило, виявляються через кілька тижнів, коли витік API-ключа з'являється в чужому сповіщенні про оплату, а не в момент самого pull.

Чотири роки відкритості — це інший неприємний факт. Якщо ви запускали Gitea між версіями 1.13.0 та 1.26.1 з увімкненим реєстром і будь-яким портом, доступним з інтернету (або зі скомпрометованого внутрішнього хоста), ви не можете припускати, що ваші приватні образи залишалися приватними. Ви маєте вважати, що секрети в цих шарах розкриті. Змініть їх.

Моя думка: патч — це легша половина. Важча половина — це позиція реагування на інцидент, яку ви приймаєте після встановлення патча. Це означає перерахування кожного образу, який зберігався в реєстрі протягом цього вікна, визначення тих, що містять облікові дані або конфігурацію, та ротацію цих секретів з припущенням про компрометацію. Ставтесь до цього як до події розкриття облікових даних, а не як до квитка CVE. Каталог CISA KEV ще не містить цього запису, і це не привід розслаблятися. Це привід діяти, поки він там не з'явився.

Один чіткий урок: якщо ваш реєстр роздає артефакти, що містять секрети, ваш реєстр є сховищем секретів — незалежно від того, проектували ви його таким чином чи ні.

Вплив на галузь

Для iGaming- та fintech-компаній самостійно розгорнутий Git є поширеним саме тому, що регулятори не схвалюють зберігання вихідного коду в чужому S3-бакеті. Gitea та Forgejo є популярним вибором, оскільки вони легкі, швидкі та не потребують JVM. Компроміс полягає в тому, що ви самі відповідаєте за регулярність патчів, а в команді платформи з 10 осіб оновлення Gitea, як правило, відкладається за оновленням Kafka та незначним апгрейдом Postgres щокварталу.

Цифру 31 750 варто інтерпретувати в операційних термінах. Якщо навіть один відсоток цих розгортань містить один витоклий хмарний обліковий запис із широкими правами IAM, це сотні потенційних подальших інцидентів. Для середнього оператора вартість однієї зміненої виробничої бази даних облікових даних, включаючи години чергування, поетапне впровадження та неминучу бурю підключень після ротації, легко сягає тижня інженерного часу. Помножте це на кожен секрет, який ви маєте вважати розкритим, і ви отримуєте реальний бюджет. У команді з 10 осіб — це робота двох інженерів на спринт, витрачена на прибирання.

Хмарна більшість відкритих інстансів також говорить вам дещо про те, як команди ставляться до Gitea. Це сервіс типу «налаштував, прив'язав домен, забув». Саме такий операційний шаблон і породжує багаторічні вікна вразливостей. Незручний висновок: більшість постраждалих організацій, ймовірно, не знають, що функція реєстру в них була увімкнена.

Для ad-tech- та DeFi-компаній, що використовують Gitea для внутрішніх інструментів, варто турбуватися про кут атаки на ланцюжок постачання. Витоклий образ з NPM-токеном часу збірки або обліковими даними приватного реєстру пакетів — це ідеальний плацдарм для подальшої атаки на ланцюжок постачання. OWASP Top Ten наполегливо вказує на зламаний контроль доступу недарма: ця категорія продовжує породжувати помилки з найбільшим радіусом ураження.

На що звертати увагу

Три сигнали мають значення протягом наступних кількох тижнів. По-перше, поява публічного PoC. Поверхня атаки — стандартні інструменти Docker проти OCI-кінцевої точки, тому робочий експлойт — це короткий скрипт. Щойно він потрапить на GitHub, за ним протягом кількох годин підуть опортуністичні сканування. Оператори honeypot побачать це раніше за захисників.

По-друге, внесення до каталогу CISA KEV. Якщо активна експлуатація буде підтверджена і вразливість потрапить до каталогу KEV, федеральні мандати набудуть чинності й хвиля великих підприємств буде змушена встановити патч у визначені терміни. Саме тоді незапатчений довгий хвіст почне помітно скорочуватися.

По-третє, стежте за регулярністю релізів Forgejo. Спільнота форку рухається за власним графіком, і не кожен адміністратор Forgejo відстежує номери CVE upstream Gitea. Очікуйте на вторинну хвилю відкритості, коли поширюватиметься специфічне для Forgejo попередження.

Мій прогноз: протягом 60 днів ми побачимо принаймні один розкритий злам, що простежується до витоклих облікових даних, завантажених з реєстру Gitea, навіть якщо сам pull не стане головною новиною. Саме так зазвичай і виявляються такі історії — як наслідок реальної помилки.

Ключові висновки

  • Негайно оновіть Gitea до версії 1.26.2 або встановіть [service].REQUIRE_SIGNIN_VIEW=true як тимчасове блокування. Forgejo та інші форки потребують відповідних патчів.
  • Ставтесь до цього як до події розкриття облікових даних. Перерахуйте образи, що зберігалися у вашому реєстрі, визначте вбудовані секрети та проведіть ротацію з припущенням про компрометацію.
  • Вразливість охоплює версії Gitea від 1.13.0 до 1.26.1 — приблизно чотири роки релізів. Ваше вікно відкритості, ймовірно, довше, ніж ваш термін зберігання інцидентів.
  • Понад 31 750 доступних з інтернету інстансів відкриті у більш ніж 30 країнах, причому більше половини знаходяться на великих хмарних платформах. Припускайте, що ваші колеги також встановлюють патч цього тижня.
  • Перевірте свої реєстри контейнерів загалом. Якщо завантаження образу дає зловмиснику робочі облікові дані, ваш реєстр є частиною вашої поверхні секретів і потребує відповідного ставлення.

Часті запитання

Q: Що таке CVE-2026-27771 і наскільки це серйозно?

CVE-2026-27771 — це критичний обхід автентифікації у вбудованому реєстрі контейнерів Gitea, який дозволяє неавтентифікованим віддаленим зловмисникам завантажувати приватні контейнерні образи без будь-яких облікових даних. Це серйозно, оскільки приватні образи часто містять вихідний код, API-ключі та облікові дані баз даних, а вразливість існувала майже чотири роки на приблизно 31 750 відкритих розгортаннях.

Q: Які версії Gitea вразливі і як це виправити?

Усі версії Gitea від 1.13.0 до 1.26.1 є вразливими, а також Forgejo та інші форки, що успадкували вразливий код. Виправлення — оновити до Gitea 1.26.2 або пізнішої версії. Як тимчасовий обхідний шлях, встановіть [service].REQUIRE_SIGNIN_VIEW=true в конфігурації Gitea, що вимкне весь анонімний доступ, включаючи до публічних репозиторіїв.

Q: Чи активно експлуатується CVE-2026-27771?

Станом на попередження від 28 травня 2026 року немає підтверджених повідомлень про активну експлуатацію і не було опубліковано жодного доказу концепції. Жодна APT-група публічно не була названа. Тим не менш, атака використовує стандартні інструменти Docker і не потребує облікових даних, тому експлуатація є тривіальною, щойно з'явиться PoC.

AD
Alex Drover
RiverCore Analyst · Dublin, Ireland
ПОДІЛИТИСЯ
// RELATED ARTICLES
ГоловнаРішенняПроєктиПро насКонтакт
Новини06
Дублін, Ірландія · ЄСGMT+1
LinkedIn
🇺🇦UK