11 สิงหาคม 2020-การอัปเดตสะสม KB4569746 สำหรับ .NET Framework 4.8 สำหรับ Windows 10 เวอร์ชัน 1607 และ Windows Server 2016

นำไปใช้กับ
.NET

หมายเหตุ

  • วันที่เผยแพร่:
    11 สิงหาคม 2020
  • เวอร์ชัน:
    .NET Framework 4.8

สรุป

การปรับปรุงความปลอดภัย

การยกระดับสิทธิ์ของช่องโหว่สิทธิ์การใช้งานอยู่เมื่อแอปพลิเคชันเว็บ ASP.NET หรือเว็บแอปพลิเคชัน.NET Framework ที่ทํางานบน IIS อย่างไม่ถูกต้องอนุญาตให้เข้าถึงไฟล์ที่แคชไว้ ผู้โจมตีที่ใช้ประโยชน์จากช่องโหว่นี้ได้สําเร็จอาจสามารถเข้าถึงไฟล์ที่ถูกจํากัดได้ เพื่อใช้ประโยชน์จากช่องโหว่นี้ ผู้โจมตีจะต้องส่งคําขอที่ออกแบบมาเป็นพิเศษไปยังเซิร์ฟเวอร์ที่ได้รับผลกระทบ การอัปเดตแก้ไขช่องโหว่โดยการเปลี่ยนแปลงวิธีการร้องขอการจัดการ ASP.NET และ.NET Framework

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับช่องโหว่ให้ไปที่ช่องโหว่ทั่วไปและความเสี่ยง (CVE) ต่อไปนี้

การปรับปรุงคุณภาพและความน่าเชื่อถือ

