Fix bounds check in OLE2 decryption (1.0.8)
| ... | ... |
@@ -22,7 +22,7 @@ string(TIMESTAMP TODAY "%Y%m%d") |
| 22 | 22 |
set(VERSION_SUFFIX "") |
| 23 | 23 |
|
| 24 | 24 |
project( ClamAV |
| 25 |
- VERSION "1.0.7" |
|
| 25 |
+ VERSION "1.0.8" |
|
| 26 | 26 |
DESCRIPTION "ClamAV open source email, web, and end-point anti-virus toolkit." ) |
| 27 | 27 |
|
| 28 | 28 |
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})
|
| ... | ... |
@@ -3,6 +3,25 @@ |
| 3 | 3 |
Note: This file refers to the official packages. Things described here may |
| 4 | 4 |
differ slightly from third-party binary packages. |
| 5 | 5 |
|
| 6 |
+## 1.0.8 |
|
| 7 |
+ |
|
| 8 |
+ClamAV 1.0.8 is a patch release with the following fixes: |
|
| 9 |
+ |
|
| 10 |
+- [CVE-2025-20128](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2025-20128): |
|
| 11 |
+ Fixed a possible buffer overflow read bug in the OLE2 file parser that could |
|
| 12 |
+ cause a denial-of-service (DoS) condition. |
|
| 13 |
+ |
|
| 14 |
+ This issue was introduced in version 1.0.0 and affects all currently |
|
| 15 |
+ supported versions. It will be fixed in: |
|
| 16 |
+ - 1.4.2 |
|
| 17 |
+ - 1.0.8 |
|
| 18 |
+ |
|
| 19 |
+ Thank you to OSS-Fuzz for identifying this issue. |
|
| 20 |
+ |
|
| 21 |
+- ClamOnAcc: Fixed an infinite loop when a watched directory does not exist. |
|
| 22 |
+ This is a backport of a fix from ClamAV 1.3.0. |
|
| 23 |
+ - [GitHub pull request](https://github.com/Cisco-Talos/clamav/pull/1426) |
|
| 24 |
+ |
|
| 6 | 25 |
## 1.0.7 |
| 7 | 26 |
|
| 8 | 27 |
ClamAV 1.0.7 is a patch release with the following fixes: |
| ... | ... |
@@ -171,6 +171,7 @@ enum FunctionalityLevels {
|
| 171 | 171 |
FUNC_LEVEL_1_0_5 = 165, /**< LibClamAV release 1.0.5 */ |
| 172 | 172 |
FUNC_LEVEL_1_0_6 = 166, /**< LibClamAV release 1.0.6 */ |
| 173 | 173 |
FUNC_LEVEL_1_0_7 = 167, /**< LibClamAV release 1.0.7 */ |
| 174 |
+ FUNC_LEVEL_1_0_8 = 168, /**< LibClamAV release 1.0.8 */ |
|
| 174 | 175 |
}; |
| 175 | 176 |
|
| 176 | 177 |
/** |
| ... | ... |
@@ -1835,7 +1835,7 @@ static cl_error_t handler_otf_encrypted(ole2_header_t *hdr, property_t *prop, co |
| 1835 | 1835 |
} |
| 1836 | 1836 |
bytesRead += blockSize; |
| 1837 | 1837 |
|
| 1838 |
- for (; writeIdx <= (leftover + bytesToWrite) - 16; writeIdx += 16, decryptDstIdx += 16) {
|
|
| 1838 |
+ for (; writeIdx + 16 <= leftover + bytesToWrite; writeIdx += 16, decryptDstIdx += 16) {
|
|
| 1839 | 1839 |
rijndaelDecrypt(rk, nrounds, &(buff[writeIdx]), &(decryptDst[decryptDstIdx])); |
| 1840 | 1840 |
} |
| 1841 | 1841 |
|