Instantiação da Classe Arbitraria através do Manifesto do Modelo no Apache Versão do Loader de Extensão OpenNLP afetada: antes 1.9.5, antes 2.5.9, antes 3.0.0 - M 3 Descrição: O método ExtensionLoader. instantiateExtension(Class, String) carrega uma classe pelo seu nome totalmente qualificado via Class. forName() e invoca o seu construtor sem arg, com o nome da classe proveniente da entrada manifest.properties de um arquivo de modelo. A verificação isAssegnable From existente rejeita corretamente as classes que não são subtipos da interface de extensão esperada (BaseToolFactory for fabrik=, ArtifactSerializer for serializer- class-*), mas a verificação se dá após Class.forName() já carregou e inicializou a classe nomeada. Class. forName() com semântica de inicialização padrão executa o inicializador estático da classe- alvo antes de retornar, de modo que um atacante que pode fornecer um arquivo de modelo criado pode fazer com que o inicializador estático de qualquer classe no classpath corra durante o carregamento do modelo, independentemente de essa classe passar a verificação de tipo subsequente. A exploração requer que uma classe com efeitos colaterais úteis para o atacante no seu inicializador estático (por exemplo, busca pelo JNDI, I/ O da rede ou acesso ao sistema de arquivos) esteja presente no classpath, por isso não é uma execução de código remoto; no entanto, a superfície de ataque cresce à medida que a distribuição de modelos de terceiros se torna mais comum (repositórios de modelos comunitários, compartilhamento de estilo Hugging Face), onde os usuários carregam rotineiramente arquivos de modelos de origens que eles não controlam. Um vetor secundário, mais estreito afeta as implantações que enviam subclasses legitimadas do BaseToolFactory ou ArtifactSerializante com construtores sem org de efeito secundário: um manifesto malicioso pode nomear tal classe e forçar seu construtor a executar durante a carga do modelo. Mitigação: * 2 Os usuários do.x devem atualizar para 2.5.9. * 3 Os usuários do.x devem atualizar para 3.0.0 - M 3. Nota: A correção introduz uma lista de allow- list de prefixo de pacotes que é consultada antes de Class.forName() ser invocada, de modo que o inicializador estático de uma classe desautorizada nunca é executado. As classes sob o prefixo opennlp. permanecem permitidas por padrão. As implantações que os modelos de carga referem fábricas ou serializadores fora do opennlp.* devem optar por esses pacotes, tanto programáticamente como através do ExtensionLoader.registerPermitidoPacote(String) antes da primeira carga do modelo, ou configurando a propriedade do sistema OPENNLP_ EXT_ALLOWED_PACKAGES para uma lista separada por vírgulas de prefixos de pacotes permitidos. Os usuários que não podem atualizar imediatamente devem garantir que todos os arquivos de modelos são originados de origens confiáveis e devem auditar o seu classpath para classes com iniciadores estáticos ou construtores de efeito secundário, especialmente os que executam buscas JNDI, solicitações de rede ou operações de sistema de arquivos durante a inicialização da classe.
O registro de base de dados de vulnerabilidade nacional CVE- 2026 - 42027 foi publicado em 2026 - 05 - 04 T 17: 16: 24.123 Z e última modificação em 2026 - 07 - 15 T 02: 21: 21.493 Z. O seu estado registrado é modificado.
métricas de vulnerabilidade gravadas: CVSS 3.1, pontuação de base 9.8, gravidade CRÍTICA, vetor CVSS: 3.1 /AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H, pontuação de exploração 3.9, pontuação de impacto 5.9; CVSS.
Classificações de fraqueza associadas: CWE- 470, CWE- 502.
Produtos ou plataformas nomeados nos dados de aplicabilidade incluem: apache opennlp.
O registro NVD inclui referências de suporte documentando a vulnerabilidade, tecnologia afetada ou informações de remediação.