Subramanian S

#5346de 55,135
51.2CVSS total
Vulnerabilidades · 7
Média
3
Alta
2
Crítica
2
PT-2026-64261
5.6
2026-07-24
Apache · Opennlp · CVE-2026-63317
**Nome do Software Vulnerável e Versões Afetadas** Apache OpenNLP versões anteriores a 2.5.10 Apache OpenNLP versões anteriores a 3.0.0-M5 **Description** Três caminhos de código permitem a instanciação arbitrária de classes ao carregar uma classe por seu nome totalmente qualificado via `Class.forName()` e invocar seu construtor sem argumentos sem validação prévia. Os caminhos afetados incluem `GeneratorFactory`, que processa o atributo de classe de elementos geradores em descritores de geradores de recursos XML incorporados em arquivos de modelo; `StreamFactoryRegistry.getFactory(Class, String)`, que pode interpretar um nome de formato não registrado como o nome de uma classe para um `ObjectStreamFactory`; e `StringInterners`, que utiliza a propriedade de sistema `opennlp.interner.class`. A exploração requer que uma classe com efeitos colaterais em seu inicializador estático ou construtor sem argumentos esteja presente no classpath. **Recommendations** Atualize para a versão 2.5.10 ou posterior. Atualize para a versão 3.0.0-M5 ou posterior. Para implantações que exijam fábricas ou interners fora do prefixo `opennlp.*`, utilize `ExtensionLoader.registerAllowedPackage(String)` ou defina a propriedade de sistema `OPENNLP EXT ALLOWED PACKAGES` como uma lista separada por vírgulas de prefixos de pacotes permitidos. Garanta que todos os arquivos de modelo e nomes de formato sejam originários de fontes confiáveis. Audite o classpath em busca de classes com inicializadores estáticos ou construtores que gerem efeitos colaterais.
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.
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.