Сигурност

Редакция Overclock.bg ·

Пропуск 10.0 в GitLab: код без вход от 12 години

Пропуск 10.0 в GitLab: код без вход от 12 години

GitLab публикува на 21 октомври критично патч издание за Community и Enterprise Edition, което затваря дупка с максималната възможна оценка. CVE-2026-110264 носи CVSS 10.0 и позволява на напълно неавтентикиран нападател да изпълни произволен код на сървъра. Засегнати са всички self-managed версии от GitLab 7.0, излязла през 2014 г., до 19.5 — близо 12 години история на кода.

Един .org файл и един регулярен израз

Проблемът не е в самия GitLab, а в това какво подава той на долния слой. Уязвимостта живее в Onigmo — машината за регулярни изрази, която Ruby носи със себе си. Там при компилирането на специално подготвен израз настъпва integer overflow, а оттам се стига до изпълнение на код.

Пътят дотам минава през gem-а org-ruby, с който GitLab рендерира файлове във формат Org-mode. Когато платформата показва преглед на .org файл, библиотеката взема съдържанието на #+TODO: ключовите думи и го подава директно на Regexp.new. Нападателят контролира този низ — значи контролира и какво компилира Onigmo.

Формулировката на самия GitLab е пестелива: „При определени условия това би могло да позволи на неавтентикиран потребител да изпълни произволен код на сървъра заради integer overflow при компилирането на специално подготвен регулярен израз.“

Оттам идва и CVSS векторът AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H — атака по мрежа, ниска сложност, без права, без взаимодействие с потребител и със смяна на обхвата. Няма комбинация, която да даде повече от 10.0.

Кои версии и до кои да обновите

Кръпките са седем, по една на поддържана линия:

ЛинияЗакърпена версия
19.519.5.1
19.419.4.3
19.319.3.6
19.219.2.9
19.119.1.9
19.019.0.10
7.0 – 18.1118.11.13

GitLab.com вече работи на закърпена версия, а клиентите на GitLab Dedicated не трябва да правят нищо. Рискът е изцяло при self-managed инсталациите — тоест при хилядите GitLab сървъри, които фирмите държат сами, често публично достъпни и често с публични проекти, в които всеки може да отвори файл.

Изглед на pipeline в GitLab Снимка: GitLab press kit

Кръпката от 12 октомври не е свършила работа

Това е вторият опит. На 12 октомври GitLab затвори CVE-2026-97229 — също integer overflow в компилатора на регулярни изрази, също с оценка 10.0, но през регулярен израз в CI/CD конфигурация. Тогава излязоха 19.4.2, 19.3.5 и 19.2.8.

Rapid7 обаче отбеляза важен детайл: за да задейства тогавашния пропуск, нападателят трябва първо да качи зловредна CI/CD конфигурация в хранилище. Това изисква някакъв достъп — освен на инстанции, където регистрацията е свободна и всеки може да създаде проект.

Новата CVE маха и това ограничение. Рендерирането на .org файл не иска нито pipeline, нито права за писане — достатъчен е преглед на съдържание. Затова и обхватът скача от „19.2 и нагоре“ до „всичко от 2014 г.“.

Още 11 пропуска в същото издание

Критичната дупка не е сама. В изданието влизат общо 12 CVE, сред които:

  • CVE-2026-15723 (8.2) — превземане на LDAP акаунт при едновременно включени OmniAuth SAML и автоматично свързване с LDAP. Докладван от изследователя с ник stealthy.
  • CVE-2026-112212 (7.5) — отравяне на споделен кеш през discovery endpoint-ите на OAuth/OIDC, открит вътрешно от Петер Артс.
  • CVE-2026-12664 (6.8) — изтичане на имейл адреси през GraphQL полето на work item-ите.
  • CVE-2026-105777 (4.3) — вътрешни идентификационни данни в HTTP хедъри на отговорите.

Критичната CVE-2026-110264 е докладвана през програмата на GitLab в HackerOne от изследовател с ника joaxcar.

Какво да направите днес

Обновете. GitLab формулира съвета си неслучайно твърдо: всички засегнати инсталации трябва да минат на последна версия „възможно най-скоро“. Имайте предвид, че изданието носи миграции по базата — инстанция на един възел ще има престой, а при многовъзлови конфигурации може да минете през процедурата за обновяване без прекъсване.

Ако не можете да обновите веднага, GitLab публикува две Sigma правила за откриване в рамките на TLDR: Onigmo native worker crash и Org mode render error burst. И двете търсят следите от неуспешен опит — срив на worker процеса и внезапен поток от грешки при рендериране на Org файлове.

Към 22 октомври няма потвърдена експлоатация в реални условия и CVE-2026-110264 не е в каталога на CISA за експлоатирани уязвимости. Това обаче е слаба утеха: описанието е публично, механизмът е разбираем, а историята с PoC за Plex, използван ден след публикуването му, показва колко кратък е прозорецът. Както при двете критични дупки в PHP, печели онзи, който обнови преди да му се наложи да разследва.

Заключение

Оценка 10.0 върху код, който е на мястото си от 2014 г., е напомняне, че най-опасните пропуски рядко са в новите функции. Тук се събраха три слоя — машина за регулярни изрази на Ruby, стар gem за екзотичен формат за текст и платформа, която рендерира всичко, което види в хранилището. Кръпката е налична, обхватът е ясен, а единственото, което остава, е да я приложите.

Харесва ви? Отбележете ни и ще ни виждате по-нагоре в Google.

Предпочитан източник в Google

Прочетете още