Description
libtta through 2.3 contains a stack out-of-bounds read and write vulnerability in tta_decoder_process_stream() and tta_decoder_process_frame() because header checks never reject a zero channel count. Attackers can supply a crafted .tta file declaring zero channels so decorrelation accesses cache[-1] with stream-derived values, corrupting stack memory in decoding applications.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| True Audio | libtta | ≤ 2.3 | — |
References
- https://hackmd.io/@haindpwn/libtta-seek-table-count-overflow-oob-write technical-description exploit
- https://github.com/gchudov/libtta/blob/af8dc48ce859e98842ab1a3eec98416d22a5199e/libtta.c#L618 technical-description
- https://github.com/gchudov/libtta/blob/af8dc48ce859e98842ab1a3eec98416d22a5199e/libtta.c#L715-L730 technical-description
- https://sourceforge.net/projects/tta/ product
- https://github.com/gchudov/libtta product
- VulnCheck Advisory: libtta through 2.3 Stack Out-of-Bounds Write via Zero Channel Count third-party-advisory