기업·관리자용서버·기업 소프트웨어

Node.js 보안 업데이트: 주소 해석과 인증서 확인 문제

Node.js 보안 업데이트 (2026.10.23)

해설 2026.10.30 · 보호나라 게시 · 우리 확인 2026.10.30 · 출처 KISA 보호나라 「Node.js 제품 보안 업데이트 권고」

한 줄 요약 Node.js에서 검사한 주소와 실제 처리하는 주소가 달라질 수 있는 문제가 발견됐어요. 사용 중인 버전 계열에 맞춰 보안 업데이트를 적용해요.

무슨 일이 생겼나요

KISA 보호나라는 2026-10-23 Node.js 보안 업데이트를 권고했어요. 이번 문제는 출입 명부에서 확인한 이름과 실제로 문을 통과하는 사람의 이름이 달라지는 상황에 비유할 수 있어요. 프로그램이 접속할 주소를 검사해도, 뒤이은 주소 조회나 연결 상대 확인에서 그 주소를 다르게 해석하면 앞선 검사의 의미가 약해질 수 있어요.

이번 권고에는 CVE-2026-105482, CVE-2026-105483, CVE-2026-106069가 포함돼요. 도메인 이름을 인터넷 주소로 바꾸는 과정에서 이름 일부가 잘리는 문제와, 암호화 연결에서 상대의 신원을 확인할 때 주소를 잘못 판단하는 문제가 있어요. 공통으로 살펴볼 부분은 ‘검사한 주소와 실제로 처리한 주소가 일치하는가’예요.

해결 기준은 사용 중인 Node.js 버전 계열에 따라 달라요. 22 계열은 22.23.4 이상, 24 계열은 24.22.1 이상, 26 계열은 26.12.1 이상으로 업데이트해야 해요. CVE-2026-105483의 영향 대상으로는 24 계열과 26 계열이 명시돼 있어요. CISA KEV 에는 아직 등재되지 않았다.

기술적으로는 (초급 개발자용)

CVE-2026-105482는 CWE-284, 즉 부적절한 접근 제어로 분류돼요. 접근 제어는 허용한 대상에만 접근하도록 구분하는 장치예요. 여기서는 도메인 이름에 NUL이라는 문자열 종료 의미의 특수 문자가 들어가면, DNS 조회 과정에서 그 문자 뒤의 이름이 잘릴 수 있어요. DNS는 도메인 이름에 대응하는 인터넷 주소 등의 정보를 찾는 체계예요. 애플리케이션이 전체 이름을 허용 목록과 대조한 뒤 조회하더라도, 실제 조회는 앞부분만을 대상으로 이뤄질 수 있고 오류 없이 결과가 돌아올 수 있어요. 공격자가 조회할 이름에 영향을 줄 수 있고 애플리케이션이 검사와 조회의 일치를 전제로 동작한다면 문제가 될 수 있어요.

CVE-2026-105483은 CWE-295, 즉 부적절한 인증서 검증으로 분류돼요. 인증서는 연결 상대가 해당 주소의 주인인지 확인하는 데 쓰여요. TLS는 통신 내용을 암호화하고 연결 상대를 확인하는 기술이에요. Node.js의 TLS 주소 확인 과정은 전각 숫자처럼 일반적인 영문 문자 범위를 벗어나는 문자가 포함된 주소를 IP 주소로 알아보지 못할 수 있어요. IP 주소는 통신 대상을 가리키는 주소예요. 연결 과정에서는 일반적인 IP 주소로 처리하면서 인증서 검사에서는 도메인 이름처럼 취급하면, 해당 IP 주소에 맞는 인증서 항목이 없어도 다른 이름 항목을 근거로 인증서가 받아들여질 수 있어요. 이런 주소 표기와 그에 맞물리는 인증서가 사용되는 조건이 핵심이에요.

CVE-2026-106069도 CWE-295인 부적절한 인증서 검증 문제예요. 앞에 영이 붙은 비표준 IP 주소를 처리할 때 인증서 검사와 실제 연결 과정의 해석이 달라질 수 있어요. 인증서 검사에서는 주소를 특정 규칙으로 변환하지만, 일부 운영체제의 주소 해석 과정에서는 다른 주소로 이해할 수 있기 때문이에요. 그 결과 실제로 연결한 주소와 다른 주소를 기준으로 인증서를 검사할 수 있어요. 주소 표기와 실행 환경의 해석 차이가 맞물리는 조건에서 발생하는 문제이므로, 모든 연결에서 같은 현상이 나타난다고 해석하면 안 돼요.

