[하루한줄] CVE-2021-21315: node js library command injection

URL

CVE-2021-21315-systeminformation

Target

systeminformation Library for Node.JS (npm package “systeminformation”) < 5.3.1

Explain

CVE-2021-21315는 npm 패키지인 systeminformation에서 발생하는 command injection 취약점입니다. systeminformation 패키지는 하드웨어, 시스템 및 OS 등의 세부 정보를 검색하는 기능의 오픈 소스 함수 모음입니다. 그중 si.inetLatency(), si.inetChecksite(), si.services(), si.processLoad() 에 사용될 파라미터 값은 sanitizing 해야 하며 array 형태로 들어오는 데이터를 모두 차단해야 합니다.

String array 데이터는 함수 sanitizeShellString()의 sanitizing 작업을 무시할 수 있어si.inetLatency(), si.inetChecksite(), si.services(), si.processLoad() 함수들의 서비스 파라미터로 사용될 시 command injection이 가능합니다.

const si = require('systeminformation');
const command = "$(<OS Command>)";
si.inetChecksite([command]);