Wins Security Information

보안 동향

앞 내용 보기 다음 내용 보기
보안 동향많이 사용되는 Node.js 패키지에서 코드 인젝션 취약점 발견
작성일 2021-02-26 조회 29

많이 다운로드되는 Node.js 라이브러리에서 높은 심각도의 코드 인젝션 취약점이 이번달에 공개되었다.

 

CVE-2021-21315로 추적된 이 버그는 "systeminformation" npm 구성 요소에 영향을 주며, 매주 약 80만 건의 다운로드를 받고 시작 이후 현재까지 거의 3,400만 건의 다운로드를 기록했다.

 

"systeminformation"는 개발자가 프로젝트에 포함하여 CPU, 하드웨어, 배터리, 네트워크, 서비스 및 시스템 프로세스와 관련된 시스템 정보를 검색 할 수있는 가벼운 Node.js 라이브러리이다.

 

프로젝트 개발자에 따르면 개발자는 백엔드에서 "systeminformation"을 사용해야한다.

 

"Node.js에는 몇 가지 기본 OS 정보가 포함되어 있지만 조금 더 원했고, 그래서 이 작은 라이브러리를 작성했다."

 

"이 라이브러리는 아직 작업 중이다. 백엔드/서버 측 라이브러리로 사용되어야한다(확실히 브라우저 내에서 작동하지 않음)"라고 구성 요소의 개발자가 말했다.

 

그러나, "systeminformation" 내에 코드 인젝션 결함이 존재한다는 것은 공격자가 컴포넌트에서 사용하는 비인가 파라미터 내에서 페이로드를 조심스럽게 인젝션함으로써 시스템 명령을 실행할 수 있다는 것을 의미한다.

 

"systeminformation"버전 5.3.1에 포함 된 아래의 수정 사항은 매개 변수를 삭제하고, 문자열 데이터 유형인지 확인하고 추가 명령을 호출하기 전에 매개 변수에 의해 어떤 시점에서 프로토 타입 오염이 발생했는지 추가로 확인한다.

 

[그림 1. CVE-2021-21315에 대한 수정으로 매개 변수가 제대로 검사 및 검증(출처:GitHub)]

 

"systeminformation" 사용자는 응용 프로그램의 CVE-2021-21315 취약성을 해결하려면 버전 5.3.1 이상으로 업그레이드해야 한다.

 

고정 버전으로 업그레이드 할 수없는 개발자를 위해 프로젝트 게시자는 대신 채택 할 수있는 해결 방법에 대한 정보를 공유했다.

 

여기에는 문제가되는 문자에 대한 매개 변수를 정리하고 문자열 데이터 유형인지 제대로 확인하는 작업이 포함된다.

 

"업그레이드 대신 해결 방법으로 si.inetLatency(), si.inetChecksite(), si.services(), si.processLoad() 등에 전달된 서비스 매개 변수를 확인하거나 삭제해야하고, 문자열만 허용하며, 어레이를 거부한다."라고 관련된 npm 보안 권고를 읽었다.

 

Node.js 개발자는 명령어와 데이터베이스 쿼리 내에서 사용하기 전에 애플리케이션이 사용자 입력을 제대로 검사하는지 확인하는 것이 좋다.

 

또한 사용자는 Node.js 구성 요소에 대한 최신 보안 수정 사항에 대한 정보를 얻기 위해 npm 보안 권고 사항을 정기적으로 방문해야 한다.

 

출처

https://www.bleepingcomputer.com/news/security/heavily-used-nodejs-package-has-a-code-injection-vulnerability

첨부파일 첨부파일이 없습니다.
태그 Node.js  systeminformation