Wir freuen uns, GroupDocs.Annotation für .NET 26.10 ankündigen zu können, veröffentlicht im Oktober 2026. Dies ist ein sicherheitsorientiertes Release: Dokumente laden nicht mehr eigenständig entfernte Bilder, Stylesheets oder verknüpfte Dateien, und neue LoadOptions‑Member ermöglichen es Ihnen, genau zu bestimmen, was geladen werden darf. Das Release aktualisiert außerdem die zugrunde liegenden Dokument‑Engines, aktualisiert eine verwundbare Abhängigkeit und behebt mehrere Probleme.

Was ist neu in diesem Release

Schlüssel Kategorie Zusammenfassung
ANNOTATIONNET-2663 ⚠️ Verbesserung Externe Ressourcen werden standardmäßig nicht mehr geladen (neue LoadOptions‑Steuerungen)
ANNOTATIONNET-2687 ✨ Verbesserung Aktualisierung der zugrunde liegenden Dokument‑Engines
ANNOTATIONNET-2672 🔒 Sicherheit Aktualisierung von System.Security.Cryptography.Pkcs auf 8.0.2 (CVE-2026-84008 / CVE-2026-70162)
ANNOTATIONNET-2102 🔧 Fehlerbehebung Behebung von FileTypeNotSupportedException beim Extrahieren von Anmerkungen aus EML-Dokumenten
ANNOTATIONNET-1903 🔧 Fehlerbehebung Behebung, dass mit älteren Versionen annotierte Dokumente unter .NET 8 nicht geöffnet werden konnten
ANNOTATIONNET-2689 🔧 Fehlerbehebung Behebung, dass die PDF‑Seitenrotation um 90 Grad beim Speichern verloren ging

Externe Ressourcen werden standardmäßig nicht mehr geladen

Ein Dokument kann Ressourcen außerhalb seiner selbst referenzieren: ein <img src="https://..."> in einer HTML‑Seite oder einer E‑Mail‑Nachricht, ein verknüpftes Bild in einem Word‑Dokument, ein entferntes Stylesheet oder ein externer Arbeitsmappen‑Link. Bis jetzt führte das Öffnen, Vorschauen oder Speichern eines solchen Dokuments dazu, dass GroupDocs.Annotation diese Ressourcen aus dem Netzwerk oder einem Dateifreigabe‑Ort anforderte.

Auf einem Server, der nicht vertrauenswürdige Dokumente verarbeitet, stellt dies ein Server‑Side‑Request‑Forgery (SSRF)‑Risiko dar: Ein Dokument könnte den Server dazu bringen, interne Adressen aufzurufen, und ein UNC‑Pfad könnte die Windows‑Anmeldeinformationen des Prozesses preisgeben.

Ab Version 26.10 werden externe Ressourcen standardmäßig übersprungen für Word‑Verarbeitung, HTML, E‑Mail, Präsentations‑ und Tabellenkalkulations‑Dokumente:

  • Keine Anfragen. Es wird keine Netzwerk‑ oder Dateifreigabe‑Anfrage für Ressourcen gestellt, die im Dokument referenziert werden, bei irgendeiner Operation: Get, Add, Save, GeneratePreview und GetDocumentInfo.
  • Leere Platzhalter. Ein übersprungenes Bild wird als transparenter Platzhalter gerendert, und der ursprüngliche Link bleibt im gespeicherten Dokument erhalten.
  • Eingebettete Inhalte funktionieren weiterhin. cid:‑Teile einer E‑Mail, data:‑URIs und eingebettete Bilder werden immer geladen.
  • Bildanmerkungen sind nicht betroffen. ImageAnnotation.ImagePath wird weiterhin von einer URL geladen.

Dies ist eine Verhaltensänderung. Wenn Ihre Dokumente auf das Rendern von entfernten Bildern oder Stylesheets angewiesen sind, erlauben Sie sie explizit mit den neuen LoadOptions‑Membern:

