Strona główna / Blog / .NET: PDB jako wrogi input

Blog · case study

.NET / Visual Studio CVE-2026-71328: PDB jako nieufny artefakt wykonawczy

Microsoft opublikował 8 września 2026 advisory GHSA-63gh-g2x5-x69v dla CVE-2026-71328 w Microsoft.DiaSymReader.Native: out-of-bounds write podczas przetwarzania plików MSFZ PDB, CVSS 8.8. Dla VE ważne jest, że ryzykownym wejściem nie jest dokument użytkownika ani request HTTP, lecz artefakt debug/symbol — w wielu pipeline'ach automatycznie pobierany, indeksowany, analizowany lub otwierany przez narzędzia developerskie.

CVE-2026-71328 (CVSS 8.8): out-of-bounds write przy MSFZ PDB → crash lub RCE w kontekście procesu przetwarzającego plik.
Fix: Microsoft.DiaSymReader.Native ≥ 18.9.0-beta1.26405.2 (przez aktualne .NET/VS albo package reference) + restart procesów; osobno sprawdź self-contained.

Attack path

attacker dostarcza/wplywa na MSFZ PDB -> PDB trafia do srodowiska z Microsoft.DiaSymReader.Native -> native parser przetwarza przygotowana strukture -> out-of-bounds write -> crash lub RCE w procesie przetwarzajacym plik

Wektor CVSS wymaga user interaction, ale w automatyzowanych pipeline'ach to pojęcie bywa mylące: jeśli system automatycznie analizuje artefakty, praktyczną interakcję zastępuje proces CI/debug indexing.

Gdzie szukać exposure

Mapuj nie tylko obecność NuGet package, ale execution path: Visual Studio, .NET SDK/runtime na Windows, narzędzia symbol/debug analysis, build agents, crash dump pipelines, systemy pobierające PDB z zewnętrznych źródeł, security/reverse-engineering tooling. To typowy przypadek, gdzie SCA daje package affectedness, ale nie daje reachability. Model VE: UNTRUSTED_ARTIFACT → PARSER_REACHABLE → NATIVE_MEMORY_CORRUPTION → PROCESS_CONTEXT_IMPACT — lista paczek to jeden fragment oceny.

Severity, exploitability, asset context

Severity 8.8. Exploitability wymaga przetworzenia przygotowanego MSFZ PDB przez podatny komponent. Advisory nie potwierdza exploitation in the wild. Asset context: build agents i stacje developerskie o wysokich uprawnieniach — z dostępem do signing secrets, repozytoriów i produkcyjnych credentiali — mają wyższy blast radius. PDB bywa traktowany jako pomocniczy artifact, a z perspektywy bezpieczeństwa każdy format trafiający do natywnego parsera to potentially hostile input, także z symbol servers i third-party.

Remediation verification

Po aktualizacji potwierdź: wersję package/runtime/Visual Studio, restart procesu/aplikacji, aktualizację build agent images, brak starych self-contained aplikacji z podatną kopią biblioteki, aktualizację cache/artefaktów deploymentowych. Dla self-contained aktualizacja systemowego .NET może nie wystarczyć, jeśli biblioteka jest zbundlowana — to trzeba sprawdzić osobno. Package on disk nie musi oznaczać fixed library loaded in process.

Powiązane na blogu

Źródła

  • Microsoft/GitHub — GHSA-63gh-g2x5-x69v — github.com

Nota redakcyjna: stan informacji 10 września 2026. CVE-2026-71328 (Microsoft.DiaSymReader.Native, CVSS 8.8): out-of-bounds write przy MSFZ PDB. Brak potwierdzenia active exploitation. Artykuł traktuje PDB jako nieufny artefakt i podkreśla mapowanie parser reachability oraz przypadek self-contained.

Zapamiętaj jedno

Nie wszystkie supply-chain podatności dotyczą zależności wykonywanej wprost przez aplikację. Czasem wejściem jest artefakt pomocniczy, a krytyczna granica leży w parserze narzędzia developerskiego. Mapuj formaty danych i parser reachability tak samo, jak endpointy sieciowe.