Skip to main content

GNU LibreDWG EUVDEUVD-2026-102294

| CVE-2026-111167 MEDIUM
Out-of-bounds Read (CWE-125)
2026-10-15 VulnCheck
6.9
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Craft DWG with oversized schdat type value
  2. Delivery
    Deliver file to victim or processing service
  3. Exploit
    Victim opens file in LibreDWG app
  4. Execution
    acds_private() uses unchecked schema index
  5. Persist
    Out-of-bounds read past static table
  6. Impact
    Process 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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

libredwg 0 ≤0.14.8612

Affected Packages

euvd libredwg no fix

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

Vendor (VulnCheck) PRIMARY 6.9 MEDIUM
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
vuln.today AI 6.1 MEDIUM

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.

3.1 AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:H
4.0 AV:L/AC:L/AT:N/PR:N/UI:P/VC:L/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Local
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
Passive
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

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

EPSS Score
0.1%
Top 98% exploitable
Prevalence
Low
niche open-source DWG library; used mainly by CAD tools and converters
Data Quality
6 sources
Confidence: High

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.1%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation
None
System Exposure· derived
Small
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

34
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +34
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

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.

CVE-2022-35164 CRITICAL POC
9.8 Aug 18

LibreDWG v0.12.4.4608 & commit f2dea29 was discovered to contain a heap use-after-free via bit_copy_chain. Rated critica

CVE-2021-28237 CRITICAL POC
9.8 Dec 02

LibreDWG v0.12.3 was discovered to contain a heap-buffer overflow via decode_preR13. Rated critical severity (CVSS 9.8),

CVE-2020-21844 HIGH POC
8.8 May 17

GNU LibreDWG 0.10 is affected by: memcpy-param-overlap. Rated high severity (CVSS 8.8), this vulnerability is remotely e

CVE-2019-9775 CRITICAL POC
9.1 Mar 14

An issue was discovered in GNU LibreDWG 0.7 and 0.7.1645. Rated critical severity (CVSS 9.1), this vulnerability is remo

CVE-2019-9774 CRITICAL POC
9.1 Mar 14

An issue was discovered in GNU LibreDWG 0.7 and 0.7.1645. Rated critical severity (CVSS 9.1), this vulnerability is remo

CVE-2020-21833 HIGH POC
8.8 May 17

A heap based buffer overflow vulnerability exits in GNU LibreDWG 0.10 via: read_2004_section_classes ../../src/decode.c:

CVE-2020-21841 HIGH POC
8.8 May 17

A heap based buffer overflow vulnerability exits in GNU LibreDWG 0.10 via bit_read_B ../../src/bits.c:135. Rated high se

CVE-2020-21840 HIGH POC
8.8 May 17

A heap based buffer overflow vulnerability exits in GNU LibreDWG 0.10 via bit_search_sentinel ../../src/bits.c:1985. Rat

CVE-2020-21838 HIGH POC
8.8 May 17

A heap based buffer overflow vulnerability exits in GNU LibreDWG 0.10 via: read_2004_section_appinfo ../../src/decode.c:

CVE-2020-21843 HIGH POC
8.8 May 17

A heap based buffer overflow vulnerability exits in GNU LibreDWG 0.10 via bit_read_RC ../../src/bits.c:318. Rated high s

CVE-2020-21842 HIGH POC
8.8 May 17

A heap based buffer overflow vulnerability exists in GNU LibreDWG 0.10 via read_2004_section_revhistory ../../src/decode

CVE-2020-21832 HIGH POC
8.8 May 17

A heap based buffer overflow vulnerability exists in GNU LibreDWG 0.10 via read_2004_compressed_section ../../src/decode

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy