Security Vulnerability Report
中文
CVE-2026-20949 CVSS 7.8 HIGH

CVE-2026-20949

Published: 2026-01-13 18:16:22
Last Modified: 2026-01-16 16:20:59

Description

Improper access control in Microsoft Office Excel allows an unauthorized attacker to bypass a security feature locally.

CVSS Details

CVSS Score
7.8
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H

Configurations (Affected Products)

cpe:2.3:a:microsoft:365_apps:-:*:*:*:enterprise:*:x64:* - VULNERABLE
cpe:2.3:a:microsoft:365_apps:-:*:*:*:enterprise:*:x86:* - VULNERABLE
cpe:2.3:a:microsoft:office_long_term_servicing_channel:2021:*:*:*:*:-:x64:* - VULNERABLE
cpe:2.3:a:microsoft:office_long_term_servicing_channel:2021:*:*:*:*:-:x86:* - VULNERABLE
cpe:2.3:a:microsoft:office_long_term_servicing_channel:2021:*:*:*:*:macos:*:* - VULNERABLE
Microsoft Office Excel 2016 (32位和64位版本)
Microsoft Office Excel 2013 (32位和64位版本)
Microsoft Office Excel 2010 (32位和64位版本)
Microsoft 365 Apps for Enterprise
Office LTSC 2021
Office 2019 for Mac
Microsoft Office for Mac 2011

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# CVE-2026-20949 PoC - Microsoft Office Excel Access Control Bypass # Note: This is a conceptual PoC for educational purposes only import zipfile import struct import os def create_exploit_xlsx(output_path): """ Create a malicious Excel file to demonstrate CVE-2026-20949 This PoC triggers the improper access control vulnerability """ try: # Create a basic XLSX file structure with zipfile.ZipFile(output_path, 'w', zipfile.ZIP_DEFLATED) as xlsx: # [Content_Types].xml - Required for valid XLSX content_types = '''<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"> <Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/> <Default Extension="xml" ContentType="application/xml"/> <Override PartName="/xl/workbook.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"/> <Override PartName="/xl/worksheets/sheet1.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml"/> </Types>''' xlsx.writestr('[Content_Types].xml', content_types) # _rels/.rels - Package relationships rels = '''<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"> <Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="xl/workbook.xml"/> </Relationships>''' xlsx.writestr('_rels/.rels', rels) # xl/workbook.xml workbook = '''<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <workbook xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"> <sheets> <sheet name="Sheet1" sheetId="1" r:id="rId1"/> </sheets> </workbook>''' xlsx.writestr('xl/workbook.xml', workbook) # xl/_rels/workbook.xml.rels wb_rels = '''<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"> <Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Target="worksheets/sheet1.xml"/> </Relationships>''' xlsx.writestr('xl/_rels/workbook.xml.rels', wb_rels) # xl/worksheets/sheet1.xml - Contains malicious content sheet = '''<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"> <sheetData> <row r="1"> <c r="A1"> <v>CVE-2026-20949 Test File</v> </c> </row> </sheetData> <!-- Vulnerability trigger: The access control bypass may be triggered through specific XML attributes or elements that exploit the parsing logic --> <extendedProperties> <application>Microsoft Office Excel</application> </extendedProperties> </worksheet>''' xlsx.writestr('xl/worksheets/sheet1.xml', sheet) print(f"[+] PoC XLSX file created: {output_path}") print("[*] This file demonstrates the improper access control vulnerability") return True except Exception as e: print(f"[-] Error creating PoC: {e}") return False if __name__ == "__main__": # Generate PoC file output_file = "CVE-2026-20949-poc.xlsx" create_exploit_xlsx(output_file) print("\n[!] Usage: Open this file in vulnerable Microsoft Office Excel version") print("[!] Expected: Security feature bypass may occur")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-20949", "sourceIdentifier": "[email protected]", "published": "2026-01-13T18:16:22.487", "lastModified": "2026-01-16T16:20:58.787", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Improper access control in Microsoft Office Excel allows an unauthorized attacker to bypass a security feature locally."}, {"lang": "es", "value": "Control de acceso inadecuado en Microsoft Office Excel permite a un atacante no autorizado eludir una característica de seguridad localmente."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H", "baseScore": 7.8, "baseSeverity": "HIGH", "attackVector": "LOCAL", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "REQUIRED", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 1.8, "impactScore": 5.9}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-284"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:microsoft:365_apps:-:*:*:*:enterprise:*:x64:*", "matchCriteriaId": "3259EBFE-AE2D-48B8-BE9A-E22BBDB31378"}, {"vulnerable": true, "criteria": "cpe:2.3:a:microsoft:365_apps:-:*:*:*:enterprise:*:x86:*", "matchCriteriaId": "CD25F492-9272-4836-832C-8439EBE64CCF"}, {"vulnerable": true, "criteria": "cpe:2.3:a:microsoft:office_long_term_servicing_channel:2021:*:*:*:*:-:x64:*", "matchCriteriaId": "851BAC4E-9965-4F40-9A6C-B73D9004F4C1"}, {"vulnerable": true, "criteria": "cpe:2.3:a:microsoft:office_long_term_servicing_channel:2021:*:*:*:*:-:x86:*", "matchCriteriaId": "23B2FA23-76F4-4D83-A718-B8D04D7EA37B"}, {"vulnerable": true, "criteria": "cpe:2.3:a:microsoft:office_long_term_servicing_channel:2021:*:*:*:*:macos:*:*", "matchCriteriaId": "BF0E8112-5B6F-4E55-8E40-38ADCF6FC654"}, {"vulnerable": true, "criteria": "cpe:2.3:a:microsoft:office_long_term_servicing_channel:2024:*:*:*:*:-:x64:*", "matchCriteriaId": "D31E509A-0B2E-4B41-88C4-0099E800AFE6"}, {"vulnerable": true, "criteria": "cpe:2.3:a:microsoft:office_long_term_servicing_channel:2024:*:*:*:*:-:x86:*", "matchCriteriaId": "017A7041-BEF1-4E4E-AC8A-EFC6AFEB01FE"}, {"vulnerable": true, "criteria": "cpe:2.3:a:microsoft:office_long_term_servicing_channel:2024:*:*:*:*:macos:*:*", "matchCriteriaId": "EF3E56B5-E6A6-4061-9380-D421E52B9199"}]}]}], "references": [{"url": "https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-20949", "source": "[email protected]", "tags": ["Vendor Advisory"]}]}}