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.

Co nowego w tej wersji

Klucz Kategoria Podsumowanie
ANNOTATIONNET-2663 ⚠️ Ulepszenie Zasoby zewnętrzne nie są już ładowane domyślnie (nowe kontrolki LoadOptions)
ANNOTATIONNET-2687 ✨ Ulepszenie Zaktualizuj podstawowe silniki dokumentów
ANNOTATIONNET-2672 🔒 Bezpieczeństwo Zaktualizuj System.Security.Cryptography.Pkcs do 8.0.2 (CVE-2026-84008 / CVE-2026-70162)
ANNOTATIONNET-2102 🔧 Poprawka Napraw FileTypeNotSupportedException przy wyodrębnianiu adnotacji z dokumentów EML
ANNOTATIONNET-1903 🔧 Poprawka Napraw dokumenty adnotowane w starszych wersjach, które nie otwierały się w .NET 8
ANNOTATIONNET-2689 🔧 Poprawka Napraw utratę obrotu strony PDF o 90 stopni przy zapisie

Zasoby zewnętrzne nie są już ładowane domyślnie

Dokument może odwoływać się do zasobów spoza siebie: <img src="https://..."> w stronie HTML lub treści e‑maila, połączony obraz w dokumencie Word, zdalny arkusz stylów lub zewnętrzny odnośnik do skoroszytu. Do tej pory otwieranie, podgląd lub zapisywanie takiego dokumentu powodowało, że GroupDocs.Annotation żądał tych zasobów z sieci lub udziału plikowego.

Na serwerze przetwarzającym niezaufane dokumenty stanowi to ryzyko server‑side request forgery (SSRF): dokument mógłby spowodować wywołanie wewnętrznych adresów, a ścieżka UNC mogłaby wycieknąć poświadczenia Windows procesu.

Od wersji 26.10 zasoby zewnętrzne są pomijane domyślnie dla dokumentów Word, HTML, e‑mail, prezentacji i arkuszy kalkulacyjnych:

  • Brak żądań. Żadne żądanie sieciowe ani do udziału plikowego nie jest wykonywane dla zasobów odwoływanych w dokumencie, w żadnej operacji: Get, Add, Save, GeneratePreview i GetDocumentInfo.
  • Puste symbole zastępcze. Pomięty obraz jest renderowany jako przezroczysty placeholder, a oryginalny odnośnik pozostaje w zapisanym dokumencie.
  • Zawartość osadzona nadal działa. Części cid: w e‑mailu, URI data: oraz osadzone obrazy są zawsze ładowane.
  • Adnotacje obrazów nie są dotknięte. ImageAnnotation.ImagePath nadal jest ładowany z URL.

To zmiana zachowania. Jeśli Twoje dokumenty polegają na zdalnych obrazach lub arkuszach stylów, zezwól na nie explicite przy użyciu nowych członków LoadOptions:

Członek Domyślnie Opis
SkipExternalResources true Pomija zasoby zewnętrzne. Ustaw na false, aby przywrócić zachowanie sprzed 26.10.
WhitelistedResources empty Nazwy hostów lub absolutne prefiksy URI, które są ładowane nawet przy pomijaniu zasobów.
ExternalResourceHandler null Wywoływany dla każdego zasobu zewnętrznego; może go zezwolić, pominąć lub dostarczyć jego zawartość.

Zezwalaj tylko na zaufane hosty (zalecane):

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
}

Sprawdź, zezwól lub zamień każdy zasób przy użyciu obsługi:

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");
    }
}

Zaktualizowane silniki dokumentów

Wbudowane silniki przetwarzania tekstu, arkuszy, prezentacji, PDF, diagramów, e‑mail, obrazów, CAD i renderowania grafiki zostały zaktualizowane do wersji październik 2026. Ponowne generowanie dokumentów i podglądów stron może nieznacznie różnić się na poziomie bajtów lub pikseli, pozostając wizualnie równoważnym.

Dla projektów .NET 6 i .NET 8 pakiety uruchomieniowe teraz zależą od SkiaSharp 4.152.1. Jeśli Twój projekt odwołuje się bezpośrednio do SkiaSharp 3.x, zaktualizuj go do 4.x.

Aktualizacja zabezpieczeń

Silniki dokumentów wprowadzają System.Security.Cryptography.Pkcs w wersji 8.0.0 lub 8.0.1, które są podatne na CVE-2026-84008 i CVE-2026-70162. GroupDocs.Annotation teraz odwołuje się do poprawionej 8.0.2 na wszystkich docelowych platformach. Nie wymaga to zmian w kodzie.

Poprawki

  • EML ze strumienia. Wiadomość EML zaczynająca się od MIME-Version: 1.0 była wykrywana jako archiwum MHT, a otwarcie jej ze strumienia powodowało FileTypeNotSupportedException. Takie wiadomości otwierają się teraz tak samo ze strumienia, jak i z pliku, a pliki MHT są teraz obsługiwane jako dokumenty e‑mail.
  • Starsze dokumenty w .NET 8. Dokumenty adnotowane w wersjach przed 26.6 nie otwierały się w .NET 8 z powodu NotSupportedException. Teraz otwierają się: starsze adnotacje są pomijane z ostrzeżeniem w logu, a nowe adnotacje można dodawać i zapisywać. Powiązany problem z ponownie zapisywanymi prezentacjami (PPTX), których adnotacje nie mogły być odczytane, został naprawiony we wszystkich frameworkach.
  • Obrót PDF o 90 stopni. Obracanie strony PDF przy użyciu Annotator.Rotation działało dla 180 i 270 stopni, ale obrót o 90 stopni był tracony przy zapisie. Teraz jest zachowywany dla każdego kąta:
using (Annotator annotator = new Annotator("input.pdf"))
{
    annotator.ProcessPages = 1;                 // the page to rotate
    annotator.Rotation = RotationDocument.on90; // previously ignored
    annotator.Save("output.pdf");
}

Zmiany w publicznym API

W wydaniu dodano następujące członki:

Nie usunięto ani nie zmieniono żadnych publicznych członków.

Jak uzyskać aktualizację

NuGet

Zainstaluj lub zaktualizuj do GroupDocs.Annotation 26.10.0 przy użyciu NuGet. Pakiet automatycznie rozwiązuje pakiet uruchomieniowy dla Twojej docelowej platformy (.NET Framework 4.6.2, .NET 6 lub .NET 8):

dotnet add package GroupDocs.Annotation --version 26.10.0

Bezpośrednie pobranie

Pobierz wydanie ze strony GroupDocs.Annotation for .NET 26.10.

Zasoby