🔍 CVE-2026-58041

5.3
CVSS Score
MEDIUM
2026-08-04
2026-10-23 23:10
✅ 완료

🇰🇷 한글 설명

Node.js의 node:sqlite 모듈에서 DatabaseSync#createTagStore()를 통해 생성된 StatementSyncIterator가 초기화 및 재바인딩된 후에도 캐시된 준비된 문(prepared statement)을 계속 실행할 수 있는 결함이 있습니다. SQLTagStore가 최신 릴리스의 StatementSync용 이터레이터 무효화 메커니즘을 우회하여 sqlite3_reset()을 직접 호출하기 때문에 발생합니다.

💡 쉬운 설명

데이터베이스 명령어를 처리하는 과정에서 이전 명령의 정보가 완전히 지워지지 않고 남아있는 문제입니다. 이로 인해 새로운 명령을 내렸음에도 불구하고 과거의 잘못된 데이터나 명령이 실행될 위험이 있습니다.

🇺🇸 원문 (English)

A flaw in Node.js node:sqlite allows a stale StatementSyncIterator created through DatabaseSync#createTagStore() to continue executing a cached prepared statement after it has been reset and rebound with new parameters. SQLTagStore resets cached statements using sqlite3_reset() directly, bypassing the iterator invalidation mechanism introduced for StatementSync in recent releases This vulnerability affects Node.js **22.x**, **24.x**, and **26.x**.

📍 영향받는 시스템

Node.js 22.x, 24.x, 26.x 버전

⚔️ 공격 벡터

데이터베이스 문(statement)이 재사용되는 과정에서 캐시된 이전 파라미터나 상태를 이용한 논리적 오류 유발

🛡️ 대응 방법

Node.js를 최신 보안 패치가 적용된 버전으로 업데이트하십시오.

🔧 검증 코드

명령어 결과로 v22, v24, v26으로 시작하는 버전이 출력되면 해당 취약점에 노출된 시스템입니다.

Shell / Script
node -v | grep -E 'v(22|24|26)\.'

📊 CVSS Vector String

CVSS Vector
CVSS:3.0/AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:N

💻 영향받는 소프트웨어

Node.js