CLR1 - การเปลี่ยนแปลงในสถานการณ์ EnterpriseServices บางสถานการณ์ที่.NET Framework 4.8 ถดถอยซึ่งวัตถุอพาร์ตเมนต์แบบเธรดเดียวอาจถือว่าเป็นอพาร์ตเมนต์แบบหลายเธรดและนําไปสู่ความล้มเหลวในการบล็อก ขณะนี้การเปลี่ยนแปลงนี้ระบุวัตถุอพาร์ตเมนต์แบบเธรดเดี่ยวได้อย่างถูกต้องแล้ว และหลีกเลี่ยงความล้มเหลวนี้
- แก้ไขปัญหาในแอสเซมบลีที่มีข้อมูลโปรไฟล์ IBC ทําให้กระบวนการของผู้ปฏิบัติงาน Ngen หยุดทํางานและย้อนกลับไปเป็นรูปภาพดั้งเดิมแบบเต็ม
- แก้ไขปัญหาการหยุดทํางานที่เกิดขึ้นได้ยากระหว่างการหยุดการส่งเธรด
SQL - SqlBulkCopy.WriteToServer อาจทําให้ธุรกรรมในตาราง SQL ในหน่วยความจําล้มเหลว ไคลเอ็นต์อาจเห็นข้อยกเว้นที่มีข้อความ "การหมดเวลาของการดําเนินการหมดอายุแล้ว ช่วงเวลาการหมดเวลาผ่านไปก่อนการดําเนินการให้เสร็จสมบูรณ์หรือเซิร์ฟเวอร์ไม่ตอบสนอง" SqlBulkCopy.WriteToServer กําลังส่งโทเค็น Attention (ข้อความการยกเลิก) หลังจากส่งข้อมูลไปยัง Sql Server ทําให้เซิร์ฟเวอร์ยกเลิกทรานแซคชันสําหรับตารางในหน่วยความจํา
ASP.NET - ใช้แฮชที่เข้ากันได้กับ FIPS ในข้อมูลการวัดและส่งข้อมูลทางไกล ASP.Net
- แก้ไขปัญหาที่ "ไม่ระบุ" ไม่ใช่ค่าที่อนุญาตในการกําหนดค่าสําหรับแอตทริบิวต์ 'cookieSameSite' ของส่วนการรับรองความถูกต้องของฟอร์มและการกําหนดค่าสถานะเซสชัน
WPF2 - แก้ไขปัญหาเมื่อเปิดใช้งานการตรวจสอบการสะกดใน WPF TextBox หรือ RichTextBox คําต่างๆ เช่น "etc.", "เช่น" ถูกระบุว่าเป็นข้อผิดพลาดในการสะกดไม่ถูกต้อง
- แก้ไขปัญหาเมื่อแอปพลิเคชัน WPF Per-Monitor Aware ที่ทํางานบน .NET 4.8 บางครั้งอาจพบการหยุดทํางานโดยมีข้อยกเว้น System.ComponentModel.Win32Exception
- แก้ไขปัญหาที่การเรียงตัวของ TextBlock ใหม่ (ทําการตัดสินใจแบ่งบรรทัดที่แตกต่างกัน) ระหว่างการแสดงผลและ Hit-test และระหว่างการวัด อาการรวมถึงข้อความที่หายไป และ FailFast หยุดทํางานระหว่างการประมวลผลข้อความทางโปรแกรม
- แก้ไขปัญหาความล้มเหลวของเธรดการแสดงผลที่เกิดจาก HostVisual ยกเลิกการเชื่อมต่อเป้าหมายบนเธรดที่ไม่ถูกต้อง
- แก้ไขปัญหาเกี่ยวกับการค้างขณะเลื่อน TreeView ซึ่งมีต้นไม้ที่ไม่เหมือนกัน ในแง่ที่ว่า เด็กโหนดที่กําหนดให้จะควบคุมทรีย่อยที่มีขนาดแตกต่างกันมาก
- แก้ไขปัญหาเกี่ยวกับการหยุดทํางานที่อาจเกิดขึ้นเมื่อปิดคําแนะนําเครื่องมือที่ปิดอีกครั้งโดยรหัสผู้ใช้
- เมื่อ HwndHost ออกจากทรีภาพ การติดตามสแตกจะถูกสร้างขึ้น นี่เป็นราคาแพงและไม่จําเป็น ตรรกะจะถูกเปลี่ยนเพื่อสร้างการติดตามสแตกเฉพาะเมื่อเงื่อนไขผิดปกติเกิดขึ้นเท่านั้น
- แก้ไขปัญหาหน่วยความจําพร่องไปใน System.Speech.SpeechSynthesizer
- คําสั่งคัดลอกของ DataGrid แสดงข้อยกเว้นหากคลิปบอร์ดระบบถูกล็อกโดยกระบวนการอื่น ปัญหานี้หยุดทํางาน เนื่องจากมักไม่มีรหัสแอปบนสแตกเพื่อตรวจพบข้อยกเว้น ลักษณะการทํางานของ TextBox (และแอปอื่นๆ เช่น Notepad, Word, เบราว์เซอร์) ในสถานการณ์นี้คือล้มเหลวโดยไม่แจ้งให้ทราบ - ไม่มีอะไรถูกคัดลอกไปยังคลิปบอร์ด แต่ไม่มีข้อยกเว้น ขณะนี้แอป WPF สามารถเลือกรับลักษณะการทํางานนี้ได้โดยการตั้งค่า <appSettings><add key="ShouldThrowOnDataGridCopyOrCutFailure" value="false"/></appSettings>ในไฟล์ app.config
- แก้ไขปัญหาในการสร้างโมเดลภายในสําหรับเอกสาร FixedPage ข้อความบางข้อความปรากฏในลําดับที่ไม่ถูกต้องสําหรับการแก้ไขการดําเนินการ เช่น ส่วนที่เลือกและคัดลอก/วาง
WCF3 - เมื่อใช้ชื่อผู้ใช้ WINDOWS UPN กับรูปแบบที่คล้ายกับ username@dns.domain ในคุณสมบัติชื่อผู้ใช้ของ NetworkCredential เมื่อใช้ NetTcpBinding หรือ NetNamedPipeBinding WCF จะแยกชื่อผู้ใช้และ dns.domain ที่วางไว้ในคุณสมบัติ UserName และ Domain อย่างไม่ถูกต้อง การดําเนินการนี้ไม่ถูกต้องในบางสถานการณ์ และอาจส่งผลให้ไม่สามารถรับรองความถูกต้องได้ การแก้ไขนี้จะนําการปรับเปลี่ยนข้อมูลประจําตัวออกเมื่อใช้ชื่อผู้ใช้ UPN การปรับเปลี่ยนสามารถเปิดใช้งานใหม่ได้โดยการตั้งค่า AppSetting "wcf:enableLegacyUpnUsernameFix" เป็น true
Net Libraries - แก้ไขปัญหาหน่วยความจําพร่องไปใน HttpListener
Winforms - แก้ไขปัญหาเกี่ยวกับสถานะ DataGridView IsReadOnlyaccessibility: โปรแกรมผู้บรรยายและเครื่องมือที่สามารถเข้าถึงได้อื่นๆ จะประกาศสถานะเซลล์แบบอ่านอย่างเดียวตามนั้น
- แก้ไขปัญหาการถดถอยใน .NET Framework 4.8 เมื่อแอปพลิเคชันที่ใช้ชนิดเซลล์ DataGridView ComboBox และเลือกเข้าร่วมการช่วยสําหรับการเข้าถึงระดับ 3 อาจประสบกับการหยุดทํางานเป็นระยะขณะแก้ไขเซลล์
- แก้ไขปัญหาใน ClickOnce RFC3161 รหัสการตรวจสอบการประทับเวลา
การปรับปรุงการช่วยสําหรับการเข้าถึงของ Winforms ในรุ่นนี้ เรากําลังเพิ่มการปรับปรุงการช่วยสําหรับการเข้าถึงใหม่ที่แอปพลิเคชันของคุณสามารถเลือกรับได้ ตามค่าเริ่มต้น การเปลี่ยนแปลงเหล่านี้จะถูกปิดใช้งาน แอปพลิเคชันที่เลือก ใช้คุณลักษณะการช่วยสําหรับการเข้าถึง ที่เริ่มนํามาใช้ใน .NET 4.8 และเวอร์ชันก่อนหน้า สามารถเพิ่มสวิตช์ความเข้ากันได้ต่อไปนี้ลงในไฟล์การกําหนดค่าของแอปพลิเคชัน:
"Switch.UseLegacyAccessibilityFeatures.4=false"
โดยเฉพาะอย่างยิ่ง ถ้าแอปพลิเคชันกําหนดเป้าหมายเป็น .NET 4.8 ให้เพิ่มส่วน 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>
หากแอปพลิเคชันกําหนดเป้าหมายเวอร์ชันก่อนหน้าของเฟรมเวิร์กและเข้าร่วมในชุดฟีเจอร์การช่วยสําหรับการเข้าถึงก่อนหน้านี้ ให้เพิ่มสวิตช์เดียว "Switch.UseLegacyAccessibilityFeatures.4=false" ไปยังส่วนที่มีอยู่ AppContextSwitchOverrides :
<?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>
การปรับปรุงการช่วยสําหรับการเข้าถึงของ Winforms ที่รวมอยู่ในรุ่นนี้คือ:- แก้ไขปัญหาเกี่ยวกับการประกาศรายการตัวควบคุม PropertyGrid และประเภทที่ขยาย/ยุบตามโปรแกรมอ่านหน้าจอ
- อัปเดตรูปแบบที่สามารถเข้าถึงได้ของตัวควบคุมตารางคุณสมบัติและองค์ประกอบภายใน
- อัปเดตชื่อที่สามารถเข้าถึงได้ขององค์ประกอบภายในของตัวควบคุมตารางคุณสมบัติเพื่อประกาศโดยโปรแกรมอ่านหน้าจอเหล่านี้อย่างถูกต้อง
- ที่อยู่ที่เข้าถึงได้ของสี่เหลี่ยมผืนผ้าสําหรับตัวควบคุม PropertyGridView
- เปิดใช้งานโปรแกรมอ่านหน้าจอเพื่อประกาศเซลล์กล่องคําสั่งผสม DataGridView ที่ขยาย/ยุบสถานะอย่างถูกต้อง

         1 รันไทม์ภาษาทั่วไป (CLR)