Member Standard Beschreibung
SkipExternalResources true Externe Ressourcen überspringen. Setzen Sie es auf false, um das Verhalten vor 26.10 wiederherzustellen.
WhitelistedResources leer Hostnamen oder absolute URI‑Präfixe, die selbst dann geladen werden, wenn Ressourcen übersprungen werden.
ExternalResourceHandler null Wird für jede externe Ressource aufgerufen; sie kann die Ressource zulassen, überspringen oder deren Inhalt bereitstellen.

Nur vertrauenswürdige Hosts zulassen (empfohlen):

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
}

Jede Ressource mit einem Handler inspizieren, zulassen oder ersetzen:

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

Aktualisierte Dokument‑Engines

Die mitgelieferten Word‑Verarbeitungs‑, Tabellen‑, Präsentations‑, PDF‑, Diagramm‑, E‑Mail‑, Bild‑, CAD‑ und Grafik‑Rendering‑Engines wurden auf ihre Oktober‑2026‑Versionen aktualisiert. Neu erzeugte Dokumente und Seitenvorschauen können sich auf Byte‑ oder Pixelebene leicht unterscheiden, bleiben jedoch visuell äquivalent.

Für .NET 6‑ und .NET 8‑Projekte hängen die Laufzeit‑Pakete jetzt von SkiaSharp 4.152.1 ab. Wenn Ihr Projekt SkiaSharp 3.x direkt referenziert, aktualisieren Sie es auf 4.x.

Sicherheitsupdate

Die Dokument‑Engines bringen System.Security.Cryptography.Pkcs 8.0.0 oder 8.0.1 mit, die von CVE‑2026‑84008 und CVE‑2026‑70162 betroffen sind. GroupDocs.Annotation referenziert nun das gepatchte 8.0.2 für jedes Ziel‑Framework. Keine Code‑Änderungen sind erforderlich.

Fehlerbehebungen

  • EML aus einem Stream. Eine EML‑Nachricht, die mit MIME-Version: 1.0 beginnt, wurde fälschlich als MHT‑Archiv erkannt, und das Öffnen aus einem Stream löste FileTypeNotSupportedException aus. Solche Nachrichten öffnen jetzt sowohl aus einem Stream als auch aus einer Datei, und MHT‑Dateien werden jetzt als E‑Mail‑Dokumente unterstützt.
  • Ältere Dokumente unter .NET 8. Dokumente, die von Versionen vor 26.6 annotiert wurden, konnten unter .NET 8 nicht geöffnet werden und lösten NotSupportedException aus. Sie öffnen jetzt: Die Legacy‑Anmerkungen werden mit einer Protokollwarnung übersprungen, und neue Anmerkungen können hinzugefügt und gespeichert werden. Ein verwandtes Problem mit erneut gespeicherten Präsentationen (PPTX), deren Anmerkungen nicht wieder ausgelesen werden konnten, ist in allen Frameworks behoben.
  • PDF‑Rotation um 90 Grad. Das Drehen einer PDF‑Seite mit Annotator.Rotation funktionierte für 180 und 270 Grad, aber eine 90‑Grad‑Rotation ging beim Speichern verloren. Sie wird jetzt für jeden Winkel beibehalten:
using (Annotator annotator = new Annotator("input.pdf"))
{
    annotator.ProcessPages = 1;                 // the page to rotate
    annotator.Rotation = RotationDocument.on90; // previously ignored
    annotator.Save("output.pdf");
}

Änderungen an der öffentlichen API

Das Release fügt die folgenden Member hinzu:

Es wurden keine öffentlichen Member entfernt oder geändert.

So erhalten Sie das Update

NuGet

Installieren oder aktualisieren Sie auf GroupDocs.Annotation 26.10.0 mittels NuGet. Das Paket löst automatisch das Laufzeit‑Paket für Ihr Ziel‑Framework auf (.NET Framework 4.6.2, .NET 6 oder .NET 8):

dotnet add package GroupDocs.Annotation --version 26.10.0

Direkter Download

Laden Sie das Release von der Seite GroupDocs.Annotation for .NET 26.10 herunter.

Ressourcen