NVD는 해당 취약점들을 모두 CVSS 버전 3.0 기준 7.4, 심각도 HIGH로 분류했고, NVD 게시일은 2026-10-23이에요. CVSS는 취약점의 기술적 심각도를 평가하는 기준이며, HIGH는 높은 심각도를 뜻해요. 이 점수가 개별 서비스의 피해 발생 여부나 공격 성공 가능성을 그대로 나타내지는 않아요. 실제 점검에서는 외부 입력으로 접속 대상을 정하는지, 도메인 허용 목록을 사용하는지, 문제가 되는 주소 표기를 처리할 수 있는지를 함께 살펴야 해요.

누가 영향을 받나요

일반 사용자

Node.js를 사용하는 서비스에서는 운영자가 이번 업데이트를 적용하는 것이 중요해요. 이용자 입장에서는 서비스 내부에서 주소 조회나 인증서 검사가 어떻게 이뤄지는지 확인하기 어려워요. 이번 문제는 Node.js의 주소 처리와 연결 상대 확인에 관한 것이므로, 이 권고만으로 자신이 사용하는 모든 웹사이트나 기기가 영향을 받는다고 판단할 수는 없어요.

직접 Node.js 기반 프로그램을 설치하거나 실행한다면 그 프로그램이 어떤 Node.js 버전을 사용하는지 확인해요. 별도로 설치한 Node.js와 프로그램에 포함된 Node.js가 다를 수 있으므로, 프로그램에 포함된 실행 환경은 해당 프로그램의 업데이트 안내도 살펴야 해요.

개발자

사용자가 입력한 도메인 이름이나 주소로 다른 서버에 연결하는 기능을 우선 살펴봐요. 특히 허용한 도메인인지 검사한 뒤 DNS로 주소를 조회하는 흐름은 CVE-2026-105482와 관련돼요. 문자열 검사에 통과했다는 사실만으로 뒤이은 조회가 같은 이름을 대상으로 한다고 판단하면, 이름이 잘리는 경우를 놓칠 수 있어요.

암호화 연결을 만드는 코드에서는 주소를 받아들이는 단계, 실제 연결 단계, 인증서 검사 단계가 같은 대상을 가리키는지 확인해요. CVE-2026-105483은 특수한 문자로 적은 IP 주소를 이름으로 잘못 분류하는 문제이고, CVE-2026-106069는 비표준 IP 주소를 서로 다르게 해석하는 문제예요. 애플리케이션 코드 검토와 함께 해당 Node.js 실행 환경을 해결 버전으로 업데이트해야 해요.

서버·장비 담당자

서버 담당자는 설치 목록뿐 아니라 실제 서비스가 사용하는 Node.js 버전을 확인해야 해요. 개발 환경에서 버전을 올렸더라도 운영 서비스가 이전 실행 환경을 계속 사용한다면 조치가 끝난 것으로 보기 어려워요. 외부에서 받은 주소로 연결하거나 도메인 허용 목록에 따라 통신하는 서비스부터 확인하면 이번 문제와 관련된 구간을 찾는 데 도움이 돼요.

22.23.4 미만인 22 계열과 24.22.1 미만인 24 계열, 26.12.1 미만인 26 계열을 각각 구분해 관리해요. CVE-2026-105482와 CVE-2026-106069는 해당 계열들이 영향 대상이고, CVE-2026-105483은 24 계열과 26 계열이 영향 대상이에요. 버전 계열별 기준을 적용해야 하며, 서로 다른 계열을 단순히 하나의 버전 순서로 비교해서는 안 돼요.

지금 할 일

  1. Node.js를 직접 실행하는 환경과 Node.js를 포함한 프로그램을 찾아요. 서비스가 외부에서 받은 도메인이나 IP 주소로 연결하는지도 함께 확인해요.
  2. Node.js 버전 확인 명령으로 현재 버전을 확인해요. 명령을 실행한 환경이 실제 서비스가 사용하는 실행 환경과 같은지도 확인해야 해요.
  3. 사용 중인 버전 계열에 맞춰 영향 여부를 판단해요. 22 계열은 22.23.4 미만, 24 계열은 24.22.1 미만, 26 계열은 26.12.1 미만이 이번 업데이트의 점검 대상이에요.
  4. 제조사 공지의 업데이트 절차를 따라요. 해당 계열에서 22.23.4 이상, 24.22.1 이상, 26.12.1 이상을 각각 해결 기준으로 적용해요. 프로그램에 Node.js가 포함돼 있다면 해당 프로그램의 제조사 공지도 확인해요.
  5. 업데이트를 적용한 실행 환경에서 서비스가 동작하는지 확인해요. 도메인 조회, 허용 목록에 따른 연결 판단, 암호화 연결의 인증서 확인 기능을 중심으로 검증해요.

Node.js 버전 확인 · 공식 문서

node -v

바로 업데이트하기 어렵다면

  • 제조사 공지에서 적용 가능한 임시 대응을 확인한 뒤, 외부 입력으로 접속 대상을 지정하는 기능의 접근을 필요한 사용자로 제한하는 방안을 검토해요.
  • 제조사 공지를 확인하면서, 외부에서 받은 도메인이나 IP 주소를 처리하는 기능의 외부 노출을 줄이는 방안을 검토해요. 이런 접근 제한만으로 Node.js의 주소 해석이나 인증서 검증 문제가 수정되는 것은 아니므로 업데이트를 이어서 준비해요.

업데이트 후 확인

  • 업데이트 후 Node.js 버전을 다시 확인하고, 실제 서비스가 사용하는 버전도 같은 해결 기준을 충족하는지 확인해요. 22 계열은 22.23.4 이상, 24 계열은 24.22.1 이상, 26 계열은 26.12.1 이상이어야 해요.
  • 도메인 허용 목록을 사용하는 기능에서는 검사한 이름과 실제 조회 대상이 일치하는지 확인해요. 문자열 종료 의미의 특수 문자가 들어온 경우에도 허용 여부 판단이 우회되지 않는지 살펴봐요.
  • 암호화 연결에서는 일반적인 주소로 접속하는 기능이 정상 동작하는지 확인해요. 특수한 문자나 앞에 영이 붙은 IP 주소를 처리하는 기능이 있다면, 실제 연결 대상과 인증서 확인 대상이 일치하는지도 검증해요.

해외 동향 (NVD·CISA KEV)

CISA의 실제 악용 취약점 목록(KEV)에는 2026.10.30 확인 기준 아직 올라 있지 않아요.

CVECVSS 점수심각도약점 분류(CWE)KEV
CVE-2026-1054827.4 (v3.0)높음CWE-284미등재
CVE-2026-1054837.4 (v3.0)높음CWE-295미등재
CVE-2026-1060697.4 (v3.0)높음CWE-295미등재

출처: 미국 국가취약점데이터베이스(NVD) · CISA KEV · 2026.10.30 확인

제조사 공식 공지

영향받는 제품과 해결 버전 8줄

제품영향받는 버전해결 버전·조치CVE
Node.js22.23.4 미만22.23.4 이상CVE-2026-105482
Node.js24.22.1 미만24.22.1 이상CVE-2026-105482
Node.js26.12.1 미만26.12.1 이상CVE-2026-105482
Node.js24.22.1 미만24.22.1 이상CVE-2026-105483
Node.js26.12.1 미만26.12.1 이상CVE-2026-105483
Node.js22.23.4 미만22.23.4 이상CVE-2026-106069
Node.js24.22.1 미만24.22.1 이상CVE-2026-106069
Node.js26.12.1 미만26.12.1 이상CVE-2026-106069

자주 묻는 질문

Q. 영향받는 버전이 여러 줄인 이유는 무엇인가요?
Node.js 버전 계열마다 해결 버전이 다르고, 취약점마다 명시된 영향 계열도 다르기 때문이에요. CVE-2026-105482와 CVE-2026-106069는 22 계열, 24 계열, 26 계열이 대상이에요. CVE-2026-105483은 24 계열과 26 계열이 대상이에요. 자신의 계열에 맞는 해결 버전을 확인해야 해요.
Q. 암호화 연결을 사용해도 이번 문제를 확인해야 하나요?
네. 이번 권고에는 암호화 연결에서 상대의 인증서를 확인하는 과정의 문제가 포함돼 있어요. 통신 내용을 암호화하는 것과 연결 상대의 주소를 올바르게 확인하는 것은 함께 살펴야 하는 부분이에요. 특수한 문자나 비표준 표기의 IP 주소를 처리한다면 관련 흐름을 확인하고 Node.js를 업데이트해요.
Q. CISA KEV에는 어떤 상태로 나와 있나요?
CISA KEV 에는 아직 등재되지 않았다.

CVE 번호 3건

CVE-2026-105482 · CVE-2026-105483 · CVE-2026-106069

원문·참고 링크

이 글은 KISA 보호나라 보안공지의 사실(제품·버전·CVE·게시일)을 옮겨 정리하고 설명은 폰회선관리가 새로 쓴 것이에요. CVSS 점수·약점 분류는 NVD, 실제 악용 여부는 CISA KEV 공식 데이터에서 가져왔고, 해설은 AI가 이 사실만으로 쓴 뒤 버전·CVE·점수를 원자료와 자동 대조해 통과한 것만 실었어요. 정확한 조치는 제조사 공지가 기준이에요.

같은 분야 최근 권고