Node.js 프로젝트가 21일 26.x, 24.x, 22.x 세 버전 분기의 보안 업데이트를 내놨다. 수정 버전은 각각 26.12.1, 24.22.1, 22.23.4다.
Node.js 프로젝트는 공지에서 이번에 취약점 10건을 공개했다고 밝혔다. 등급별로는 고위험 4건, 중위험 3건, 저위험 3건이다. 버전 분기마다 영향받는 범위가 달라, 사용 중인 버전이 어느 항목에 걸리는지는 개별 점검이 필요하다.
Node.js는 서버에서 자바스크립트를 실행하는 런타임으로, 통상 웹 서비스 백엔드와 개발 도구에 널리 쓰인다. 런타임 자체의 결함은 그 위에서 돌아가는 서비스 전반에 영향을 줄 수 있다.
가장 눈에 띄는 항목은 고위험 취약점 CVE-2026-111497이다. 압축 방식 중 하나인 Brotli의 해독기(디코더)에서 범위를 벗어난 쓰기가 발생하는 결함으로, 원격 코드 실행(RCE)으로 이어질 수 있다. 세 버전 분기가 모두 영향권이다. 원격 코드 실행은 공격자가 멀리서 피해 시스템에 자신이 만든 명령을 돌리는 것을 뜻한다.
나머지 고위험 항목은 두 가지다. 하나는 도메인 이름 조회(DNS) 과정에서 널(null) 문자를 처리하는 방식의 문제이고, 다른 하나는 TLS 인증서의 호스트명 검증을 우회할 수 있는 결함이다. 호스트명 검증은 접속하려는 서버가 인증서에 적힌 서버와 같은지 확인하는 절차다.
이번 업데이트에는 지속 연결(persistent connection) 응답 처리, 난수 캐시 중복, 권한 모델 관련 문제 수정도 담겼다. 함께 쓰이는 구성 요소인 c-ares, OpenSSL, Undici도 갱신됐다.
Node.js 프로젝트는 지원이 끝난 버전도 보안 취약점의 영향을 받을 수 있다고 짚으면서, 사용자에게 지원 중인 최신 버전을 쓰라고 권고했다. 수정 버전이 세 분기에만 나온 만큼, 지원 종료 버전을 쓰는 환경은 분기를 올리지 않고는 공식 수정을 받기 어렵다.
서버 쪽 실행 환경의 경보는 앞서 PHP에서도 나왔다. PHP는 인증 없이 원격 코드 실행이 가능한 심각한 취약점 두 건을 고쳤고, 수정 버전은 8.5.12, 8.4.27, 8.3.36, 8.2.35다. PHP 측은 즉시 업그레이드를 촉구했다.
이번 취약점이 가상자산 거래소나 지갑 서비스에서 실제로 악용됐다는 보도나 발표는 확인되지 않았다. 서비스 운영자는 우선 자신이 쓰는 Node.js 버전을 확인해 해당 분기의 수정 버전과 비교할 필요가 있다.
<Copyright ⓒ TokenPost, unauthorized reproduction and redistribution prohibited>
Most Popular