Skip to content

Libclamav: harden XLM drawing group length checks#1707

Open
val-ms wants to merge 1 commit intoCisco-Talos:mainfrom
val-ms:CLAM-2935-xlm
Open

Libclamav: harden XLM drawing group length checks#1707
val-ms wants to merge 1 commit intoCisco-Talos:mainfrom
val-ms:CLAM-2935-xlm

Conversation

@val-ms
Copy link
Copy Markdown
Contributor

@val-ms val-ms commented Apr 9, 2026

The XLM drawing group parser grew a size_t length with BIFF record sizes before reallocating and copying the new chunk. That pattern looked like an integer overflow candidate, but the reported heap overflow is not reachable in practice because every growth step is immediately bounded by cli_max_realloc() and the BIFF record length cap, so the accumulated length cannot approach SIZE_MAX before the allocation limit stops processing.

Add explicit pre-addition overflow checks at the two drawing group growth sites anyway. This keeps the existing control flow while making the arithmetic safety guarantee explicit and easier to audit.

Credit: rinto

CLAM-2935

The XLM drawing group parser grew a size_t length with BIFF record
sizes before reallocating and copying the new chunk. That pattern
looked like an integer overflow candidate, but the reported heap
overflow is not reachable in practice because every growth step is
immediately bounded by cli_max_realloc() and the BIFF record length
cap, so the accumulated length cannot approach SIZE_MAX before the
allocation limit stops processing.

Add explicit pre-addition overflow checks at the two drawing group
growth sites anyway. This keeps the existing control flow while
making the arithmetic safety guarantee explicit and easier to audit.

Credit: rinto

CLAM-2935
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant