[프라임경제] 'PHP'에 이어 웹 서버와 백엔드 개발에 쓰이는 'Node.js'에서도 보안 취약점이 발견됐다. 공격자가 조작된 압축 데이터를 이용해 서버 장애를 일으키거나 원격으로 악성 코드를 실행할 가능성이 있어 기업들의 신속한 보안 대응이 요구된다.

'PHP'에 이어 'Node.js'에서도 보안 취약점이 발견됐다. ⓒ 챗GPT 생성 이미지
26일 보안업계에 따르면 Node.js 프로젝트는 지난 21일 공식 보안 공지를 통해 Node.js에 포함된 브로틀리(Brotli) 압축 해제 모듈에서 원격 코드 실행을 허용할 수 있는 취약점(CVE-2026-111497)이 발견됐다고 밝혔다.
Node.js는 자바스크립트로 작성한 프로그램을 서버 등에서 실행하도록 해주는 소프트웨어다.
이번 취약점은 '노드투쉘(Node2Shell)'로 불린다. 조작된 압축 데이터를 처리하다 허용된 메모리 영역 밖에 데이터를 쓰면서 프로그램 메모리가 손상되는 방식이다.
공격자는 별도 인증 절차 없이 조작된 데이터(Brotli)를 전송해 서버를 다운시키거나 메모리 노출, 원격 코드 실행을 통해 서버 제어권을 장악할 수 있다.
다만 모든 Node.js 서버가 공격에 노출되는 것은 아니다. 외부에서 전달된 악성 압축 데이터가 취약한 압축 해제 기능까지 도달할 수 있는지가 주요 변수다.
해당 취약점을 제보한 연구진은 오픈AI 코덱스 보안팀이다. 보안업체 아이키도 시큐리티에 따르면 오픈AI는 당시 브로틀리 압축 해제 과정의 결함을 발견했으며, 문제를 해결하는 소스코드 수정이 이뤄졌다.
Node.js 공식 기준 이번 취약점의 위험도는 '높음'이다. 영향을 받는 22.23.4, 24.22.1, 26.12.1 버전에 대한 보안 패치를 배포했다.
한국인터넷진흥원(KISA)도 해당 취약점에 대한 보안 공지를 내고, 영향을 받는 Node.js 버전의 사용자들에게 최신 보안 업데이트 적용을 권고했다.
국내 보안업체 티오리는 이날 취약점 노드투쉘을 자체 재현·검증하고 기업·기관을 위한 대응 방안과 무료 온라인 진단 서비스를 공개했다.
티오리는 공식 지원이 종료된 Node.js 20 이하 버전을 사용하는 경우 운영체제 배포판이나 장기지원 업체의 패치 제공 여부를 확인하도록 안내했다.
또한 즉시 업데이트하기 어려운 환경을 위한 임시 대응책도 공개했다. 엔진엑스(Nginx) 등 서버 앞단에서 요청을 받아 전달하는 소프트웨어와 애플리케이션에서 공격 경로를 차단하도록 하는 방안이다.
보안업계에서는 이번 취약점을 계기로 웹 서비스 운영 환경 전반의 점검 필요성이 커지고 있다.
PHP에 이어 Node.js에서도 보안 결함이 드러난 만큼, 개별 애플리케이션의 코드뿐 아니라 서비스의 기반이 되는 실행 환경과 의존 소프트웨어까지 정기적으로 업데이트하는 보안 관리 체계가 중요해질 전망이다.