|
| 1 | +Release 1.5.2: 6th October 2023 |
| 2 | +------------------------------- |
| 3 | + |
| 4 | +*** SECURITY FIXES *** |
| 5 | + |
| 6 | +This release contains multiple bug fixes, including a couple |
| 7 | +buffer overruns that could corrupt memory when used in specific |
| 8 | +scenarios. These have not been observed with real data, but could |
| 9 | +represent an attack vector for a malicious user. (We know of no |
| 10 | +exploit.) |
| 11 | + |
| 12 | + |
| 13 | +Changes |
| 14 | + |
| 15 | +- The range coder has been extended to do bounds checking if the |
| 16 | + new RC_SetOutputEnd() is called. This has a small performance hit |
| 17 | + for the encoder, depending on compiler, but tests showed within 10% |
| 18 | + at worst. |
| 19 | + |
| 20 | +Bug fixes |
| 21 | + |
| 22 | +- Fix write-buffer overruns in fqzcomp and name tokeniser. |
| 23 | + |
| 24 | + SECURITY ISSUE: FQZComp could overflow the computed maximum growth |
| 25 | + size, causing writes beyond the ends of the allocated memory. This |
| 26 | + is triggered by many very small 1bp reads. Fixed the maximum |
| 27 | + bounds for compressed data. |
| 28 | + |
| 29 | + SECURITY ISSUE: The name tokeniser using the maximum number of |
| 30 | + tokens (128) would erroneously write a 129th token. This is a |
| 31 | + restricted overflow of a few bytes. |
| 32 | + |
| 33 | + (PR#97, reported by Shubham Chandak) |
| 34 | + |
| 35 | +- Fix an maximum 8-byte read overflow in the AVX2 rans decoder. |
| 36 | + SECURITY ISSUE: This was only present when using gcc. |
| 37 | + (PR#100, reported by Rob Davies) |
| 38 | + |
| 39 | +- The rANS Order-1 SSE4 decoder could decode incorrectly. |
| 40 | + When a single symbol only occurs and we're using 12-bit freqs, the |
| 41 | + frequency of 4096 was interpreted as freq 0. This only happens in |
| 42 | + the non-SIMD tidy-up stage at the end of the decode, so at worst the |
| 43 | + final 31 bytes may be incorrect. (PR#102) |
| 44 | + |
| 45 | +- Fixed a 1-byte heap read-buffer overflow. Existed since 6a87ead2 |
| 46 | + (Oct 2021). Low severity security due to size and high likelihood |
| 47 | + it's just malloc meta-data. (PR#95; OSS-Fuzz 62270) |
| 48 | + |
| 49 | +- rans_compress_4x16 now works on zero length input. |
| 50 | + Previously this was giving divide-by-zero errors. |
| 51 | + (PR#101, reported by Shubham Chandak) |
| 52 | + |
| 53 | +- Remove asserts which caused warnings about unused variables when |
| 54 | + building with -DNDEBUG. |
| 55 | + |
| 56 | +- Fix ARM builds when HWCAP_ASIMD is missing (on Conda) (PR#91) |
| 57 | + |
| 58 | +- Improve FreeBSD CI testing |
| 59 | + |
| 60 | +- Fix undefined behaviour from signed bit-shifting (PR#90). |
| 61 | + |
| 62 | + |
1 | 63 | Release 1.5.1: 19th July 2023 |
2 | 64 | ----------------------------- |
3 | 65 |
|
|
0 commit comments