LibreDWG: const-input mutation and crash in bit_TV_to_utf8 error handling
Impact
LibreDWG is a free C library to read and write DWG files. Prior to 0.14, bit_TV_to_utf8() in src/bits.c can write to the caller-provided src buffer despite accepting const input. On an iconv() error other than E2BIG, the function frees its output buffer and passes the original input alias to bit_u_expand(), which expands or shrinks Unicode and multibyte escape sequences in place. If the input is a string literal, read-only mapping, or other immutable buffer, the write can cause a segmentation fault and denial of service; mutable caller-owned input can be unexpectedly modified before being…
Source excerpt · GitHub_MAffected packages
Affected products
Vendor version evidence. Product records are separate from automatic dependency matching.
LibreDWG · GitHub_M
libredwg
1 range
LibreDWG · GitHub_M
libredwg
Compare with this publisher’s ranges. This does not inspect your installation.
affected
< 0.14
Other versions: unknown
Original source description
LibreDWG is a free C library to read and write DWG files. Prior to 0.14, bit_TV_to_utf8() in src/bits.c can write to the caller-provided src buffer despite accepting const input. On an iconv() error other than E2BIG, the function frees its output buffer and passes the original input alias to bit_u_expand(), which expands or shrinks Unicode and multibyte escape sequences in place. If the input is a string literal, read-only mapping, or other immutable buffer, the write can cause a segmentation fault and denial of service; mutable caller-owned input can be unexpectedly modified before being returned. This affects applications that expose the conversion API to untrusted input under those conditions. Direct file-triggered exploitability through normal DWG decode/export paths remains unconfirmed because many TV strings are heap allocated by bit_read_TV(). This issue is fixed in version 0.14.
Inside the record
Evidence available
Describes the evidence in this view, not whether the product is safe.
Original records
CVE-2026-54610View the latest unmodified CVE JSON from the official source. It may be newer than this imported page.
cve.new JSON →Underlying weaknesses
The source’s classification of what caused the vulnerability.
Contributing organizations · 1
Assigning organization
What changed
Follow changesLarge field values are marked as truncated previews. Original source snapshots remain retained.