Uwaga
- Data wydania:
11 sierpnia 2020 r. - Wersja:
.NET Framework 4.8
Podsumowanie
Ulepszenia zabezpieczeń
Luka w zabezpieczeniach związana z podniesieniem uprawnień występuje, gdy ASP.NET lub .NET Framework aplikacje sieci Web działające w usługach IIS nieprawidłowo zezwalają na dostęp do buforowanych plików. Osoba atakująca, której uda się wykorzystać tę lukę, może uzyskać dostęp do plików z ograniczeniami. Aby wykorzystać tę lukę, osoba atakująca musiałaby wysłać specjalnie spreparowane żądanie do serwera, którego dotyczy luka. Aktualizacja usuwa lukę, zmieniając sposób obsługi żądań przez ASP.NET i .NET Framework.
Więcej informacji o lukach w zabezpieczeniach można znaleźć na stronie Common Vulnerabilities and Exposures (CVE).
Ulepszenia w zakresie jakości i niezawodności
| CLR1 | - Zmiana w programie .NET Framework 4.8 spowodowała regresję niektórych scenariuszy EnterpriseServices, w których jednowątkowy obiekt mieszkania może być traktowany jako wielowątkowy apartament i prowadzić do awarii blokowania. Ta zmiana teraz poprawnie identyfikuje jednowątkowe obiekty mieszkalne jako takie i pozwala uniknąć tego błędu. - Rozwiązuje problem w zespołach z danymi profilu IBC, powodujący awarię procesów roboczych Ngen i powrót do pełnych obrazów natywnych. - Rozwiązuje rzadkie awarie, które mogą wystąpić podczas przerywania dostarczania wątku. |
|---|---|
| SQL | - SqlBulkCopy.WriteToServer może spowodować, że transakcje z tabelami SQL w pamięci zakończą się niepowodzeniem. Klientowi może zostać wyświetlony wyjątek z komunikatem "Limit czasu wykonywania wygasł. Przekroczono limit czasu, który upłynął przed zakończeniem operacji lub serwer nie odpowiada". Obiekt SqlBulkCopy.WriteToServer wysyłał token uwagi (komunikat anulowania) po wysłaniu danych do programu SQL Server, co powodowało, że serwer przerywał transakcję dla tabel w pamięci. |
| ASP.NET | - Używaj skrótów zgodnych ze standardem FIPS w ASP.Net danych telemetrycznych. - Rozwiązuje problem polegający na tym, że wartość "Nieokreślone" nie była dozwoloną wartością w konfiguracji atrybutu "cookieSameSite" w sekcjach uwierzytelniania formularzy i konfiguracji stanu sesji. |
| WPF2 | - Rozwiązuje problem polegający na tym, że sprawdzanie pisowni jest włączone w WPF TextBox lub RichTextBox, wyrazy takie jak "etc.", "e.g." są identyfikowane jako błędy pisowni. - Rozwiązuje problem polegający na tym, że niektóre aplikacje WPF obsługujące Per-Monitor, które działają w środowisku .NET 4.8, mogą czasami napotkać awarię w przypadku exceptionSystem.ComponentModel.Win32Exception. - Rozwiązuje problem polegający na tym, że element TextBlock zmienia układ (podejmuje różne decyzje dotyczące podziału wiersza) podczas renderowania i testu trafień w porównaniu z pomiarem. Objawy obejmują brakujący tekst i awarie FailFast podczas programowego przetwarzania tekstu. - Rozwiązuje problem z błędem wątku renderowania powodowanym przez HostVisual odłączający obiekt docelowy w niewłaściwym wątku. - Rozwiązuje problem z zawieszaniem się podczas przewijania widoku TreeView, którego drzewo jest niejednorodne, w tym sensie, że elementy podrzędne danego węzła zarządzają poddrzewami, których rozmiary są zupełnie inne. — Rozwiązuje problem związany z awarią, która może wystąpić podczas zamykania etykietki narzędzia, która jest ponownie zamykana przez kod użytkownika. - Gdy HwndHost opuszcza drzewo wizualne, tworzony jest ślad stosu. Jest to kosztowne i zwykle niepotrzebne. Logika jest teraz zmieniana, aby tworzyć śledzenie stosu tylko wtedy, gdy wystąpią nietypowe warunki. - Rozwiązuje przeciek pamięci w elemencie System.Speech.SpeechSynthesizer. - Polecenie Kopiuj DataGrid zgłasza wyjątek, jeśli schowek systemowy jest zablokowany przez inny proces. Spowoduje to awarię, ponieważ zwykle nie ma kodu aplikacji na stosie, który mógłby przechwycić wyjątek. Zachowanie pola tekstowego (i innych aplikacji, takich jak Notatnik, Word, przeglądarki) w tej sytuacji polega na cichej awarii — nic nie jest kopiowane do schowka, ale bez wyjątku. Aplikacja WPF może teraz wyrazić zgodę na to zachowanie, ustawiając appSettings<>add key="ShouldThrowOnDataGridCopyOrCutFailure" value="false"/></appSettings>w <swoim pliku app.config. - Rozwiązuje problem podczas konstruowania modelu wewnętrznego dla dokumentu FixedPage. Część tekstu była wyświetlana w niewłaściwej kolejności na potrzeby operacji edycji, takich jak zaznaczanie czy kopiowanie/wklejanie. |
| Program WCF3 | - W przypadku używania nazwy użytkownika systemu Windows UPN o formacie podobnym do username@dns.domain we właściwości nazwy użytkownika elementu NetworkCredential podczas korzystania z elementu NetTcpBinding lub NetNamedPipeBinding, funkcja WCF nieprawidłowo podzieli nazwę użytkownika i domenę dns.domain, umieszczając je we właściwościach UserName i Domain. Jest to nieprawidłowe w niektórych scenariuszach i może spowodować niepowodzenie uwierzytelniania. Ta poprawka usuwa modyfikację poświadczeń podczas korzystania z nazwy użytkownika UPN. Modyfikację można ponownie włączyć, ustawiając wartość AppSetting "wcf:enableLegacyUpnUsernameFix" na true. |
| Biblioteki sieciowe | - Rozwiązuje przeciek pamięci w obiekcie HttpListener. |
| Formularze wygranej | - Rozwiązuje problem ze stanem dostępności DataGridView IsReadOnly: Narrator i inne narzędzia ułatwień dostępu odpowiednio informują o stanie komórki tylko do odczytu. - Rozwiązuje problem z regresją w programie .NET Framework 4.8, gdy aplikacje używające typu komórek DataGridView ComboBox, które wybrały ułatwienia dostępu poziomu 3, mogą doświadczać sporadycznych awarii podczas edytowania komórek. - Rozwiązuje problem z kodem weryfikacji sygnatury czasowej RFC3161 ClickOnce. |
| Ulepszenia ułatwień dostępu w formularzach WinForms | W tej wersji dodajemy nowe ulepszenia ułatwień dostępu, na które może włączyć się Twoja aplikacja. Te zmiany są domyślnie wyłączone. Aplikacje, które zgadzają się na funkcje ułatwień dostępu wprowadzone w .NET 4.8 i starszych, mogą dodać następujący przełącznik zgodności do pliku konfiguracyjnego aplikacji:"Switch.UseLegacyAccessibilityFeatures.4=false"W szczególności, jeśli aplikacja jest przeznaczona dla platformy .NET 4.8, dodaj następującą sekcję AppContextSwitchOverrides: <?xml version="1.0" encoding+"utf-8" ?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Versionv4.8"/; </startup> <runtime> <!-- AppContextSwitchOverrides value attribute is in the form of 'key1=true\|false;key2=true\|false --> <AppContextSwitchOverrides value="Switch.UseLegacyAccessibilityFeatures.4=false" /> </runtime> </configuration>Jeśli aplikacja jest przeznaczona dla starszej wersji platformy i korzysta z wcześniej wydanych zestawów funkcji ułatwień dostępu, dodaj pojedynczy "Switch.UseLegacyAccessibilityFeatures.4=false" przełącznik do istniejącej AppContextSwitchOverrides sekcji:<?xml version="1.0" encoding+"utf-8" ?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Versionv4.7"/; </startup> <runtime> <!-- AppContextSwitchOverrides value attribute is in the form of 'key1=true\|false;key2=true\|false --> <AppContextSwitchOverrides value=Switch.UseLegacyAccessibilityFeatures=false\|Switch.UseLegacyAccessibilityFeatures.2=false\|Switch.UseLegacyAccessibilityFeatures.3=false\|Switch.UseLegacyAccessibilityFeatures.4=false"/> </runtime> </configuration>Ulepszenia ułatwień dostępu w formularzach WinForms zawarte w tej wersji to:- Rozwiązuje problem z informowaniem czytników zawartości ekranu o stanie rozwiniętych/zwijanych elementów i kategorii kontrolki PropertyGrid. - Zaktualizowano dostępne wzorce kontrolki siatki właściwości i jej wewnętrznych elementów. - Zaktualizowano nazwy wewnętrznych elementów kontrolki siatki właściwości z ułatwieniami dostępu, tak aby były poprawnie odczytywane przez czytnik zawartości ekranu. - Addressesbounding rectangle dostępne właściwości kontrolek PropertyGridView - Umożliwia czytnikom zawartości ekranu poprawne informowanie o stanie rozwiniętej/zwiniętej komórki pola kombi DataGridView. |
1 środowisko uruchomieniowe języka wspólnego (CLR)
2 Windows Presentation Foundation (WPF)
3 Windows Communication Foundation
Znane problemy z tą aktualizacją
Aplikacje Windows Presentation Framework (WPF), które używają dwóch lub więcej elementów HostVisual należących do wspólnego wątku, gdzie oba elementy HostVisual są proszone o odłączenie od wizualnego celu mniej więcej w tym samym czasie, poczta kończy się niepowodzeniem z następującym błędem:
Typ wyjątku: System.COMException
Komunikat: UCEERR_RENDERTHREADFAILURE (HRESULT 0x88980406)
Stos wywołań: górna ramka to System.Windows.Media.Composition.DUCE+Channel.SyncFlush()
Obejścia problemów
Tę problematyczną poprawkę można wyłączyć, ustawiając przełącznik AppContext "Switch.System.Windows.Media.HostVisual.DisconnectsOnWrongThread" na wartość true, przy użyciu jednej z opisanych tutaj metod. Powoduje to narażenie aplikacji na pierwotny błąd, dlatego należy usunąć przełącznik po opublikowaniu poprawki w ramach nadchodzącej aktualizacji.
Obejście 1
• Dodaj następujący wpis do pliku app.config, aby wyłączyć problematyczną poprawkę w jednej aplikacji.
<runtime>
<AppContextSwitchOverrides value="Switch.System.Windows.Media.HostVisual.DisconnectsOnWrongThread=true"/>
</czas pracy>
Należy pamiętać, że jeśli konfiguracja aplikacji zawiera już wpis dla <parametru AppContextSwitchOverrides>, należy dodać nowe ustawienie w ramach tego wpisu, oddzielone od innych przełączników średnikiem:
<AppContextSwitchOverrides value="Switch.SomeOtherSwitch=true; Switch.System.Windows.Media.HostVisual.DisconnectsOnWrongThread=true"/>
Obejście 2
• Zastosuj następujący podklucz rejestru, aby wyłączyć problematyczną poprawkę dla wszystkich aplikacji WPF na komputerze.
Ostrzeżenie
Niepoprawne zmodyfikowanie rejestru przy użyciu edytora rejestru lub innej metody może stać się przyczyną poważnych problemów. Ich usunięcie może wymagać ponownego zainstalowania systemu operacyjnego. Firma Microsoft nie może zagwarantować, że rozwiązanie tych problemów będzie możliwe. Zmodyfikuj rejestr na własne ryzyko.
Lokalizacja: HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AppContext\
Nazwa: Switch.System.Media.HostVisual.DisconnectsOnWrongThread
Typ: Ciąg
Wartość: true
Należy pamiętać, że w 64-bitowych systemach operacyjnych również trzeba zastosować podklucz rejestru o tej samej nazwie, typie i wartości w lokalizacji: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\.NETFramework\AppContext\
Rozwiązanie
Pracujemy nad rozwiązaniem i udostępnimy aktualizację w następnej wersji.
Jak uzyskać tę aktualizację
Zainstaluj tę aktualizację
| Kanał wersji | Dostępne | Następny krok |
|---|---|---|
| Usługa Windows Update i Microsoft Update | Tak | Brak. Ta aktualizacja zostanie automatycznie pobrana z witryny Windows Update i zainstalowana. |
| Wykaz usługi Microsoft Update | Tak | Aby uzyskać autonomiczny pakiet tej aktualizacji, przejdź do witryny internetowej Wykaz usługi Microsoft Update. |
| Program Windows Server Update Services (WSUS) | Tak | Ta aktualizacja zostanie automatycznie zsynchronizowana z programem WSUS w przypadku skonfigurowania produktów i klasyfikacji następująco: Product:Windows 10 Version 1803 Klasyfikacja: Aktualizacje zabezpieczeń |
Informacje o plikach
Aby poznać listę plików zawartych w tej aktualizacji, pobierz informacje o plikach dla aktualizacji skumulowanej.
Informacje o ochronie i zabezpieczeniach
- Chroń się w trybie online: Pomoc techniczna dotycząca zabezpieczenia Windows
- Dowiedz się, jak chronimy się przed cyberzagrożeniami: zabezpieczenia firmy Microsoft