Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft DWG with oversized schdat type value
-
DeliveryDeliver file to victim or processing service
-
ExploitVictim opens file in LibreDWG app
-
Executionacds_private() uses unchecked schema index
-
PersistOut-of-bounds read past static table
-
ImpactProcess crash / limited memory disclosure
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 an attacker-supplied DWG file in R2004 or R2010+ format containing an AcDs section with a large 'schdat' schema property type value that exceeds the static table bounds used by acds_private(). The victim (or an automated service) must actually open or process that file with dwgread, dwg2dxf, or any application linked against LibreDWG through version 0.14.8612 - the AV:L/UI:P vector means there is no remote or autonomous trigger; the malicious file must be delivered and parsed locally. No authentication is required (PR:N), and default configurations are affected since AcDs decoding is part of normal DWG parsing, but the practical limiting factors are the need for file delivery, user/pipeline interaction to open it, and the file reaching the AcDs decode path (R2004/R2010+ drawings). |
| Impact | This is a medium-severity, defense-in-depth-class file-parsing flaw rather than a top-priority emergency. The provided CVSS 4.0 vector (AV:L/AC:L/AT:N/PR:N/UI:P/VC:L/VI:N/VA:H) yields 6.9 and is internally consistent with the description: exploitation is LOCAL and requires the victim to process a malicious file (UI:P), so there is no network-facing, zero-click exposure. The dominant impact is availability (VA:H = a crash/DoS of dwgread, dwg2dxf, or any consumer of LibreDWG), with only limited confidentiality impact (VC:L) from the out-of-bounds read potentially disclosing adjacent static-table memory; there is no integrity impact (VI:N), consistent with CWE-125. Exploitation status: no public exploit identified at time of analysis - there is no CISA KEV listing and no EPSS score was supplied, so exploitation probability cannot be quantified from the input. These signals do not conflict, but note a detailed third-party technical write-up (hackmd) and the exact vulnerable source location are referenced, which lowers the effort an attacker needs to reproduce the crash even though no packaged exploit is confirmed. Realistic priority is highest for environments that auto-ingest untrusted DWG files (conversion services, CI pipelines, thumbnailers); it is low priority for systems that only open trusted/self-generated drawings. |
| Exploit ScenarioDerived | An attacker crafts a malicious R2004 or R2010+ DWG file whose AcDs section contains an oversized 'schdat' schema property type value and delivers it to a victim (email attachment, upload to a DWG conversion/preview service, or shared project file). When the victim or an automated pipeline processes the file with dwgread, dwg2dxf, or another LibreDWG-based application, the acds_private() decoder uses the unchecked index to read beyond a static table, crashing the process and potentially leaking adjacent memory. No packaged public exploit is confirmed, but the referenced technical write-up documents the trigger in detail. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 15, 2026
Opening a crafted R2004 or R2010+ DWG file with GNU LibreDWG through 0.14.8612 can crash the parsing application and expose a small amount of process memory, because the AcDs data-section decoder indexes a static schema-property-type handler table using an unchecked 'schdat' index. The issue is local and user-assisted: an attacker must deliver the file, and a victim or an automated pipeline must actually parse it with dwgread, dwg2dxf, or any tool linked against LibreDWG; no authentication is required and default configurations are affected (CVSS 3.1 AV:L/AC:L/PR:N/UI:R, C:L/A:H). No public exploit code was identified at time of analysis, and the practical impact is a medium-severity denial-of-service against DWG-processing workflows plus limited out-of-bounds information disclosure, making this a defense-in-depth file-parsing issue rather than an emergency.
RemediationAI
No vendor-released patch identified at time of analysis; the reference URLs point only to the vulnerable source blob and public advisories, not to a tagged fixed release, so the first step is to watch the upstream LibreDWG repository and the VulnCheck advisory (https://www.vulncheck.com/advisories/gnu-libredwg-through-0.14.8612-out-of-bounds-read-in-acds-private-acds-decoder) for an updated version beyond 0.14.8612 and upgrade as soon as one exists. Because AcDs decoding is part of normal DWG parsing, simply disabling that section is not a supported configuration; the practical mitigations are to treat all DWG input as untrusted and confine parsing - run dwgread, dwg2dxf, and any LibreDWG-linked converter in a disposable, low-privilege sandbox or container with seccomp/AppArmor restrictions, no write access to shared mounts, and a hard memory/time limit, accepting the trade-off of reduced throughput and added pipeline complexity, and never auto-parse attachments or uploads on the desktop. If the source is available in-house, the most direct compensating control is to add an explicit bounds check on the 'schdat' property type index before the static table lookup in src/acds.spec (around lines 250-260), forcing malformed indices to a safe error path or to a no-op handler; the trade-off is maintaining a local patch and re-testing the AcDs decoder against legitimate R2004/R2010+ files, since strict rejection may reject drawings that previously parsed silently. Additionally, log and alert on dwgread/dwg2dxf crashes (SIGSEGV) as a detection signal for attempted exploitation, and quarantine rather than retry files that trigger them.
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
The root cause is a CWE-125 out-of-bounds read in the AcDs decoder, implemented by LibreDWG's acds.spec specification at roughly lines 250-260 (source blob at commit d9468ae948b8f07a08efa756c19f8916052358c0). AcDs is the DWG 'AcDb schema/data storage' section carried in R2004 and R2010+ drawings; it stores schema definitions and per-object data whose property types are encoded as integer indices. acds_private() maps those indices into a fixed, statically compiled table of property-type handlers without validating the index against the table length. A file that specifies a large 'schdat' property type value drives the index past the end of the table, causing reads from memory that lies beyond the static table. Because the table is a compile-time constant, the fault is deterministic and reliably reproducible with a single crafted drawing, and any consumer linked against the LibreDWG library inherits the behavior. The associated CPE (cpe:2.3:a:gnu:libredwg:*:*:*:*:*:*:*:*) is wildcarded, consistent with all published versions up to and including 0.14.8612 being affected; the tags 'Buffer Overflow', 'Information Disclosure', and 'Libredwg' align with an unchecked-index read that primarily yields a crash (availability) with a secondary, bounded confidentiality exposure rather than memory corruption or code execution.
Know when Libredwg 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:L/VI:N/VA:H/SC:N/SI:N/SA:N
Local file parsing requires the victim to open a crafted file (AV:L, UI:R), no privileges or auth (PR:N); impact is a crash (A:H) with limited OOB-read disclosure (C:L) and no integrity effect.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
GNU LibreDWG through 0.14.8612 contains a global out-of-bounds read vulnerability in the AcDs decoder acds_private() that allows attackers to read beyond a static table via an unchecked schema property type index. Attackers can supply a crafted R2004 or R2010+ DWG file with a large 'schdat' property type value to crash dwgread, dwg2dxf, or any application using LibreDWG.
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.
LibreDWG v0.12.4.4608 & commit f2dea29 was discovered to contain a heap use-after-free via bit_copy_chain. Rated critica
LibreDWG v0.12.3 was discovered to contain a heap-buffer overflow via decode_preR13. Rated critical severity (CVSS 9.8),
GNU LibreDWG 0.10 is affected by: memcpy-param-overlap. Rated high severity (CVSS 8.8), this vulnerability is remotely e
An issue was discovered in GNU LibreDWG 0.7 and 0.7.1645. Rated critical severity (CVSS 9.1), this vulnerability is remo
An issue was discovered in GNU LibreDWG 0.7 and 0.7.1645. Rated critical severity (CVSS 9.1), this vulnerability is remo
A heap based buffer overflow vulnerability exits in GNU LibreDWG 0.10 via: read_2004_section_classes ../../src/decode.c:
A heap based buffer overflow vulnerability exits in GNU LibreDWG 0.10 via bit_read_B ../../src/bits.c:135. Rated high se
A heap based buffer overflow vulnerability exits in GNU LibreDWG 0.10 via bit_search_sentinel ../../src/bits.c:1985. Rat
A heap based buffer overflow vulnerability exits in GNU LibreDWG 0.10 via: read_2004_section_appinfo ../../src/decode.c:
A heap based buffer overflow vulnerability exits in GNU LibreDWG 0.10 via bit_read_RC ../../src/bits.c:318. Rated high s
A heap based buffer overflow vulnerability exists in GNU LibreDWG 0.10 via read_2004_section_revhistory ../../src/decode
A heap based buffer overflow vulnerability exists in GNU LibreDWG 0.10 via read_2004_compressed_section ../../src/decode
EUVD-2026-102294
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB