Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
opnsense-uidfield-system-uid0 — OPNsense 26.7.6 — высокий — удалённый — остаточные привилегии — UidField uid 0 | Kitploit
Инструменты/GitHubGitHub/abraxas/opnsense-uidfield-system-uid0
Аутентификация и авторизацияПовышение привилегийАнализ уязвимостейЭксплуатацияВиртуализация для безопасностиВеб-безопасностьТестирование на ПроникновениеЛаборатории и Практика

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
GitHubabraxas/opnsense-uidfield-system-uid0

opnsense-uidfield-system-uid0

OPNsense 26.7.6 — высокий — удалённый — остаточные привилегии — UidField uid 0

Репозиторий
2 дней назадЕщё не проверено

Abraxas Labs - opnsense-uidfield-system-uid0

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  opnsense-uidfield-system-uid0

opnsense-uidfield-system-uid0

Класс: Остаточные привилегии Доступ: Удалённый

Ядро OPNsense 26.7.6 (a842fe48) - opnsense.org

Делегированная страница page-system-usermanager выполняет два шага: scope=system, затем uid=0. UidField::setValue автоматически назначает 2000+ только пока scope не равен system. setNodes применяет uid до scope, поэтому один add не может проставить 0. Второй POST может. Затем auth sync user выполняет pw useradd -o -u 0 с домашним каталогом /root и группой wheel. Авторизованные ключи попадают в /root/.ssh/authorized_keys. Привилегия — System: Access: Management, а не page-all.

IDCVE пока нет
КлассОстаточные привилегии
ДоступУдалённый (аутентифицированный WebGUI / локальный API-ключ)
CWECWE-269 / CWE-284
CVSSВысокий: 8.8 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
ПродуктOPNsense core (Deciso B.V.)
ЗатронутоOPNsense core 26.7.6 (a842fe48c21288d11a422cb944678e8eb308becf) UidField / user-manager
АутентификацияСессия WebGUI или локальный API-ключ с page-system-usermanager
ЛицензияGNU Affero GPL v3.0
Лабораториятолько 127.0.0.1

Я зафиксировал тег 26.7.6 "Xenial Xenops". Лаборатория — это PHP-гаджет зафиксированного UidField::setValue плюс local_user_set, идентичность на loopback 127.0.0.1:18810. В stable/26.7 запись UID-0 была отменена коммитом ea4f01fe 2026-10-09. Этот откат — не данная фиксация. GHSA отсутствует.

Что может сделать атакующий

МетодТочка срабатыванияПривилегия
двухшаговое добавление scope=system, затем установка uid=0, затем auth sync userфиксация UidField::setValue, затем заглушка pw useradd -o -u 0 (auth.inc:345-397)Целостность (доказано в лаборатории): второй Unix UID 0, домашний каталог /root, группа wheel. Лаборатория: after-add=2000 after-set=0 pw-o-u0=yes.
та же установка + authorizedkeysfile_put_contents /root/.ssh/authorized_keys (auth.inc:407-416)Целостность (доказано в лаборатории): свидетель в /root/.ssh/authorized_keys.
SSH под этим именем, если sshd включён (AllowGroups wheel; PermitRootLogin не применяется к имени пользователя, отличному от root)sshdРазведка + целостность (предположительно): вход под новым именем в группе wheel, чтение /root. Гаджет не запускал sshd.
те же POST с scope=user uid=0UidField автоматически назначает 2000+Отрицательный результат (доказано в лаборатории): uid остаётся 2000. scope-user-uid0-ignored=yes.
set для штатного root uuid uid=80pw usermod -u 80Целостность + доступность (предположительно): смещение штатного root с UID 0. Гаджет не выполнял usermod для root.
set для root uuid name=hax + scope=userпроверка переименования пропускается; auth sync user для нового имениЦелостность (предположительно): переименование системного пользователя, которое должна была предотвратить проверка в 26.7.6.

Доказано в лаборатории vs предположительно: двухшаговый UID 0, pw useradd -o -u 0, путь к ключам и игнорирование scope=user — это SUCCESS в лаборатории. Принятие живым sshd и usermod/переименование штатного root — предположительно. Гаджет, а не полноценная ВМ OPNsense.

Требуется: сессия WebGUI или локальный API-ключ с page-system-usermanager. CSRF на пути сессии. Не page-all. Стандартный config.xml.sample предоставляет page-all только группе admins.

Смежная поверхность, которая остаётся закрытой

ПоверхностьЛаборатория
POST /api/auth/user/* без page-system-usermanagerACL закрыт
user-config-readonlysave() всё ещё throwReadOnly()
Загрузка CSVудаляет uid/scope
CVE-2026-44194 email-as-shellmwexecf %s + regex для email
Страница пароляпривязана к сессии
page-all, выполняющий тот же POSTфункция changelog на данной фиксации
Без аутентификациизакрыто
Unix su с * в master.passwdхеш GUI остаётся в config.xml, если только установщик не форсирует

Без аутентификации — нет. page-all не требуется. 26.7.6 представлял выбор UID для пользователей с системным scope как администраторскую функцию. Несопоставленный проход — это делегированный user-manager без page-all.

Лаборатория

cd lab
./run.sh

Loopback 127.0.0.1:18810. Проект Compose opnsense-uidfield-system-uid0. Образ из фиксации 26.7.6. Свидетель OPNSENSE-UIDFIELD-SYSTEM-UID0-WITNESS. Последняя строка:

SUCCESS opnsense-uidfield-system-uid0 two-step-uid=0 scope-user-uid0-ignored=yes pw-o-u0=yes keys=/root/.ssh/authorized_keys OPNSENSE-UIDFIELD-SYSTEM-UID0-WITNESS

Исправление

Отклонять UID 0 (и конфликтующие служебные UID), если вызывающий не является полным администратором. Применять scope до uid в setNodes или отклонять POST, который меняет оба. Сохранять проверку переименования из 26.7.6 на scope до setNodes, а не на переданном. ea4f01fe позже отменил запись UID-0 в stable/26.7; этот коммит — не данная фиксация.

Ссылки

  • github.com/opnsense/core a842fe48c21288d11a422cb944678e8eb308becf
  • UidField.php
  • auth.inc local_user_set
  • Именованная страница (не этот остаток): CVE-2026-44194 / GHSA-f59w email-as-shell
  • Последующий откат (не данная фиксация): ea4f01fe в stable/26.7
  • CWE-269 / CWE-284
Скачать инструмент