← back
CVE-2018-18809criticalunder attackCWE-22

TIBCO JasperReports Library Directory Traversal Vulnerability

100Vexday Risk Score

Patch now. It under exploitation confirmed by CISA and has a working public exploit.

ssvc Actcvss 9.9epss 79%
from disclosure to weapon
Published on NVDMar 7
CISA KEV+1393d
exploitation probability
79%top 1% of all CVEs
observed exploitation
yesCISA + VulnCheck
1 public exploit(s)
Action required by CISAfederal deadline: 2023-01-19

Apply updates per vendor instructions.

Summary

Falha de directory traversal (CWE-22) no endpoint reportresource/reportresource/ do TIBCO JasperReports Server/Library, que permite ler arquivos arbitrários do sistema operacional através do parâmetro resource. O CVSS 9.9 reflete o pior cenário (acesso total a confidencialidade, integridade e disponibilidade), mas o pesquisador que descobriu a falha demonstrou exploração sem qualquer autenticação — mais grave, portanto, do que o PR:L sugerido pela TIBCO no vetor CVSS. Está no catálogo KEV da CISA com exploração confirmada em ambiente real.

Technical detail

A vulnerabilidade está no serviço reportresource/reportresource/, que recebe um parâmetro resource usado para localizar arquivos de recursos do JasperReports dentro da aplicação. A única validação aplicada é exigir que o valor comece com o prefixo net/sf/jasperreports/ — uma checagem de string, não de caminho canonicalizado. Isso foi pensado como controle de acesso, mas não impede sequências ../ depois do prefixo obrigatório.

Um atacante satisfaz a checagem de prefixo e em seguida usa ../../../../ para escapar do diretório esperado e alcançar qualquer arquivo legível pelo processo do servidor de aplicação, incluindo arquivos de configuração fora da árvore da aplicação web. O pesquisador que reportou a falha (Elar Lang) descreve a defesa como suficiente apenas para 'enganar scanners', não para bloquear o traversal real.

O impacto documentado é leitura de arquivos: listagem de diretórios e leitura de conteúdo, incluindo arquivos de configuração de banco de dados como js.jdbc.properties, que costuma conter credenciais de conexão com o banco de dados usado pelo JasperReports Server. A partir daí a cadeia de comprometimento pode se estender (acesso ao banco, pivoteamento), o que ajuda a justificar os impactos de integridade e disponibilidade também marcados como altos no vetor CVSS, mesmo que a PoC pública demonstre apenas leitura.

How it’s exploited

O vetor é uma requisição HTTP simples ao endpoint reportresource/reportresource/ com o parâmetro resource manipulado, sem necessidade de autenticação prévia — o próprio pesquisador testou contra o site de demonstração público da TIBCO e conseguiu listar diretórios e ler arquivos sem login. Isso contrasta com o PR:L (privilégio baixo) atribuído pela TIBCO no vetor CVSS oficial; a divergência entre o que o fornecedor declarou e o que foi demonstrado publicamente é relevante para quem está priorizando risco.

Complexidade de exploração é baixa: não há necessidade de engenharia social, condição de corrida ou configuração especial — apenas alcançar a URL do endpoint via rede e montar o parâmetro com o prefixo exigido seguido de sequências de traversal. O resultado prático demonstrado publicamente é leitura de arquivos arbitrários acessíveis ao processo do servidor de aplicação, o que já é suficiente para extrair credenciais de banco de dados e outros segredos de configuração.

A presença no catálogo KEV da CISA (adicionada em 2022-12-29, com prazo de correção definido para 2023-01-19) confirma exploração ativa observada, mesmo cerca de três anos após a divulgação pública, típico de instâncias legadas expostas na internet sem atualização.

Versions

Affected
TIBCO JasperReports Library: até e incluindo 6.3.4; 6.4.1; 6.4.2; 6.4.21; 7.1.0; 7.2.0. TIBCO JasperReports Library Community Edition: até e incluindo 6.7.0. TIBCO JasperReports Library for ActiveMatrix BPM: até e incluindo 6.4.21. TIBCO JasperReports Server: até e incluindo 6.3.4; 6.4.0; 6.4.1; 6.4.2; 6.4.3; 7.1.0. TIBCO JasperReports Server Community Edition: até e incluindo 6.4.3; 7.1.0. TIBCO JasperReports Server for ActiveMatrix BPM: até e incluindo 6.4.3. TIBCO Jaspersoft for AWS with Multi-Tenancy: até e incluindo 7. TIBCO Jaspersoft Reporting and Analytics for AWS: afetado (faixa de versão não detalhada na descrição oficial disponível).