2 Windows Presentation Foundation (WPF)
3 Windows Communication Foundation

ปัญหาที่ทราบแล้วในการอัปเดตนี้

แอปพลิเคชัน Windows Presentation Framework (WPF) ที่ใช้องค์ประกอบ HostVisual สององค์ประกอบขึ้นไปที่เป็นของเธรดทั่วไป โดยที่องค์ประกอบ HostVisual ทั้งสองรายการจะถูกขอให้ตัดการเชื่อมต่อจากเป้าหมายแบบเป็นภาพของพวกเขาในเวลาเดียวกันจดหมายล้มเหลวโดยมีข้อผิดพลาดต่อไปนี้:

ชนิดข้อยกเว้น: System.COMException
ข้อความ: UCEERR_RENDERTHREADFAILURE (HRESULT 0x88980406)
Callstack: ท็อปเฟรมคือ System.Windows.Media.Composition.DUCE+Channel.SyncFlush()

แก้ไข ปัญหา

คุณสามารถปิดใช้งานการแก้ไขปัญหาได้โดยการตั้งค่าสวิตช์ AppContext "Switch.System.Windows.Media.HostVisual.DisconnectsOnWrongThread" เป็นจริง โดยใช้วิธีใดวิธีหนึ่งที่อธิบายไว้ที่นี่  ซึ่งจะทําให้แอปของคุณพบบักเดิม ดังนั้นคุณควรลบสวิตช์ออกเมื่อเผยแพร่การแก้ไขผ่านการอัปเดตที่กําลังจะมาถึง

