Skip to content

Security: FORMAS/PortNOIE

Security

SECURITY.md

Segurança

Reporte de vulnerabilidades

Não publique credenciais ou dados privados em uma issue. Use o canal privado de contato dos mantenedores até que um endereço de segurança seja definido.

Backend moderno

O backend moderno verifica os hashes oficiais ancorados em código no pacote e o SHA-256 do sidecar antes de construir a rede. O manifesto presente em um model_dir customizado nunca substitui esses hashes oficiais. model.th é aberto por torch.load(..., weights_only=True), sem desserialização arbitrária de objetos. Esse caminho não lê model_params.pkl, não importa AllenNLP/Flair e não acessa os endpoints históricos dos modelos Flair.

O extra moderno exige torch>=2.10, e o runtime também bloqueia versões anteriores devido a GHSA-63cw-57p8-fm3p. weights_only=True permanece obrigatório mesmo nas versões corrigidas.

Não desative a integridade para artefatos recebidos de terceiros. A verificação de hash identifica alteração, mas não transforma um arquivo não confiável em um artefato seguro.

Um artefato diferente dos hashes oficiais exige trust_custom_model=True. Nesse modo, o manifesto customizado detecta mudanças internas, mas não comprova quem publicou o arquivo. Pular a verificação em diretório customizado também exige esse opt-in explícito.

O wheel e o sdist não incluem pesos. Na primeira extração, o checkpoint é baixado de bratao/PortNOIE no Hugging Face pela revisão fixada na biblioteca. O downloader solicita apenas os oito arquivos oficiais e seu manifesto, nunca código remoto; os hashes de confiança permanecem no pacote, não no manifesto remoto. Snapshots do cache podem conter symlinks para blobs: o conteúdo apontado também é verificado. Importação, construção de PortNOIE() e doctor não baixam arquivos.

Para texto bruto, a primeira extração também pode instalar pt_core_news_lg==3.8.0 via pip ou uv no Python em execução. A URL oficial é fixada com SHA-256 2561c9a72a938d37141e9694e1a36d25061a44ce7e4f3bad2d3fa3bb836191af, verificado pelo instalador. Modelos spaCy customizados não herdam essa garantia e usam o downloader de compatibilidade do spaCy. Ambientes offline ou com mudanças controladas devem executar portnoie download, pré-instalar a wheel spaCy fixada e usar local_files_only=True ou auto_download=False, bloqueando ambos os downloads automáticos.

Backend legado

A pilha legado (AllenNLP 2.10, Torch 1.12 e dependências associadas) está fora de suporte e inclui versões com vulnerabilidades conhecidas. Ela existe somente para reprodução científica: use um ambiente descartável, isolado e offline, nunca em produção e nunca com dados ou artefatos não confiáveis.

model_params.pkl usa pickle do Python, formato capaz de executar código durante a desserialização. Somente o backend legacy pode abri-lo e apenas a cópia oficial, checksum-verificada, deve ser usada.

Pular a integridade antes desse pickle exige trust_custom_model=True, mesmo quando o caminho legado foi selecionado explicitamente.

Os endereços Flair preservados pelo legado são históricos e usam HTTP. Para comparações científicas, mantenha cópias verificadas de forward-1024.pt e backward-1024.pt em armazenamento confiável e informe caminhos locais somente leitura. O download histórico deve permanecer desativado fora de reprodução controlada.

O repositório não deve receber tokens de Hugging Face/GitHub, arquivos .env, caches de navegador ou conjuntos de dados sem licença compatível.

There aren't any published security advisories