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,GeneratePrevieweGetDocumentInfo. - 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, URIsdata:e imagens incorporadas são sempre carregadas. - Anotações de imagem não são afetadas.
ImageAnnotation.ImagePathainda é 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.0era detectada como um arquivo MHT, e ao abri‑la a partir de um stream lançavaFileTypeNotSupportedException. 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.Rotationfuncionava 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:
LoadOptions.SkipExternalResourcesLoadOptions.WhitelistedResourcesLoadOptions.ExternalResourceHandlerExternalResourceHandlerclassExternalResourceLoadingArgsclass
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 .