CVE:CVE-2007-3528
CNNVD:CNNVD-200707-017
"Disk ARchive(dar)是用于备份目录树和文件的shell命令。
Disk ARchive Blowfish-CBC加密方式的实现上存在漏洞，可能导致不安全的加密。
dar中所使用的Blowfish加密方式中可能会出现IV冲突，有漏洞的代码位于dar-2.3.2/src/libdar/crypto.cpp文件的178-194行：
178: void blowfish::make_ivec(const infinint & ref, unsigned char ivec[8])
179: {
180:     infinint upper = ref >> 32;
181:     U_32 high = 0, low = 0;
182:
183:     high = upper % (U_32)(0xFFFF); // for bytes (high weight)
184:     low = ref % (U_32)(0xFFFF); // for bytes (lowest weight)
185:
186:     ivec[0] = low % 8;
187:     ivec[1] = (low >> 8) % 8;
188:     ivec[2] = (low >> 16) % 8;
189:     ivec[3] = (low >> 24) % 8;
190:     ivec[4] = high % 8;
191:     ivec[5] = (high >> 8) % 8;
192:     ivec[6] = (high >> 16) % 8;
193:     ivec[7] = (high >> 24) % 8;
194: }
make_ivec以不依赖于平台的方式序列化64位的dar块编号，但丢弃了大多数位的块编号，导致每8个dar块和略小于12位的IV长度就会出现IV冲突。如果使用了默认的10240字节的块大小的话，每81920字节和小于4096个可能值的IV空间就会出现一次IV冲突，这严重弱化了Blowfish-CBC加密的实现。"
solution:Upgrade dar dar to a higher version than 2.3.3,and avoid the version (,2.3.3]