Browse code

Merge pull request #18 from cisco-sbg/CLAM-2696-ole2-decrypt-overread-1.0

Fix bounds check in OLE2 decryption (1.0.8)

Micah Snyder authored on 2025/01/18 04:06:42
Showing 7 changed files
... ...
@@ -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})
... ...
@@ -10,7 +10,7 @@ properties(
10 10
         parameters(
11 11
             [
12 12
                 string(name: 'VERSION',
13
-                       defaultValue: '1.0.7',
13
+                       defaultValue: '1.0.8',
14 14
                        description: 'ClamAV version string'),
15 15
                 string(name: 'FRAMEWORK_BRANCH',
16 16
                        defaultValue: '1.0',
... ...
@@ -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
 
... ...
@@ -73,7 +73,7 @@
73 73
  * in re-enabling affected modules.
74 74
  */
75 75
 
76
-#define CL_FLEVEL 167
76
+#define CL_FLEVEL 168
77 77
 #define CL_FLEVEL_DCONF CL_FLEVEL
78 78
 #define CL_FLEVEL_SIGTOOL CL_FLEVEL
79 79
 
... ...
@@ -6,8 +6,8 @@
6 6
 #define REPO_VERSION VERSION
7 7
 #endif
8 8
 
9
-#define RES_VER_Q 1,0,7,0
10
-#define RES_VER_S "ClamAV 1.0.7"
9
+#define RES_VER_Q 1,0,8,0
10
+#define RES_VER_S "ClamAV 1.0.8"
11 11
 
12 12
 VS_VERSION_INFO VERSIONINFO
13 13
     FILEVERSION RES_VER_Q