CVE-2023-35734
Executive Summary
CVE-2023-35734 is a use-after-free vulnerability in Sante DICOM Viewer Pro, specifically during the parsing of DCM files. The flaw arises when the application fails to validate the existence of an object before performing operations on it, leading to an information disclosure. Exploitation requires user interaction (e.g., opening a malicious DCM file or visiting a crafted page). While the CVSS score is low (3.3), the vulnerability can be chained with other flaws to achieve arbitrary code execution in the context of the current process. No public exploit code or proof-of-concept is available, and no patch has been released by the vendor.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
CVSS Breakdown & Threat Level
- CVSS Score: 3.3 (Low)
- Vector: CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:N
- Attack Vector: Local (requires user to open a malicious file)
- Attack Complexity: Low
- Privileges Required: None
- User Interaction: Required
- Scope: Unchanged
- Confidentiality Impact: Low (information disclosure)
- Integrity Impact: None
- Availability Impact: None
Threat Level: Low. The vulnerability is not remotely exploitable without user interaction and only leads to information disclosure. However, chaining with other vulnerabilities could elevate the risk.
Deep Dive & Mechanics
The vulnerability resides in the DCM file parsing routine of Sante DICOM Viewer Pro. When processing a specially crafted DCM file, the application fails to properly validate the lifetime of an object. After the object is freed, a pointer to it remains (dangling pointer). Subsequent operations on this pointer result in a use-after-free condition, allowing an attacker to read sensitive memory contents.
Root Cause: Lack of validation of object existence before performing operations (CWE-416: Use After Free).
Attack Vector: The attacker must convince a user to open a malicious DCM file (e.g., via email, download, or web page). Once opened, the vulnerable code path is triggered, potentially leaking memory data that could include credentials, patient information, or other sensitive data.
Chaining Potential: While the direct impact is information disclosure, an attacker could combine this with other vulnerabilities (e.g., heap spray, type confusion) to achieve arbitrary code execution.
Vulnerable vs. Patched Code
No official patch is available. The vulnerable code likely resembles:
// Vulnerable pseudo-code
void parse_dcm_object(DCMObject *obj) {
// obj is freed elsewhere but pointer remains
process_object(obj); // Use-after-free
}
A patched version would validate the object's existence:
// Patched pseudo-code
void parse_dcm_object(DCMObject *obj) {
if (obj == NULL || obj->is_freed) {
return; // Safe check
}
process_object(obj);
}
Exploitation & Lab Setup
Red Team
Prerequisites:
- Sante DICOM Viewer Pro installed (any version)
- Ability to deliver a malicious DCM file to the target
Steps:
- Craft a DCM file that triggers the use-after-free condition. This requires reverse engineering the parsing logic to identify the exact object lifecycle.
- Embed the malicious DCM file in a phishing email or host it on a website.
- When the target opens the file, the vulnerability triggers, leaking memory contents.
Note: No public exploit code exists. The following is a conceptual example:
# Conceptual exploit script (not functional)
import struct
def craft_malicious_dcm():
# Craft DCM header and data to trigger UAF
payload = b'\x00' * 100 # Placeholder
with open('malicious.dcm', 'wb') as f:
f.write(payload)
craft_malicious_dcm()
Blue Team
Detection:
- Monitor for unusual DCM file downloads or email attachments.
- Use endpoint detection rules to flag Sante DICOM Viewer Pro crashes or abnormal memory access patterns.
- Implement application whitelisting to prevent execution of untrusted DCM files.
Hunting:
- Search for event logs indicating Sante DICOM Viewer Pro crashes (Event ID 1000 on Windows).
- Analyze memory dumps for signs of use-after-free exploitation.
Indicators of Compromise (IOCs)
- File Hashes: No known malicious samples.
- Network Indicators: None (local file-based exploitation).
- Behavioral: Sante DICOM Viewer Pro crashes or unexpected memory reads.
- Registry/File System: No specific persistence mechanisms.
Detection Engineering
YARA Rule
rule CVE_2023_35734_Sante_DICOM_UAF {
meta:
description = "Detects malicious DCM files targeting CVE-2023-35734"
author = "Valters IT"
date = "2025-04-10"
reference = "https://nvd.nist.gov/vuln/detail/CVE-2023-35734"
strings:
$dcm_header = "DICM" ascii wide
$uaf_pattern = { ?? ?? ?? ?? ?? ?? ?? ?? } // Placeholder for specific byte pattern
condition:
$dcm_header at 128 and #uaf_pattern > 0
}
Sigma Rule
title: Sante DICOM Viewer Pro Crash Detection
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects crashes of Sante DICOM Viewer Pro potentially caused by CVE-2023-35734
author: Valters IT
date: 2025/04/10
logsource:
category: application
product: windows
detection:
selection:
EventID: 1000
Image|endswith: 'DicomViewerPro.exe'
condition: selection
falsepositives:
- Legitimate crashes due to other reasons
level: low
Suricata Rule
alert tcp $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2023-35734 Sante DICOM Viewer Pro UAF Attempt"; flow:to_server,established; content:"DICM"; offset:128; depth:4; classtype:attempted-user; sid:1000001; rev:1;)
Remediation & Mitigation
- No Patch Available: Since the vendor has not released a fix, the primary mitigation is to avoid opening untrusted DCM files.
- User Awareness: Train users to not open DCM files from unknown sources.
- Application Sandboxing: Run Sante DICOM Viewer Pro in a sandboxed environment to limit impact.
- Alternative Software: Consider using a different DICOM viewer that is actively maintained.
- Monitor for Updates: Regularly check the vendor's website for any security patches.
Valters IT
Securing Digital Frontiers
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.