Subramanian S

#7120de 53,638
38.3CVSS total
Vulnerabilidades · 5
Média
2
Alta
1
Crítica
2
PT-2026-36636
9.8
2026-05-02
Apache · Apache Opennlp · CVE-2026-42027
**Nome do Software Vulnerável e Versões Afetadas** Apache OpenNLP versões anteriores a 2.5.9 Apache OpenNLP versões anteriores a 3.0.0-M3 **Descrição** A função `ExtensionLoader.instantiateExtension(Class, String)` carrega uma classe por seu nome totalmente qualificado usando `Class.forName()` e invoca seu construtor sem argumentos, com o nome da classe originado da entrada `manifest.properties` de um arquivo de modelo. Como o `Class.forName()` executa o inicializador estático da classe alvo antes que a verificação de tipo `isAssignableFrom` ocorra, um invasor que forneça um arquivo de modelo manipulado pode disparar o inicializador estático de qualquer classe no classpath. Isso pode levar à instanciação arbitrária de classes se houver classes com efeitos colaterais em seus inicializadores estáticos (como consultas JNDI, E/S de rede externa ou acesso ao sistema de arquivos) presentes. Além disso, existe um vetor mais estreito onde um manifesto malicioso pode forçar a execução de construtores sem argumentos para subclasses legítimas de `BaseToolFactory` ou `ArtifactSerializer` que possuam construtores com efeitos colaterais. **Recomendações** Atualizar para a versão 2.5.9 para usuários da versão 2.x. Atualizar para a versão 3.0.0-M3 para usuários da versão 3.x. Certificar-se de que todos os arquivos de modelo sejam provenientes de origens confiáveis. Auditar o classpath em busca de classes com inicializadores estáticos ou construtores com efeitos colaterais, especificamente aqueles que realizam consultas JNDI, solicitações de rede ou operações de sistema de arquivos durante a inicialização.
PT-2026-36637
7.5
2026-05-02
Apache · Apache Opennlp · CVE-2026-42440
**Nome do Software Vulnerável e Versões Afetadas** Apache OpenNLP versões anteriores a 2.5.9 Apache OpenNLP versões anteriores a 3.0.0-M3 **Description** Existe uma Negação de Serviço por OutOfMemory (OOM) na classe `AbstractModelReader`. Os métodos `getOutcomes()`, `getOutcomePatterns()` e `getPredicates()` leem um campo de contagem de número inteiro assinado de 32 bits de um fluxo de modelo binário e o utilizam para a alocação de arrays sem validar se o valor é não negativo ou está dentro de limites razoáveis. Um invasor pode fornecer um arquivo de modelo .bin manipulado com um campo de contagem definido para um valor muito alto, como `Integer.MAX VALUE`, para esgotar a memória heap disponível e disparar um `OutOfMemoryError` durante a desserialização. Isso permite que um arquivo malicioso pequeno trave a Java Virtual Machine (JVM) de qualquer processo que carregue arquivos de modelo de origens não confiáveis ou semi-confiáveis. **Recommendations** Atualizar para a versão 2.5.9 para usuários da versão 2.x. Atualizar para a versão 3.0.0-M3 para usuários da versão 3.x. Tratar todos os arquivos de modelo .bin como entradas não confiáveis e evitar o carregamento de modelos fornecidos por usuários finais ou repositórios de terceiros sem verificações de integridade. Para implementações que exijam mais de 10.000.000 de entradas, defina a propriedade de sistema `OPENNLP MAX ENTRIES` para o número inteiro positivo desejado na inicialização da JVM.