설명
예측 가능한 임시 파일 이름 API는 경쟁 조건과 심볼릭 링크 공격에 노출될 수 있습니다.
잠재적 영향
- 임의 파일 덮어쓰기, 정보 노출, 권한 상승이 발생할 수 있습니다.
해결 방법
이름만 생성하는 API 대신 파일을 원자적으로 생성하고 여는 mkstemp 또는 플랫폼별 안전 API를 사용하세요. 반환된 파일 디스크립터를 사용하고, 실패를 처리한 뒤 사용이 끝나면 파일을 닫고 삭제하세요.
예시
변경 전
c
char name[] = "/tmp/app.XXXXXX";
mktemp(name);
FILE *f = fopen(name, "w");
변경 후
c
char name[] = "/tmp/app.XXXXXX";
int fd = mkstemp(name);
설명:
- 변경 전:
mktemp로 이름만 만든 뒤 별도로 파일을 열어 경쟁 조건이 생깁니다. - 변경 후: 임시 파일을 원자적으로 생성합니다.