Security
[systemhacking] Off-by-one
이무쿤
2021. 11. 11. 16:21
반응형
Off-by-one 취약점은 경계 검사에서 하나의 오차가 있을 때 발생하는 취약점.
버퍼의 경계 계산 혹은 반복문의 횟수 계산 시 < 대신 <= 을 쓰거나, 0부터 시작하는 인덱스 고려하지 못하는 경우 발생.
#include <stdio.h>
void copy_buf(char *buf, int sz) {
char temp[16];
for(i = 0; i <= sz; i++)
temp[i] = buf[i];
}
int main(void) {
char buf[16];
read(0, buf, 16);
copy_buf(buf, sizeof(buf));
}
size + 1 만큼 반복이 돌면서 off-by-one 발생.
반응형