🇰🇷 한글 설명
Node.js의 권한 모델 결함으로 인해 읽기 권한만 있는 프로세스가 `futimes()`를 사용하여 파일의 액세스 및 수정 시간을 변경할 수 있습니다. `utimes()`와 달리 `futimes()`는 예상되는 쓰기 권한 검사를 수행하지 않아 읽기 전용 디렉토리에서도 파일 메타데이터를 수정할 수 있습니다. 이는 로그의 신뢰성을 떨어뜨리고 활동 기록을 은폐하는 데 악용될 수 있습니다.
💡 쉬운 설명
파일을 읽기만 할 수 있는 권한을 가진 프로그램이 파일의 생성 날짜나 수정 날짜를 몰래 바꿀 수 있는 문제입니다. 이로 인해 파일이 언제 수정되었는지 기록을 조작하여 범죄 흔적을 숨길 위험이 있습니다.
🇺🇸 원문 (English)
A flaw in Node.js's permission model allows a file's access and modification timestamps to be changed via `futimes()` even when the process has only read permissions. Unlike `utimes()`, `futimes()` does not apply the expected write-permission checks, which means file metadata can be modified in read-only directories. This behavior could be used to alter timestamps in ways that obscure activity, reducing the reliability of logs. This vulnerability affects users of the permission model on Node.js v20, v22, v24, and v25.
📍 영향받는 시스템
Node.js v20, v22, v24, v25 (Permission Model 사용 시)
⚔️ 공격 벡터
읽기 권한만 있는 프로세스에서 `futimes()` 함수를 호출하여 파일의 타임스탬프를 조작
🛡️ 대응 방법
Node.js를 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 Node.js 버전이 취약한 버전(v20, v22, v24, v25)에 해당하는지 확인하십시오.
node -e 'console.log(process.versions)'