В системе управления ИТ-услугами GLPI обнаружили четыре уязвимости. Вместе они позволяют читать чужие обращения, подставлять код в формы и собирать имена сотрудников без входа в систему. Исправления вышли 7 октября 2026 года в версиях 10.0.28 и 11.0.10. Под угрозой организации, которые ведут в GLPI заявки, задачи и служебную переписку. Оценки разработчиков распределились так: три ошибки среднего уровня, одна высокая.
Детали уязвимостей
GLPI - открытая платформа для учёта оборудования, обработки обращений пользователей и планирования работ. Её используют службы поддержки, государственные структуры и компании среднего размера. В базе накапливаются описания сбоев, имена сотрудников, внутренние адреса, вложения и рабочая переписка. Развёртывания часто доступны из внутренней сети, а иногда и из интернета - ради мобильных сотрудников и подрядчиков. Потому доступ к чужой заявке даёт больше, чем обход одной страницы.
Самая серьёзная ошибка касается импорта иллюстраций для форм, и разработчики отнесли её к высокому уровню угрозы, High по внутренней классификации проекта. Пользователь с правом импорта форм загружает файл JSON, текстовый формат обмена данными, и передаёт в поле с картинкой произвольное содержимое. Настройки принимают его без проверки. Когда сотрудник открывает такую форму, в его браузере исполняется чужой сценарий в контексте доверенного сайта.
Это и есть межсайтовый скриптинг, или XSS, то есть исполнение чужого кода на странице, которой пользователь доверяет. Через подстановку злоумышленник действует от имени жертвы: читает данные, меняет параметры, отправляет запросы с её правами. Ошибка затрагивает только ветку 11.0.
Две уязвимости связаны с модулем планирования. Первая возникла из-за нехватки проверки прав: техник службы поддержки получает содержание событий за пределами своей сущности. Сущность в GLPI - организационная единица, которая разделяет доступ между отделами и филиалами. События в планировщике - это запланированные работы и встречи. Из их описаний видно, кто и чем занят, какие задачи идут и как они связаны с подразделениями. Без проверки границы сущностей исчезают, и сотрудник одного филиала видит работу другого.
Вторая ошибка того же модуля обходится вообще без учётной записи. Анонимный посетитель перебирает запросы к планировщику и по ответам определяет имена пользователей GLPI. Сам по себе список сотрудников безобиден, зато помогает готовить целевой фишинг и подбирать логины для атаки полным перебором. Обе проблемы разработчики оценили как средний уровень опасности.
Третья уязвимость кроется в шаблонах. Любой авторизованный пользователь получает доступ к откликам, задачам и решениям, которые система создала по шаблону. Если в шаблоне есть привязка к заявке, проблеме или изменению, наружу уходят детали внутренних обращений. Полномочия администратора для этого не нужны, хватает обычной учётной записи.
Все четыре ошибки требуют сетевого доступа, но различаются по правам. Для скриптинга нужна учётная запись с правом импорта форм, для утечки через шаблоны достаточно обычной, а перечисление имён доступно анонимно. Опаснее всего сочетание: сначала сбор имён, затем вход под легитимной учётной записью и просмотр чужих заявок. Такой набор данных упрощает и целевой фишинг. Он же помогает готовить атаки на смежные системы, куда ведут найденные в заявках адреса и учётные записи.
Сведений о реальном использовании этих уязвимостей нет. Идентификаторы CVE ни одной из них не присвоены, бюллетени опубликованы только в разделе безопасности проекта на GitHub. Сводка по ним вышла вместе с рекомендацией перейти на исправленные версии. Скорого публичного эксплойта, готового кода для использования уязвимости, в таких условиях ждать не стоит.
При этом GLPI - распространённый инструмент. Содержимое заявок раскрывает структуру подразделений, имена сотрудников и внутренние адреса, а эти сведения полезны для бокового перемещения по сети и точечных атак.
Уязвимы все выпуски 11.0 до 11.0.10 и все выпуски 10.0 до 10.0.28. Полностью закрывают четыре ошибки версии 10.0.28 в ветке 10.0 и 11.0.10 в ветке 11.0. Часть проблем ушла раньше: выпуски 10.0.27 и 11.0.9 закрывают утечку через шаблоны, а 11.0.9 вдобавок снимает риск межсайтового скриптинга. Обновление до последнего выпуска своей ветки остаётся самым надёжным шагом, и переходить с 10.0 на 11.0 ради этого не требуется.
Тем, кто не может обновиться сразу, стоит ограничить анонимный доступ к планировщику, пересмотреть права на импорт форм и проверить настройки сущностей. Перед установкой исправлений полезно сделать резервную копию базы и проверить совместимость расширений. Если в организации несколько инсталляций GLPI, обновить нужно каждую. После обновления полезно просмотреть журналы обращений к планировщику и импорту форм: они покажут, пытался ли кто-то пользоваться этими ошибками.
Планировщик и механизм шаблонов держатся на проверках прав, и именно эти проверки дали сбой в трёх бюллетенях из четырёх. Службе поддержки стоит следить за выпусками своей ветки и не оставлять анонимный доступ к служебным разделам. Проверка границ сущностей и прав на импорт - та часть настройки, которую редко пересматривают после первичной установки. Четыре ошибки по отдельности не выглядят разрушительными. Вместе они дают набор для разведки, сбора данных и закрепления в корпоративной сети.
Ссылки
- https://github.com/glpi-project/glpi/security/advisories/GHSA-j5vx-jrmw-2498
- https://github.com/glpi-project/glpi/security/advisories/GHSA-h34m-gqcf-25cp
- https://github.com/glpi-project/glpi/security/advisories/GHSA-7rqw-r5p3-ff92
- https://github.com/glpi-project/glpi/security/advisories/GHSA-5fw5-vgrw-ggp5