🇰🇷 한글 설명
Windows 플랫폼의 Node.js에서 특정 조건 하에 실행 흐름을 가로챌 수 있는 DLL 하이재킹 취약점이 발견되었습니다. OpenSSL이 설치되어 특정 경로에 설정 파일이 존재할 경우, node.exe가 현재 사용자 디렉토리 등에서 악성 providers.dll 파일을 검색하여 실행할 수 있습니다.
💡 쉬운 설명
해커가 가짜 DLL 파일을 특정 폴더에 몰래 넣어두면, Node.js가 실행될 때 이 파일을 진짜인 줄 알고 실행하여 컴퓨터를 제어할 수 있는 문제입니다. Windows 환경에서 OpenSSL 설정이 되어 있을 때 특히 위험합니다.
🇺🇸 원문 (English)
Node.js is vulnerable to Hijack Execution Flow: DLL Hijacking under certain conditions on Windows platforms.This vulnerability can be exploited if the victim has the following dependencies on a Windows machine:* OpenSSL has been installed and “C:\Program Files\Common Files\SSL\openssl.cnf” exists.Whenever the above conditions are present, `node.exe` will search for `providers.dll` in the current user directory.After that, `node.exe` will try to search for `providers.dll` by the DLL Search Order in Windows.It is possible for an attacker to place the malicious file `providers.dll` under a variety of paths and exploit this vulnerability.
📍 영향받는 시스템
Windows 플랫폼에서 특정 OpenSSL 설정(C:\Program Files\Common Files\SSL\openssl.cnf 존재)이 활성화된 Node.js 환경
⚔️ 공격 벡터
공격자가 DLL 검색 순서를 악용하여 악성 providers.dll 파일을 사용자 디렉토리 또는 검색 가능한 경로에 배치
🛡️ 대응 방법
Node.js를 최신 보안 패치가 적용된 버전으로 업데이트하고, 불필요한 DLL 파일이 경로에 노출되지 않도록 관리
🔧 검증 코드
Node.js 버전 확인 후, 취약 조건인 OpenSSL 설정 파일 존재 여부를 체크하여 메시지가 출력되면 주의가 필요함
node -v && [ -f "C:\Program Files\Common Files\SSL\openssl.cnf" ] && echo "Vulnerable Condition Detected"