We’re pleased to announce GroupDocs.Annotation for .NET 26.10, released in October 2026. This is a security-focused release: documents no longer pull in remote images, style sheets or linked files on their own, and new LoadOptions members let you decide exactly what may be loaded. The release also upgrades the underlying document engines, updates a vulnerable dependency and fixes several issues.

O que há de novo nesta versão

Chave Categoria Resumo
ANNOTATIONNET-2663 ⚠️ Melhoria Recursos externos não são mais carregados por padrão (novos controles LoadOptions)
ANNOTATIONNET-2687 ✨ Melhoria Atualizar os mecanismos de documentos subjacentes
ANNOTATIONNET-2672 🔒 Segurança Atualizar System.Security.Cryptography.Pkcs para 8.0.2 (CVE-2026-84008 / CVE-2026-70162)
ANNOTATIONNET-2102 🔧 Correção Corrigir FileTypeNotSupportedException ao extrair anotações de documentos EML
ANNOTATIONNET-1903 🔧 Correção Corrigir documentos anotados por versões antigas que falhavam ao abrir no .NET 8
ANNOTATIONNET-2689 🔧 Correção Corrigir perda de rotação de página PDF em 90 graus ao salvar

Recursos externos não são mais carregados por padrão

Um documento pode referenciar recursos externos a ele: um <img src="https://..."> em uma página HTML ou no corpo de um e‑mail, uma imagem vinculada em um documento Word, uma folha de estilo remota ou um link externo para uma planilha. Até agora, abrir, pré‑visualizar ou salvar tal documento fazia o GroupDocs.Annotation solicitar esses recursos da rede ou de um compartilhamento de arquivos.

Em um servidor que processa documentos não confiáveis, isso representa um risco de falsificação de solicitação do lado do servidor (SSRF): um documento poderia fazer o servidor chamar endereços internos, e um caminho UNC poderia vazar as credenciais do Windows do processo.

A partir da versão 26.10, recursos externos são ignorados por padrão para documentos de processamento de texto, HTML, e‑mail, apresentação e planilha:

  • Sem solicitações. Nenhuma solicitação de rede ou compartilhamento de arquivos é feita para recursos referenciados pelo documento, em qualquer operação: Get, Add, Save, GeneratePreview e GetDocumentInfo.
  • Marcadores de posição vazios. Uma imagem ignorada é renderizada como um marcador de posição transparente, e o link original é mantido no documento salvo.
  • Conteúdo incorporado ainda funciona. Partes cid: de um e‑mail, URIs data: e imagens incorporadas são sempre carregadas.
  • Anotações de imagem não são afetadas. ImageAnnotation.ImagePath ainda é carregado a partir de uma URL.

Esta é uma mudança de comportamento. Se seus documentos dependem de imagens ou folhas de estilo remotas sendo renderizadas, permita-as explicitamente com os novos membros LoadOptions:

Membro Padrão Descrição
SkipExternalResources true Ignora recursos externos. Defina como false para restaurar o comportamento anterior à 26.10.
WhitelistedResources empty Nomes de host ou prefixos de URI absolutos que são carregados mesmo quando os recursos são ignorados.
ExternalResourceHandler null Chamado para cada recurso externo; pode permiti‑lo, ignorá‑lo ou fornecer seu conteúdo.

Permita apenas hosts confiáveis (recomendado):

LoadOptions loadOptions = new LoadOptions
{
    // SkipExternalResources stays true (the default)
    WhitelistedResources = { "cdn.example.com", "https://intranet.example.com/images/" }
};

using (Annotator annotator = new Annotator("input.html", loadOptions))
{
    annotator.Save("output.html"); // only images from the two whitelisted locations are loaded
}

Inspecione, permita ou substitua cada recurso com um manipulador:

class AuditingResourceHandler : ExternalResourceHandler
{
    public override void OnLoading(ExternalResourceLoadingArgs args)
    {
        Console.WriteLine($"{args.Uri}: {(args.Skipped ? "skipped" : "loaded")}");

        // serve a local copy instead of going to the network
        if (args.Uri == "https://example.com/logo.png")
            args.Data = File.ReadAllBytes("logo.png");
    }
}

Mecanismos de documentos atualizados

Os mecanismos integrados de processamento de texto, planilha, apresentação, PDF, diagrama, e‑mail, imagens, CAD e renderização gráfica foram atualizados para suas versões de outubro de 2026. Documentos regenerados e pré‑visualizações de página podem diferir ligeiramente ao nível de byte ou pixel, mantendo a equivalência visual.

Para projetos .NET 6 e .NET 8, os pacotes de tempo de execução agora dependem do SkiaSharp 4.152.1. Se o seu projeto referencia diretamente o SkiaSharp 3.x, atualize para 4.x.

Atualização de segurança

Os mecanismos de documentos incluem System.Security.Cryptography.Pkcs 8.0.0 ou 8.0.1, que são afetados pelos CVE-2026-84008 e CVE-2026-70162. O GroupDocs.Annotation agora referencia a versão corrigida 8.0.2 em todos os frameworks de destino. Nenhuma alteração de código é necessária.

Correções

  • EML a partir de um stream. Uma mensagem EML que começa com MIME-Version: 1.0 era detectada como um arquivo MHT, e ao abri‑la a partir de um stream lançava FileTypeNotSupportedException. Essas mensagens agora são abertas da mesma forma a partir de um stream e de um arquivo, e arquivos MHT agora são suportados como documentos de e‑mail.
  • Documentos antigos no .NET 8. Documentos anotados por versões anteriores à 26.6 falhavam ao abrir no .NET 8 com NotSupportedException. Agora eles abrem: as anotações legadas são ignoradas com um aviso no log, e novas anotações podem ser adicionadas e salvas. Um problema relacionado a apresentações regravadas (PPTX) cujas anotações não podiam ser lidas de volta foi corrigido em todas as plataformas.
  • Rotação de PDF em 90 graus. Rotacionar uma página PDF com Annotator.Rotation funcionava para 180 e 270 graus, mas uma rotação de 90 graus era perdida ao salvar. Agora ela é mantida para qualquer ângulo:
using (Annotator annotator = new Annotator("input.pdf"))
{
    annotator.ProcessPages = 1;                 // the page to rotate
    annotator.Rotation = RotationDocument.on90; // previously ignored
    annotator.Save("output.pdf");
}

Alterações na API pública

A versão adiciona os seguintes membros:

Nenhum membro público foi removido ou alterado.

Como obter a atualização

NuGet

Instale ou atualize para GroupDocs.Annotation 26.10.0 usando NuGet. O pacote resolve automaticamente o pacote de tempo de execução para o seu framework de destino (.NET Framework 4.6.2, .NET 6 ou .NET 8):

dotnet add package GroupDocs.Annotation --version 26.10.0

Download direto

Faça o download da versão a partir da página GroupDocs.Annotation for .NET 26.10 .

Recursos