위험한 tmpnam 사용

위험한 tmpnam 사용

설명

tmpnam 계열 API는 예측 가능한 임시 파일 이름을 만들 수 있으며 파일 생성과 분리되어 경쟁 조건이 생깁니다.

잠재적 영향

  • 심볼릭 링크 공격, 임의 파일 덮어쓰기, 정보 노출이 발생할 수 있습니다.

해결 방법

mkstemp처럼 파일을 원자적으로 생성하는 API를 사용하세요.

예시

변경 전

c
char name[L_tmpnam];
tmpnam(name);

변경 후

c
char name[] = "/tmp/app.XXXXXX";
int fd = mkstemp(name);

설명:

  • 변경 전: 임시 이름만 생성해 이후 파일 생성 사이에 경쟁 조건이 생깁니다.
  • 변경 후: 이름 선택과 파일 생성을 원자적으로 수행합니다.

참조