Lucene search

K
osvGoogleOSV:RUSTSEC-2019-0010
HistoryJul 04, 2019 - 12:00 p.m.

MultiDecoder::read() drops uninitialized memory of arbitrary type on panic in client code

2019-07-0412:00:00
Google
osv.dev
4

0.004 Low

EPSS

Percentile

73.9%

Affected versions of libflate have set a field of an internal structure with a generic type to an uninitialized value in MultiDecoder::read() and reverted it to the original value after the function completed. However, execution of MultiDecoder::read() could be interrupted by a panic in caller-supplied Read implementation. This would cause drop() to be called on uninitialized memory of a generic type implementing Read.

This is equivalent to a use-after-free vulnerability and could allow an attacker to gain arbitrary code execution.

The flaw was corrected by aborting immediately instead of unwinding the stack in case of panic within MultiDecoder::read(). The issue was discovered and fixed by Shnatsel.

CPENameOperatorVersion
libflatege0.1.14
libflatelt0.1.25

0.004 Low

EPSS

Percentile

73.9%