How to protect

A TIBCO publicou um advisory oficial com a seção de solução ('Security Advisory: March 6, 2019 — TIBCO JasperReports Library — 2018-18809'); o caminho recomendado é aplicar a atualização/patch indicado ali para a linha de produto específica em uso. Não conseguimos confirmar, a partir do conteúdo lido, os números exatos de versão que corrigem a falha para cada um dos oito produtos afetados — consulte o advisory oficial da TIBCO diretamente antes de declarar qualquer ambiente corrigido.

Como o próprio caso mostra, o site de demonstração da própria TIBCO continuou vulnerável por mais de um mês depois da publicação do advisory (de 06/03/2019 até 26/04/2019), o que indica que aplicar apenas a atualização declarada não é garantia — vale testar o endpoint reportresource/reportresource/ com um payload de traversal contra o próprio ambiente após qualquer patch.

Como controle compensatório quando a atualização não é viável de imediato: restringir ou bloquear acesso externo ao endpoint /jasperserver-pro/reportresource/reportresource/ via proxy reverso ou WAF, e revisar/rotacionar credenciais expostas em arquivos de configuração (como js.jdbc.properties) caso haja qualquer suspeita de exposição prévia. Filtros baseados apenas em exigir o prefixo net/sf/jasperreports/ — que é exatamente a 'defesa' original que falhou — não funcionam como mitigação.

How to detect

Procurar em logs de acesso web (access logs do servidor de aplicação/proxy) por requisições ao caminho /reportresource/reportresource/ contendo o parâmetro resource com o valor exigido net/sf/jasperreports/ seguido de sequências de traversal (../, codificadas ou não, como %2e%2e%2f). Tentativas de leitura de arquivos de configuração específicos como js.jdbc.properties no valor do parâmetro são um indicador forte de exploração ativa, não apenas de varredura.

Não há assinatura única confiável além do padrão de URL, já que a 'defesa' de prefixo original não impede variações de encoding do traversal; ambientes sem logging detalhado de parâmetros de query podem não ter nenhum registro retroativo de exploração, o que é uma limitação real para investigação forense de incidentes antigos.

Researched and written with AI from the vendor advisory and public analysis, with the sources above. Always confirm the fixed version in the official advisory before acting.
The default server implementation of TIBCO Software Inc.'s TIBCO JasperReports Library, TIBCO JasperReports Library Community Edition, TIBCO JasperReports Library for ActiveMatrix BPM, TIBCO JasperReports Server, TIBCO JasperReports Server Community Edition, TIBCO JasperReports Server for ActiveMatrix BPM, TIBCO Jaspersoft for AWS with Multi-Tenancy, and TIBCO Jaspersoft Reporting and Analytics for AWS contains a directory-traversal vulnerability that may theoretically allow web server users to access contents of the host system. Affected releases are TIBCO Software Inc.'s TIBCO JasperReports Library: versions up to and including 6.3.4; 6.4.1; 6.4.2; 6.4.21; 7.1.0; 7.2.0, TIBCO JasperReports Library Community Edition: versions up to and including 6.7.0, TIBCO JasperReports Library for ActiveMatrix BPM: versions up to and including 6.4.21, TIBCO JasperReports Server: versions up to and including 6.3.4; 6.4.0; 6.4.1; 6.4.2; 6.4.3; 7.1.0, TIBCO JasperReports Server Community Edition: versions up to and including 6.4.3; 7.1.0, TIBCO JasperReports Server for ActiveMatrix BPM: versions up to and including 6.4.3, TIBCO Jaspersoft for AWS with Multi-Tenancy: versions up to and including 7.1.0, TIBCO Jaspersoft Reporting and Analytics for AWS: versions up to and including 7.1.0.
CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
⚠ Public resources, to assess the exposure of systems you control or are authorized to test. Test only with authorization.