วิธีแก้ไขปัญหาชั่วคราว 1

• เพิ่มรายการต่อไปนี้ลงในไฟล์ app.config เพื่อปิดใช้งานการแก้ไขปัญหาในแอปพลิเคชันเดียว

        <runtime>
     <AppContextSwitchOverrides value="Switch.System.Windows.Media.HostVisual.DisconnectsOnWrongThread=true"/>
</รัน ไทม์>

โปรดทราบว่าถ้าการกําหนดค่าแอปพลิเคชันของคุณมีรายการสําหรับ <AppContextSwitchOverrides> อยู่แล้ว คุณจําเป็นต้องเพิ่มการตั้งค่าใหม่ภายในรายการนั้น โดยคั่นจากสวิตช์อื่นด้วยเครื่องหมายอัฒภาค:

   <AppContextSwitchOverrides value="Switch.SomeOtherSwitch=true; Switch.System.Windows.Media.HostVisual.DisconnectsOnWrongThread=true"/>

วิธีแก้ไขปัญหาชั่วคราว 2

• ใช้ซับคีย์รีจิสทรีต่อไปนี้เพื่อปิดใช้งานการแก้ไขที่มีปัญหาสําหรับแอปพลิเคชัน WPF ทั้งหมดในเครื่อง
 คำเตือน
ปัญหาร้ายแรงอาจเกิดขึ้นถ้าคุณปรับเปลี่ยนรีจิสทรีอย่างไม่ถูกต้องโดยใช้ Registry Editor หรือใช้วิธีอื่น ปัญหาเหล่านี้อาจทำให้คุณต้องติดตั้งระบบปฏิบัติการใหม่ Microsoft ไม่สามารถรับประกันได้ว่าปัญหาเหล่านี้จะสามารถแก้ไขได้ คุณต้องยอมรับความเสี่ยงในการปรับเปลี่ยนรีจิสทรีด้วยตนเอง

ตําแหน่ง: HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AppContext\
ชื่อ: Switch.System.Media.HostVisual.DisconnectsOnWrongThread
ชนิด: สตริง
ค่า: จริง

โปรดทราบว่าบนระบบปฏิบัติการ 64 บิต คุณยังต้องใช้ซับคีย์รีจิสทรีที่มีชื่อ ชนิด และค่าที่ตําแหน่งเดียวกัน: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\.NETFramework\AppContext\

การแก้ปัญหา

เรากําลังดําเนินการแก้ไขปัญหาและจะนําเสนอการอัปเดตในรุ่นถัดไป
 

วิธีรับการอัปเดตนี้

ติดตั้งการอัปเดตนี้

ช่องทางการเผยแพร่ พร้อมใช้งาน ขั้นตอนถัดไป
Windows Update และ Microsoft Update ใช่ ไม่มี การอัปเดตนี้จะถูกดาวน์โหลดและติดตั้งโดยอัตโนมัติจาก Windows Update
Microsoft Update Catalog ใช่ เมื่อต้องการขอรับแพคเกจสแตนด์อโลนสำหรับการอัปเดตนี้ ให้ไปที่เว็บไซต์ Microsoft Update Catalog
Windows Server Update Services (WSUS) ใช่ การอัปเดตนี้จะซิงค์กับ WSUS โดยอัตโนมัติหากคุณกำหนดค่าผลิตภัณฑ์และการจำแนกประเภทดังต่อไปนี้:
ผลิตภัณฑ์:Windows 10 เวอร์ชัน 1607 และ Windows Server 2016
การจำแนกประเภท: การอัปเดตความปลอดภัย

ข้อมูลไฟล์

สําหรับลิสต์ของไฟล์ที่ระบุในการอัปเดตนี้ ให้ดาวน์โหลด ข้อมูลไฟล์สําหรับการอัปเดตแบบสะสม

ข้อมูลเกี่ยวกับการป้องกันและความปลอดภัย