CVE-2025-29867
Executive Summary
CVE-2025-29867 is a Type Confusion vulnerability (CWE-843) affecting multiple versions of Hancom Office (2018, 2020, 2022, 2024). This flaw allows an attacker to perform File Content Injection by exploiting an incompatible type access during document parsing. Successful exploitation could lead to arbitrary code execution or data manipulation within the context of the application. The vulnerability resides in the core parsing engine, which mishandles type validation when processing crafted document files. No public proof-of-concept (PoC) or exploit code has been released, and the EPSS score is 0.0%, indicating low active exploitation in the wild. However, given the widespread use of Hancom Office in South Korea and other regions, this poses a significant supply chain risk for enterprises relying on this software.
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
Supply Chain & Package Security
Hancom Office is a proprietary software suite distributed via official channels and pre-installed on many enterprise systems. The vulnerability is not in an open-source package (NPM, PyPI, Go, Ruby), but the risk is amplified by its deep integration into business workflows. Organizations should verify the integrity of their Hancom Office installations and ensure they are sourced from trusted vendors.
CVSS Breakdown & Threat Level
The CVSS score is listed as 0.0, which is likely a placeholder or uncalculated. Based on the vulnerability type (Type Confusion leading to File Content Injection), a reasonable estimated CVSS v3.1 vector would be:
- Attack Vector (AV): Local (L) – requires opening a malicious file.
- Attack Complexity (AC): Low (L) – no special conditions.
- Privileges Required (PR): None (N) – user-level access.
- User Interaction (UI): Required (R) – victim must open the file.
- Scope (S): Unchanged (U) – vulnerability affects the application only.
- Confidentiality (C): High (H) – potential data exfiltration.
- Integrity (I): High (H) – file content injection.
- Availability (A): High (H) – potential crash or resource exhaustion.
Estimated CVSS Vector: CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Estimated Score: 7.8 (High)
Threat Level: High – due to the potential for file content injection and the widespread use of Hancom Office in enterprise environments.
Deep Dive & Mechanics
The vulnerability is a Type Confusion (CWE-843) in Hancom Office’s document parsing engine. When processing a specially crafted document (e.g., .hwp, .cell, .show), the parser accesses a resource using an incompatible type, leading to memory corruption. This can be exploited to inject arbitrary content into the file, potentially altering data or executing code.
Root Cause: The parser fails to validate the type of an object before accessing it, allowing an attacker to provide a malicious object that is interpreted as a different type. This can lead to out-of-bounds reads/writes or use-after-free conditions.
Attack Vector: An attacker sends a crafted document to a victim (e.g., via email, download). When the victim opens the file with a vulnerable Hancom Office version, the type confusion triggers, allowing the attacker to inject content or execute code.
Impact: File Content Injection – the attacker can modify the document’s content, potentially inserting malicious macros, altering data, or exfiltrating information. In worst-case scenarios, this could lead to remote code execution.
Vulnerable vs. Patched Code
No specific code diff is available as Hancom Office is proprietary. However, the patch likely involves adding type checks in the parsing logic.
Vulnerable Code (Conceptual):
void parseObject(DataStream &stream) {
ObjectType type = stream.readType();
// No type validation
if (type == TEXT) {
TextObject *obj = (TextObject*)stream.readData(); // Potential type confusion
// Process obj
}
}
Patched Code (Conceptual):
void parseObject(DataStream &stream) {
ObjectType type = stream.readType();
if (type == TEXT) {
// Validate type before casting
if (stream.peekDataSize() != sizeof(TextObject)) {
throw InvalidFormatException();
}
TextObject *obj = (TextObject*)stream.readData();
// Process obj
}
}
Exploitation & Lab Setup
Red Team (Exploitation)
Prerequisites:
- Vulnerable Hancom Office version (e.g., 2018 < 10.0.0.12681)
- Crafted malicious document file
Steps:
- Create a malicious document that triggers the type confusion. This requires reverse engineering the file format to identify the vulnerable parsing routine.
- Embed the payload (e.g., macro or shellcode) to achieve file content injection.
- Deliver the document to the victim via phishing email or download.
- Upon opening, the vulnerability triggers, allowing content injection or code execution.
Example (Conceptual):
# Craft a malicious .hwp file
import struct
def create_malicious_hwp():
# Placeholder for actual exploit logic
payload = b"A" * 1000 # Trigger type confusion
with open("malicious.hwp", "wb") as f:
f.write(payload)
create_malicious_hwp()
Blue Team (Detection & Defense)
Detection:
- Monitor for unusual file parsing behavior in Hancom Office processes.
- Use endpoint detection and response (EDR) to detect memory corruption events.
- Analyze network traffic for suspicious document downloads.
Defense:
- Apply the vendor patch immediately.
- Restrict execution of macros in documents.
- Use application whitelisting to prevent unauthorized software.
- Educate users on phishing risks.
Indicators of Compromise (IOCs)
- File Hashes: (No known samples yet)
- Network Indicators: (No known C2 domains)
- Process Anomalies: HancomOffice.exe or Hwp.exe crashing or exhibiting unusual memory access patterns.
- Registry Keys: (No known persistence mechanisms)
- YARA Rule: (See Detection Engineering)
Detection Engineering
YARA Rule
rule CVE_2025_29867_Hancom_TypeConfusion {
meta:
description = "Detects malicious Hancom Office documents exploiting CVE-2025-29867"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-29867"
strings:
$magic_hwp = { A1 B2 C3 D4 } // Placeholder for HWP magic bytes
$type_confusion_pattern = { 00 01 02 03 } // Placeholder for exploit pattern
condition:
$magic_hwp at 0 and $type_confusion_pattern
}
Sigma Rule
title: CVE-2025-29867 Hancom Office Type Confusion Exploit
id: 12345678-1234-1234-1234-123456789abc
status: experimental
description: Detects potential exploitation of CVE-2025-29867 via abnormal Hancom Office process behavior
author: Valters IT
logsource:
category: process_creation
product: windows
detection:
selection:
Image|endswith: '\HancomOffice.exe'
CommandLine|contains: 'malicious.hwp'
condition: selection
falsepositives:
- Legitimate use of Hancom Office with similar filenames
level: high
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2025-29867 Hancom Office Malicious Document Download"; flow:to_server,established; content:"malicious.hwp"; nocase; classtype:attempted-user; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Patch: Update Hancom Office to the latest versions:
- 2018: 10.0.0.12681 or later
- 2020: 11.0.0.8916 or later
- 2022: 12.0.0.4426 or later
- 2024: 13.0.0.3050 or later
- Workaround: Disable automatic opening of documents from untrusted sources.
- Monitor: Review logs for any suspicious Hancom Office crashes or file access patterns.
Long-term Mitigations:
- Implement application control policies to restrict Hancom Office execution.
- Use sandboxing for document processing.
- Conduct regular security awareness training.
Valters IT Signature
Report generated by Valters IT Cyber Threat Intelligence Division
Date: 2025-04-10
Classification: TLP:AMBER