피드로 돌아가기
Node.js BlogBackend
원문 읽기
Node.js 재단이 OpenSSL 1.1.1의 EOL(2023년 9월 11일) 보안 지원 부족 문제를 해결하기 위해 Node.js 16의 지원 종료 일정을 7개월 앞당겨 2024년 4월에서 2023년 9월로 변경
Bringing forward the End-of-Life Date for Node.js 16
AI 요약
Context
Node.js 16은 OpenSSL 3을 포함할 계획이었으나 릴리스 타이밍 문제로 OpenSSL 1.1.1로 출시되었다. OpenSSL 1.1.1의 지원이 2023년 9월 11일에 종료되는데, Node.js 16의 기존 EOL은 2024년 4월로 설정되어 있어 마지막 7개월간 OpenSSL 취약점으로부터 보호받지 못하는 상황이 발생했다.
Technical Solution
- OpenSSL 1.1.1에서 OpenSSL 3로의 인-릴리스 전환 거절: Node.js 17/18에서 보고된 호환성 문제와 테스트 스위트 조정 필요성으로 인해 높은 위험도로 판단하여 거절
- CentOS Stream 8의 OpenSSL 1.1.1 백포트 옵션 거절: 알고리즘 제거 등 변경사항으로 인한 애플리케이션 호환성 문제 발생 가능성으로 거절
- Node.js 16의 End-of-Life 날짜를 2024년 4월에서 2023년 9월 11일로 앞당김: OpenSSL 1.1.1의 EOL과 동일하게 설정하여 보안 지원 부재 기간 제거
- Node.js 8 선례 적용: 이전에 Node.js 8을 OpenSSL 1.0.2 EOL에 맞춰 4개월 일찍 지원 종료한 사례를 기반으로 동일한 접근 방식 채택
Key Takeaway
의존성의 지원 일정이 메인 프로젝트보다 앞당겨질 경우, 인-릴리스 업그레이드의 호환성 위험보다는 라이프사이클을 정렬하는 것이 보안 노출 최소화 관점에서 더 합리적일 수 있다는 원칙을 보여준다.
실천 포인트
장기 지원(LTS) 버전의 런타임을 관리하는 팀에서 주요 의존성(OpenSSL, libc 등)의 지원 일정이 메인 런타임의 계획된 EOL보다 먼저 종료될 경우, 마이너 버전 내 의존성 업그레이드를 통한 호환성 해결보다 EOL 일정 자체를 의존성과 동일하게 앞당기는 것이 사용자 환경의 보안 위험을 최소화할 수 있다.