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

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

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

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

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

Категории

Все категории
Loading categories
ats-jsonrpc-unrestricted — Apache Traffic Server 10.2.0 — высокий уровень — локальная — остаточные привилегии — unix-сокет JSON-RPC в неограниченном режиме 0777 | Kitploit
Инструменты/GitHubGitHub/abraxas/ats-jsonrpc-unrestricted
Повышение привилегийАнализ уязвимостейСбор информацииНеправильная КонфигурацияЛаборатории и Практика
GitHubabraxas/ats-jsonrpc-unrestricted

ats-jsonrpc-unrestricted

Apache Traffic Server 10.2.0 — высокий уровень — локальная — остаточные привилегии — unix-сокет JSON-RPC в неограниченном режиме 0777

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
Репозиторий
14 дней назадЕщё не проверено

Abraxas Labs - ats-jsonrpc-unrestricted

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  ats-jsonrpc-unrestricted

ats-jsonrpc-unrestricted

Класс: Остаточные привилегии (разведка) Доступ: Локальный

Apache Traffic Server 10.2.0 (b1df7334) - Apache Software Foundation

Unix-сокет JSON-RPC по умолчанию имеет restricted_api false. Поставляемый jsonrpc.yaml содержит только комментарии, поэтому побеждает инициализатор на C++. Режим привязки Linux SO_PEERCRED — 0777. Любой локальный uid, имеющий доступ к inode каталога rundir, подключается без токена и выгружает живые записи (включая пути к ключам SSL), а также 5-кортежи connection-tracker. Запись остаётся за SO_PEERCRED (euid == 0 или euid ATS). В таблице документации указано true / 0700; в коде и закомментированном примере — false / 0777.

Это не CVE-2026-58159 (ACL HTTP UDS-листенера). TCP/HTTP JSON-RPC отсутствует. Загрузка плагинов и запись конфигурации остаются запрещены для чужого uid.

IDCVE пока нет
КлассОстаточные привилегии (разведка)
ДоступЛокальный (непривилегированный uid на хосте ATS)
CWECWE-276, CWE-284
CVSSВысокий: 7.1 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
ПродуктApache Traffic Server
Затронуто10.2.0 (b1df7334b39a878971c376da849e8da4984918b6) unix JSON-RPC по умолчанию
Аутентификацияотсутствует для неограниченных методов. Локальный доступ к файловой системе rundir.
ЛицензияGNU Affero GPL v3.0
Лабораториятолько 127.0.0.1:18720. Образ ats-10.2.0-lab:local.

Я зафиксировал тег 10.2.0, коммит b1df7334b39a878971c376da849e8da4984918b6. Образ собран из исходников.

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

Локальный uid на хосте ATS (не root, не euid ATS). RPC включён. Unix JSON-RPC включён. Типичный rundir 0755, принадлежит ATS. Сокет $RUNTIMEDIR/jsonrpc20.sock.

МетодТочка входаПривилегия
admin_lookup_records от uid 10000 на jsonrpc20.sock с правами 0777неограниченный JSON-RPC (RpcAdminPubHandlers.cc)Разведка (подтверждено в лаборатории): живое значение proxy.config.proxy_name=ATS-JSONRPC-UNRESTRICTED-WITNESS, пути к ключам SSL etc/trafficserver, proxy.config.admin.user_id=nobody. Байты ключей в записях отсутствуют.
get_connection_tracker_infoтот же сокетРазведка (подтверждено в лаборатории): таблицы входящих/исходящих трекеров (пусты при отсутствии нагрузки).
get_server_status, admin_host_get_status, admin_storage_get_device_status, filemanager.get_files_registryтот же неограниченный битРазведка (предположительно): состояние drain, markdown хоста, пути к дискам кэша, абсолютные пути к конфигурации.
admin_config_set_records от uid 10000ограничено SO_PEERCREDЦелостность: закрыто (подтверждено в лаборатории). Ошибка JSON-RPC 10 Unauthorized, Denied privileged API access for uid=10000. Запись-свидетель не изменена.
drain / очистка кэша / отключение хранилищаограниченные методыДоступность: закрыто для чужого uid (по исходникам).

Подтверждено в лаборатории vs предположительно: сокет 0777, поиск от uid 10000 значений proxy_name / путей к ключам SSL, таблицы трекеров, отказ в записи, отсутствие TCP JSON-RPC: лаборатория. Прочие неограниченные методы чтения: предположительно, исходя из того же шлюза.

Требуется: локальный uid на хосте ATS. Unix JSON-RPC включён (по умолчанию). Linux SO_PEERCRED, чтобы неограниченная привязка была 0777. Rundir доступен (типично 0755).

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

ПоверхностьЛаборатория
admin_config_set_records как uid 10000Неавторизовано; запись-свидетель не изменена
TCP / HTTP JSON-RPCотсутствует; только HTTP 8080 / 18080
Загрузка плагина .so через RPCSO_PEERCRED
traffic_ctl с тем же uidпредполагаемый администратор
Атомарные umask+bind при restricted_api = true0700, исправление из CHANGELOG сохранено
ACL HTTP UDS-листенера CVE-2026-58159не этот сокет

Как я это обнаружил

RPC включён, если не задано rpc.enabled: false. Существует только CommType::UNIX. Поставляемый jsonrpc.yaml.default содержит только комментарии. Декодирование YAML записывает restrictedAccessApi только при наличии ключа. В противном случае:

bool restrictedAccessApi{
  NON_RESTRICTED_API}; // ... 0700(default) or 0777

NON_RESTRICTED_API имеет значение false (IPCSocketServer.h:128-129). В комментарии сказано, что по умолчанию используется 0700. Инициализатор — это неограниченная константа.

Bind (IPCSocketServer.cc:310-342): restricted_api false плюс SO_PEERCRED -> режим 0777. Последнее предложение таблицы в документации говорит, что по умолчанию true. Код и закомментированный пример соответствуют false.

Неверные пути: считать true из документации значением по умолчанию; называть это RCE (запись запрещена); считать, что CVE-2026-58159 покрывает mgmt JSON-RPC; искать TCP-остаток старого traffic_manager XMLRPC.

Театральная постановка: запись от имени uid 10000. Оракул — это подложенный proxy_name плюс строки пути к ключу SSL, затем запрещённый набор.

Лаборатория

python3 ats-jsonrpc-unrestricted-Abraxas-Labs.py

или

cd lab
./run.sh

Loopback 127.0.0.1:18720. Проект Compose ats-jsonrpc-unrestricted. Образ ats-10.2.0-lab:local. UID лаборатории 10000. Режим сокета 0777. Свидетель ATS-JSONRPC-UNRESTRICTED-WITNESS. Последняя строка:

SUCCESS ats-jsonrpc-unrestricted how=uds-0777-unrestricted-jsonrpc uid=10000 sock-mode=0777 lookup-proxy_name=ATS-JSONRPC-UNRESTRICTED-WITNESS ssl-key-path=etc/trafficserver tracker=ok write=unauthorized tcp-jsonrpc=absent ATS-JSONRPC-UNRESTRICTED-WITNESS

Исправление

По умолчанию установить restricted_api в true и привязывать с правами 0700, как указано в таблице документации. Привести в соответствие закомментированный пример jsonrpc.yaml. Оставить неограниченное чтение за явным согласием. Запись уже требует SO_PEERCRED; не открывать её.

Ссылки

Скачать инструмент