🇰🇷 한글 설명
Node.js 20의 실험적 권한 모델이 활성화된 상태에서 임의의 OpenSSL 엔진을 로드하여 권한 모델을 우회하거나 비활성화할 수 있는 권한 상승 취약점입니다. 공격자는 crypto.setEngine() API를 사용하여 호스트 프로세스의 메모리를 조작함으로써 보안 제한을 무력화할 수 있습니다.
💡 쉬운 설명
Node.js의 새로운 보안 기능이 특정 명령어를 통해 무력화될 수 있는 결함입니다. 해커가 허용되지 않은 기능을 강제로 실행하여 시스템의 보안 통제권을 뺏을 수 있습니다.
🇺🇸 원문 (English)
A privilege escalation vulnerability exists in Node.js 20 that allowed loading arbitrary OpenSSL engines when the experimental permission model is enabled, which can bypass and/or disable the permission model. The attack complexity is high. However, the crypto.setEngine() API can be used to bypass the permission model when called with a compatible OpenSSL engine. The OpenSSL engine can, for example, disable the permission model in the host process by manipulating the process's stack memory to locate the permission model Permission::enabled_ in the host process's heap memory. Please note that at the time this CVE was issued, the permission model is an experimental feature of Node.js.
📍 영향받는 시스템
Node.js 20 (실험적 권한 모델 활성화 시)
⚔️ 공격 벡터
crypto.setEngine() API를 이용한 호스트 프로세스 메모리 조작 및 OpenSSL 엔진 로드
🛡️ 대응 방법
Node.js를 최신 보안 패치가 적용된 버전으로 업데이트하거나 실험적 권한 모델 사용 시 주의가 필요함
🔧 검증 코드
출력된 버전이 Node.js 20의 취약한 버전 범위에 해당하는지 확인