Skip to content
KitploitKITPLOIT
FerramentasBlog
Log in
Enviar
FerramentasBlog
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
CVE-2026-14871 — Vulnerabilidade BOLA/IDOR no osTicket ajax.tickets.php | Divulgação Responsável | Kitploit
Ferramentas/GitHubGitHub/jfoz1010/cve-2026-14871
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebColeta de InformaçõesTestes de PenetraçãoAprendizado e Educação
GitHubjfoz1010/cve-2026-14871

CVE-2026-14871

Vulnerabilidade BOLA/IDOR no osTicket ajax.tickets.php | Divulgação Responsável

Ver Repositório
7há 2 mesesAinda não revisado

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

CVE-2026-14871 - BOLA / IDOR no osTicket ajax.tickets.php

Autorização de Nível de Objeto Quebrada (BOLA): Referência Direta a Objeto Insegura (IDOR)
include/ajax.tickets.php → função viewField()
Reportado por @JF0x0r · 27 de março de 2026 Status: CORRIGIDO - Correção lançada no osTicket v1.17.8 / v1.18.4


Resumo

CampoDetalhes
VulnerabilidadeBOLA / IDOR (Autorização de Nível de Objeto Quebrada)
AlvoosTicket v1.18-git - commit 2570d69
Componenteinclude/ajax.tickets.php
FunçãoviewField() - linhas 805–806
EndpointGET /scp/ajax.php/tickets/{ticket_id}/field/{field_id}/view
Pontuação CVSS 4.08.2 ALTA - AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N
CWECWE-862 (Autorização Ausente), CWE-639 (Bypass de Autenticação via Chave Controlada pelo Usuário)
Status✅ Corrigido — corrigido no osTicket v1.17.8 e v1.18.4

Quem Sou

Sou Juan Felipe Oz (@JF0x0r), um pesquisador de segurança apaixonado por segurança em código aberto. Não faço isso por recompensas; faço porque acredito que as ferramentas nas quais as pessoas confiam devem ser seguras. Quando encontro algo, reporto de forma responsável, documento adequadamente e compartilho publicamente assim que é corrigido.


O Que Encontrei

Durante uma revisão manual de código do subsistema AJAX do osTicket, percebi algo estranho em ajax.tickets.php. A função viewField() lida com requisições para visualizar dados de campos de tickets — e de fato ela recupera o objeto do ticket e valida se o campo existe. Mas nunca verifica se o agente solicitante realmente tem permissão para acessar aquele ticket.

Nenhum checkStaffPerm(). Nenhuma validação de departamento. Nada.

Isso significa que qualquer agente autenticado, mesmo estritamente limitado a um único departamento, pode ler campos de tickets de qualquer outro departamento no sistema, apenas conhecendo ou adivinhando o ticket_id e o field_id. Eles são inteiros sequenciais. Fáceis de enumerar.

O que torna isso particularmente claro é a comparação com editField(), a função irmã logo acima no mesmo arquivo. editField() corretamente chama $ticket->checkStaffPerm($thisstaff, Ticket::PERM_EDIT) e retorna HTTP 403 em caso de violação. A correção já estava implementada para gravações — simplesmente nunca foi aplicada para leituras.


Prova de Conceito: Demonstração ao Vivo

Gravei uma demonstração completa de ponta a ponta da exploração em um ambiente de laboratório controlado:

PoC Video — BOLA/IDOR osTicket

O vídeo mostra:

  • Configuração do laboratório com dois departamentos isolados (Dept-A e Dept-B)
  • Agente agent_a autenticado com acesso restrito apenas ao Dept-A
  • Elaboração da requisição não autorizada visando um ticket confidencial do Dept-B
  • O servidor retornando HTTP 200 com os dados do campo do ticket restrito expostos
  • Replay após a correção mostrando HTTP 403 — Permissão negada

O script exploit.py neste repositório automatiza toda a cadeia (autenticação → enumeração → acesso não autorizado a campos) e foi usado durante a avaliação para confirmar que o problema escala além de testes manuais.


Impacto

  • Exposição de dados confidenciais — qualquer agente pode ler campos de tickets confidenciais em todos os departamentos
  • Escalada horizontal de privilégios — limites departamentais são completamente ignorados
  • Enumeração em massa — inteiros sequenciais ticket_id / field_id tornam a raspagem em massa trivial
  • Violação de confidencialidade multi-inquilino — derrota o princípio central de design do modelo de isolamento de departamentos do osTicket

A Correção

Inserção de uma única linha em viewField(), imediatamente após a recuperação do objeto do ticket — espelhando exatamente o que editField() já faz corretamente. Detalhes técnicos completos, diff e detalhamento CVSS estão no relatório anexo.

📄 BOLA_IDOR_osTicket_Report_v2.pdf

✅ Correção Oficial (Confirmada pela Equipe do osTicket)

A equipe do osTicket confirmou o relatório e implementou a mitigação adicionando $ticket->checkStaffPerm($thisstaff) antes de resolver/renderizar o campo solicitado — espelhando a verificação já presente em editField(). Agora, a equipe deve ter acesso ao ticket pai antes de visualizar os dados do campo.

DetalheReferência
Commit da correçãod590a9770d25159fb7741681f36e23a35f1fb5e9
Corrigido emv1.17.8 · v1.18.4
Downloads oficiaisosticket.com/download
Tipo de lançamentoLançamento de segurança acelerado
AgradecimentoJuan Felipe Oz (@JF0x0r)

A equipe do osTicket recomenda um curto período de espera para atualização antes de compartilhar os passos completos da exploração publicamente. Este repositório segue essa orientação — veja a Cronologia da Divulgação abaixo.


Cronologia da Divulgação

DataEvento
27 de março de 2026Vulnerabilidade descoberta e documentada
27 de março de 2026Relatório enviado para [email protected]
17 de junho de 2026osTicket confirma o problema e compartilha correção de mitigação para verificação
17 de junho de 2026osTicket lança v1.17.8 e v1.18.4 contendo a correção (commit d590a9770d25159fb7741681f36e23a35f1fb5e9)
—Atribuição de CVE pendente via GitHub CNA

Arquivos neste Repositório

.
├── README.md                        # Este arquivo
├── BOLA_IDOR_osTicket_Report_v2.pdf # Relatório técnico completo
├── exploit.py                       # Script de automação do PoC
└── PoC_osTicket.mov                 # Cópia local do vídeo de demonstração

Divulgação Responsável

Reportei isso de forma privada à equipe de segurança do osTicket antes de publicar qualquer coisa. Este repositório foi tornado público somente após o prazo de divulgação responsável, e agora que uma correção oficial foi lançada, o relatório completo está disponível. Se você é mantenedor do osTicket e tem dúvidas, sinta-se à vontade para entrar em contato diretamente pelo GitHub.


Encontrado por @JF0x0r · Segurança em código aberto importa.

Baixar ferramenta