Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessDeliver crafted DWG file to victim
-
DeliveryVictim opens file in LibreCAD
-
Exploitstrlen reads non-NUL-terminated header buffer
-
ExecutionOut-of-bounds stack read in readFileHeader
-
ImpactProcess crashes (denial of service)
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, read limits
MITRE ATT&CK
1 technique across 1 tactic: Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires a victim to open an attacker-supplied DWG file of version AC1018, AC1024, or AC1027 in LibreCAD or software linking libdxfrw; the file's decrypted header must be specially constructed to contain no NUL byte so that strlen() in dwgReader18::readFileHeader() runs off the end of a stack buffer. Limiting factors that reduce real-world risk: the attack vector is local (AV:L) and requires active user interaction (UI:P) - the malicious file must be delivered and manually opened - and the observed outcome is a process crash rather than code execution or confirmed data disclosure. No special non-default configuration is needed beyond opening an affected DWG version. |
| Impact | This is a genuinely low-to-moderate priority issue, not a top-tier emergency, and the signals are largely consistent. The official CVSS 4.0 vector (AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:L) scores 4.8 (MEDIUM) and tells a coherent story: exploitation is local and file-based, requires victim interaction (UI:P - opening a crafted file), and the only confirmed impact is availability (VA:L, a process crash). Critically, the vendor-assigned vector sets VC:N (no confidentiality impact) even though this is an out-of-bounds READ and is tagged 'Information Disclosure' - this is a notable tension: the strlen() over-read walks adjacent stack memory to compute a length rather than returning that memory to the attacker, so practical impact is a crash/DoS rather than reliable data exfiltration. No EPSS score, no KEV listing, and no explicit POC flag were provided in the input, so there is no evidence of active or automated exploitation; a detailed third-party technical write-up (hackmd) and a VulnCheck advisory exist, which lowers the research barrier but does not equal a weaponized exploit. There is no SSVC decision data in the input. Net: a real, patch-worthy memory-safety bug whose realistic worst case is crashing a desktop CAD application when a user opens a malicious drawing - prioritize normal patching, not emergency response. |
| Exploit ScenarioDerived | An attacker crafts a malicious AC1018, AC1024, or AC1027 DWG file whose decrypted header contains no NUL bytes and distributes it via email, a shared drawing repository, or a download. When a victim opens the file in LibreCAD (or any application using libdxfrw), dwgReader18::readFileHeader() calls strlen() on the non-terminated buffer, reading past the end of the stack buffer and crashing the process. A public technical write-up describing the flaw exists, but the input provides no evidence of a weaponized public exploit or active exploitation. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 14, 2026
Opening a specially crafted DWG file (versions AC1018, AC1024, or AC1027) in LibreCAD or any application linking libdxfrw can trigger a stack-based out-of-bounds read in dwgReader18::readFileHeader(), which calls strlen() on a decrypted header buffer that is not guaranteed to be NUL-terminated; the read walks past the end of the stack buffer and typically crashes the process. The issue affects libdxfrw through LC2.2.0 and LibreCAD through 2.2.1.5, and exploitation is local, requiring the victim to manually open the malicious drawing (CVSS 4.0 base 4.8; assessed CVSS 3.1 AV:L/AC:L/PR:N/UI:R with availability-only impact). There is no confirmed active exploitation (CISA KEV) and no public exploit identified at time of analysis, and the observed outcome is a denial of service rather than code execution or confirmed information disclosure. Upstream fixes have been committed to both the libdxfrw and LibreCAD repositories, though a tagged patched release has not been independently confirmed.
RemediationAI
Apply the upstream fixes: libdxfrw commit 0c5595930b20917a40ed7c188475eaca624b8ce9 (https://github.com/LibreCAD/libdxfrw/commit/0c5595930b20917a40ed7c188475eaca624b8ce9) and the corresponding LibreCAD commit abd1f4a8e32dbd871c986086227502217200cd4b (https://github.com/LibreCAD/LibreCAD/commit/abd1f4a8e32dbd871c986086227502217200cd4b); note that this is an upstream fix available as a PR/commit, and a released patched version (beyond 2.2.1.5 / LC2.2.0) has not been independently confirmed, so verify the tag or rebuild from the fixed revision before relying on it. If upgrading is not immediately possible, the practical compensating controls are to avoid opening untrusted AC1018/AC1024/AC1027 DWG files and to pre-screen incoming drawings in an isolated environment or converter before loading them in LibreCAD - the trade-off is loss of convenient direct viewing and added workflow friction for legitimate files. Additionally, run LibreCAD with least privilege and in a sandbox or container where a process crash and stack-adjacent memory exposure are contained; this does not prevent the crash, but limits any collateral impact. Finally, block or strip the strongest static DOS primitives (stripped-out in any case) - realistic trade-offs are workable, but the authoritative fix is the upstream commit; note that these workarounds mitigate rather than eliminate the out-of-bounds read.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
libdxfrw is the open-source DWG/DXF read-write library embedded in LibreCAD and reused by other CAD-adjacent tools; CPE data identifies both cpe:2.3:a:librecad:libdxfrw and cpe:2.3:a:librecad:librecad as affected, meaning the flaw lives in the shared library and propagates to anything that links it. The vulnerable code is dwgReader18::readFileHeader() (referenced at src/intern/dwgreader18.cpp line 248 in both the standalone libdxfrw LC2.2.0 tree and the vendored copy under LibreCAD v2.2.1.5), which handles the newer DWG format family: AC1018 (DWG 2004), AC1024 (DWG 2007), and AC1027 (DWG 2013). These formats store the file header in an encrypted/obfuscated section that the reader decrypts into a local buffer before parsing it; the code then treats that buffer as a C string and calls strlen() to locate its end, assuming a terminating NUL byte is present. Because the crafted file can be constructed so that the decrypted header contains no NUL byte at all, strlen() continues reading past the boundary of the stack buffer - a classic CWE-125 out-of-bounds read - which can consume adjacent stack memory and lead to a crash. The root cause is a length-assumption error rather than memory corruption on write, and the upstream commits (libdxfrw 0c5595930b20917a40ed7c188475eaca624b8ce9 and LibreCAD abd1f4a8e32dbd871c986086227502217200cd4b) address the parsing path accordingly; the accompanying changesets largely add qualification and DWG/DXF verification test lanes to guard the reader against regression.
Know when Librecad gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
File-based parsing flaw so AV:L and UI:R (user opens crafted file), no auth needed (PR:N); impact is a crash only, so C:N/I:N/A:L.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
LibreCAD libdxfrw through LC2.2.0 (LibreCAD through 2.2.1.5) contains a stack-based out-of-bounds read vulnerability in dwgReader18::readFileHeader() caused by calling strlen on non-NUL-terminated buffers. Attackers can supply a crafted AC1018, AC1024 or AC1027 DWG file without NUL bytes in the decrypted header to read adjacent stack memory and crash the process.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
A code execution vulnerability exists in the dwgCompressor::decompress18() functionality of LibreCad libdxfrw 2.2.0-rc2-
A code execution vulnerability exists in the dxfRW::processLType() functionality of LibreCad libdxfrw 2.2.0-rc2-19-ge02f
A code execution vulnerability exists in the dwgCompressor::copyCompBytes21 functionality of LibreCad libdxfrw 2.2.0-rc2
LibreCAD 2.1.3 allows remote attackers to cause a denial of service (0x89C04589 write access violation and application c
A Buffer Overflow vulnerability in importshp plugin in LibreCAD 2.2.0 allows attackers to obtain sensitive information v
EUVD-2026-101234
GHSA-v4r9-37cv-99h9
NVD
CVE.org
EPSS
Exploit-DB