🔍 CVE-2026-116674

6.5
CVSS Score
MEDIUM
2026-10-27
2026-10-27 17:16
✅ 완료

🇰🇷 한글 설명

systeminformation 라이브러리의 5.33.13 이전 버전에서 FreeBSD, OpenBSD, NetBSD 환경의 networkStats() 함수가 인터페이스 이름을 검증 없이 캐시 객체의 키로 사용합니다. 이로 인해 'proto' 같은 이름을 전달하면 Object.prototype이 오염되어 애플리케이션 동작에 영향을 줄 수 있습니다.

💡 쉬운 설명

이 취약점은 시스템 정보를 수집하는 Node.js 라이브러리의 버그로, 특정 네트워크 인터페이스 이름을 통해 JavaScript의 기본 객체 설정이 변경될 수 있습니다. 그 결과 프로그램의 조건 판단이나 설정 처리가 예상과 다르게 동작할 수 있습니다.

🇺🇸 원문 (English)

systeminformation is a System and OS information library for node.js. Prior to 5.33.13, networkStats(ifaces) in lib/network.js on FreeBSD, OpenBSD, and NetBSD stores per-interface data in the plain-object _network cache and indexes it with the sanitized caller-controlled interface name. Passing proto causes the inherited Object.prototype value to be used instead of creating an own cache entry, so calcNetworkSpeed() writes rx_bytes, tx_bytes, rx_sec, tx_sec, ms, last_ms, and operstate onto Object.prototype. The polluted property names are fixed and their values come from interface statistics, but inherited-name collisions and enumerable keys can corrupt application branching, serialization, configuration merging, validation, or lookup behavior. This issue is fixed in version 5.33.13.

📍 영향받는 시스템

systeminformation 5.33.13 미만 버전을 사용하는 FreeBSD, OpenBSD, NetBSD 기반 Node.js 애플리케이션

⚔️ 공격 벡터

공격자가 caller-controlled 인터페이스 이름(예: proto)을 networkStats()에 전달하여 Object.prototype 속성을 오염시킴

🛡️ 대응 방법

systeminformation 패키지를 5.33.13 이상 버전으로 업그레이드 (npm install systeminformation@latest)

🔧 검증 코드

출력된 버전이 5.33.13 미만이면 취약하므로 업그레이드가 필요하고, 5.33.13 이상이면 수정된 버전입니다.

Shell / Script
npm ls systeminformation 2>/dev/null | grep systeminformation

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:L

💻 영향받는 소프트웨어

Node.js