錯(cuò)誤1:
int a[5];
a[5] = 0;
錯(cuò)誤2:
int a[5];
int b = user_controlled_value;
a[b] = 3;
關(guān)聯(lián)漏洞:
高風(fēng)險(xiǎn)-內(nèi)存破壞
任意地址寫會導(dǎo)致嚴(yán)重的安全隱患,可能導(dǎo)致代碼執(zhí)行。因此,在編碼時(shí)必須校驗(yàn)寫入的地址。
錯(cuò)誤:
void Write(MyStruct dst_struct) {
char payload[10] = { 0 };
memcpy(dst_struct.buf, payload, sizeof(payload));
}
int main() {
MyStruct dst_stuct;
dst_stuct.buf = (char*)user_controlled_value;
Write(dst_stuct);
return 0;
}
關(guān)聯(lián)漏洞:
高風(fēng)險(xiǎn)-內(nèi)存破壞
更多建議: