피드로 돌아가기
Node.js BlogSecurity
원문 읽기
Node.js 16.4.1이 libuv 업그레이드와 Windows 설치 프로그램 권한 설정 개선으로 2개 중고 심각도 보안 취약점 해결
Node.js 16.4.1 (Current)
AI 요약
Context
Node.js dns 모듈의 lookup() 함수가 libuv의 uv__idna_toascii() 함수 취약점으로 인해 범위를 벗어난 메모리 읽기(out-of-bounds read)에 노출되어 정보 유출 또는 크래시를 야기할 수 있다. Windows 플랫폼에서 Node.js 설치 디렉토리의 부적절한 권한 설정으로 인해 공격자가 PATH 하이재킹 또는 DLL 하이재킹을 통한 로컬 권한 상승 공격을 수행할 수 있다.
Technical Solution
- libuv를 최신 버전으로 업그레이드: CVE-2021-22918 (uv__idna_toascii() 함수의 범위 초과 읽기 취약점) 해결
- Windows 설치 프로그램의 설치 디렉토리 권한 재설정: CVE-2021-22921 (PATH 및 DLL 하이재킹 공격 벡터) 제거
- 다중 플랫폼 바이너리 배포: Windows(32/64-bit 설치 프로그램 및 바이너리), macOS(Intel/Apple Silicon), Linux(x64/ARM/PPC/s390x), AIX 아키텍처 지원
- 암호화 서명 검증 제공: PGP 디지털 서명과 SHA256 해시값을 통한 다운로드 무결성 확인 가능
Key Takeaway
보안 취약점은 직접 작성한 코드뿐 아니라 의존성 라이브러리(libuv)와 설치 단계의 권한 설정까지 포괄적으로 감시해야 한다. 버전 업데이트 시 배포 가능한 모든 플랫폼과 아키텍처에 대해 일관된 보안 패치가 적용되는지 확인하는 것이 필수다.
실천 포인트
Node.js를 사용하는 운영 팀은
1
6.
4.1 이상으로 업그레이드하여 dns 모듈 사용 시 범위 초과 읽기 공격과 Windows 환경에서의 로컬 권한 상승 위협을 제거할 수 있다. Windows 배포 시스템을 운영 중이라면 새 버전 설치 프로그램을 통해 설치 디렉토리의 권한 설정이 개선된 상태로 배포되도록 재구성해야 한다.