Hi,
It seems that there exists an integer overflow vulnerability in crrcsim. When a victim runs crrcsim with a malicious rgb file, arbitrary code may be executed in the victim's system.
unsigned char read_rgbimage(const char name, ...) {
...
if (inputshort == 0x01da) {
...
if (inputchar == 0) {
...
if (inputshort == 3) {
inputshort = getshort(imagein); // may become a arbitrary large number
w = inputshort;
inputshort = getshort(imagein); // may become a arbitrary large number
h = inputshort;
image = (unsigned char*)malloc(w * h * 4 * sizeof(unsigned char)); // unintended small size due to integer overflow
temp = (unsigned char*)malloc(w * h * sizeof(unsigned char)); // unintended small size due to integer overflow
...
}
...
}