Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
ats-jsonrpc-unrestricted — Apache Traffic Server 10.2.0 - Alta - Local - Privilégio remanescente - Socket unix JSON-RPC em modo irrestrito 0777 | Kitploit
Ferramentas/GitHubGitHub/abraxas/ats-jsonrpc-unrestricted
Escalada de PrivilégiosAnálise de VulnerabilidadesColeta de InformaçõesConfiguração IncorretaLabs e Prática
GitHubabraxas/ats-jsonrpc-unrestricted

ats-jsonrpc-unrestricted

Apache Traffic Server 10.2.0 - Alta - Local - Privilégio remanescente - Socket unix JSON-RPC em modo irrestrito 0777

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Ver Repositório
há 14 diasAinda não revisado

Abraxas Labs - ats-jsonrpc-unrestricted

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

ats-jsonrpc-unrestricted

Classe: Privilégio remanescente (recon) Alcance: Local

Apache Traffic Server 10.2.0 (b1df7334) - Apache Software Foundation

O socket unix JSON-RPC tem como padrão restricted_api false. O jsonrpc.yaml distribuído contém apenas comentários, então o inicializador em C++ prevalece. O modo de bind SO_PEERCRED no Linux é 0777. Qualquer uid local que consiga alcançar o inode do rundir conecta-se sem token e extrai registros ativos (incluindo caminhos de chaves SSL) além das 5-tuplas do rastreador de conexões. As escritas permanecem protegidas por SO_PEERCRED (euid == 0 ou euid do ATS). A tabela da documentação diz true / 0700; o código e o exemplo comentado são false / 0777.

Isto não é o CVE-2026-58159 (ACL do listener HTTP UDS). Não há JSON-RPC via TCP/HTTP. O carregamento de plugins e a escrita de configuração permanecem negados para um uid externo.

IDainda sem CVE
ClassePrivilégio remanescente (recon)
AlcanceLocal (uid sem privilégios no host do ATS)
CWECWE-276, CWE-284
CVSSAlto: 7.1 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
ProdutoApache Traffic Server
Afetado10.2.0 (b1df7334b39a878971c376da849e8da4984918b6) unix JSON-RPC padrão
Autenticaçãonenhuma em métodos irrestritos. Alcance local do sistema de arquivos ao rundir.
LicençaGNU Affero GPL v3.0
Labapenas 127.0.0.1:18720. Imagem ats-10.2.0-lab:local.

Fixe a tag 10.2.0, commit b1df7334b39a878971c376da849e8da4984918b6. Imagem compilada a partir do código-fonte.

O que um atacante pode fazer

Uid local no host do ATS (não root, não o euid do ATS). RPC habilitado. JSON-RPC unix ativado. Rundir típico 0755 pertencente ao ATS. Socket $RUNTIMEDIR/jsonrpc20.sock.

MétodoDestinoPrivilégio
admin_lookup_records como uid 10000 em jsonrpc20.sock 0777JSON-RPC irrestrito (RpcAdminPubHandlers.cc)Recon (comprovado em lab): proxy.config.proxy_name=ATS-JSONRPC-UNRESTRICTED-WITNESS ativo, caminhos de chaves SSL etc/trafficserver, proxy.config.admin.user_id=nobody. Os bytes das chaves não estão nos registros.
get_connection_tracker_infomesmo socketRecon (comprovado em lab): tabelas de rastreamento de entrada/saída (vazias sem carga).
get_server_status, admin_host_get_status, admin_storage_get_device_status, filemanager.get_files_registrymesmo bit irrestritoRecon (inferido): estado de drain, markdown de host, caminhos de disco de cache, caminhos absolutos de configuração.
admin_config_set_records como uid 10000SO_PEERCRED restritoIntegridade: fechada (comprovado em lab). Erro JSON-RPC 10 Unauthorized, Denied privileged API access for uid=10000. Registro testemunha inalterado.
drain / limpeza de cache / storage offlinemétodos restritosDisponibilidade: fechada para um uid externo (código-fonte).

Comprovado em lab vs inferido: socket 0777, consulta de proxy_name / caminhos de chaves SSL pelo uid 10000, tabelas do rastreador, escrita negada, ausência de JSON-RPC via TCP: lab. Outros métodos de leitura irrestritos: inferidos a partir do mesmo gate.

Requer: uid local no host do ATS. JSON-RPC unix ativado (padrão). SO_PEERCRED no Linux para que o bind irrestrito seja 0777. Rundir acessível (tipicamente 0755).

Superfície adjacente que permanece fechada

SuperfícieLaboratório
admin_config_set_records como uid 10000Não autorizado; registro testemunha inalterado
TCP / HTTP JSON-RPCausente; apenas HTTP 8080 / 18080
Carregamento de plugin .so via RPCSO_PEERCRED
traffic_ctl com mesmo uidadmin pretendido
umask+bind atômico quando restricted_api é true0700, correção do CHANGELOG mantida
ACL do listener HTTP UDS CVE-2026-58159não este socket

Como eu o encontrei

O RPC fica ativo a menos que rpc.enabled: false. Apenas CommType::UNIX existe. O jsonrpc.yaml.default fornecido contém apenas comentários. A decodificação YAML só grava restrictedAccessApi quando a chave está presente. Caso contrário:

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

NON_RESTRICTED_API é false (IPCSocketServer.h:128-129). O comentário diz que 0700 é o padrão. O inicializador é a constante irrestrita.

Bind (IPCSocketServer.cc:310-342): restricted_api false mais SO_PEERCRED -> modo 0777. A última frase da tabela da documentação diz true por padrão. O código e o exemplo comentado seguem false.

Caminhos errados: tratar o true da documentação como o padrão; chamar isto de RCE (escritas negadas); tratar CVE-2026-58159 como cobrindo o mgmt JSON-RPC; procurar um resquício TCP do antigo traffic_manager XMLRPC.

Teatro: uma escrita como uid 10000. O oráculo é um proxy_name plantado mais strings de caminho de chave SSL, depois um conjunto negado.

Lab

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

ou

cd lab
./run.sh

Loopback 127.0.0.1:18720. Projeto Compose ats-jsonrpc-unrestricted. Imagem ats-10.2.0-lab:local. uid do laboratório 10000. Modo do socket 0777. Testemunha ATS-JSONRPC-UNRESTRICTED-WITNESS. Última linha:

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

A correção

Definir restricted_api como true por padrão e vincular com 0700, correspondendo à tabela da documentação. Alinhar o exemplo comentado de jsonrpc.yaml. Manter as leituras irrestritas atrás de uma adesão explícita. As escritas já exigem SO_PEERCRED; não as abrir.

Referências

Baixar ferramenta