HD-2024-1409

서비스 거부
영향
Node.js
14.21.3 LTS 16.20.2 LTS
in
Node.js
Node.js NES
느낌표 아이콘
패치 사용 가능
이 취약점은 HeroDevs에서 제공하는 네버엔딩 지원(NES) 버전에서 수정되었습니다.

개요

보안 권고: Node.js v14 및 많은 Node v16 버전은 여전히 서비스 거부에 노출될 수 있는 버전의 openssl을 사용합니다. 악의적으로 포맷된 PKCS12 파일을 처리하면 OpenSSL이 충돌하여 잠재적인 서비스 거부 공격으로 이어질 수 있습니다.  

세부 정보

모듈 정보

영향을 받는 패키지: openssl

영향을 받는 버전:

1.0.2 최대(제외)1.0.2zj
1.1.1 최대(제외)1.1.1x
3.0.0 최대(제외)3.0.13
3.1.0 최대(제외)3.1.5

리포지토리: https://github.com/openssl/openssl

게시된 패키지: openssl

취약점 정보

이는 심각도가 중간 정도인 문제로 간주되며 여러 오픈SSL 브랜치에서 발견될 수 있으며 이러한 버전을 사용하는 프로젝트에 영향을 줄 수 있습니다.

OpenSSL은 PKCS12 형식의 파일을 사용하여 인증서 및 키를 보관할 수 있습니다. PKCS12 사양은 특정 필드가 NULL일 수 있도록 허용하지만 OpenSSL은 이 경우를 올바르게 확인하지 않습니다. 필드가 널인 경우, OpenSSL은 널 포인터를 역참조하려고 시도하고 이로 인해 OpenSSL이 충돌하게 됩니다.

애플리케이션이 OpenSSL API를 사용하여 PKCS12 파일을 처리하는 경우 해당 애플리케이션은 이 문제에 취약합니다. 

이에 취약한 OpenSSL API는 다음과 같습니다: PKCS12_parse(), PKCS12_unpack_p7data(), PKCS12_unpack_p7encdata(), PKCS12_unpack_authsafes() 및 PKCS12_newpass(). 

3.2, 3.1 및 3.0의 FIPS 모듈은 이 문제의 영향을 받지 않습니다.

재현 단계

  • 패치가 적용되기 전에 1.0.2에서 3.1.5까지 OpenSSL을 사용하는 Node 버전으로 시스템을 설정하세요.
  • 사양에서 NULL로 허용되는 특정 필드가 실제로 NULL인 PKCS12 파일을 만들거나 수정합니다. 키로 시작합니다:
openssl pkcs12 -export -in cert.pem -inkey key.pem -out malicious.p12 -passout pass:password

  • 파일을 수정할 수 있는 16진수 편집기 또는 소프트웨어로 파일을 수정합니다. 특정 필드에 널 값을 삽입합니다.
  • 악성 키를 사용하는 취약한 버전의 OpenSSL을 사용하고 충돌이 발생하는지 관찰합니다.

해결 방법은 사용할 수 없습니다.

완화

OpenSSL은 널리 사용되는 라이브러리이며 Node.js와 같은 다른 패키지와 함께 번들로 제공되는 경우가 많습니다. 소프트웨어의 보안 공백을 방지하기 위해 종속성 업데이트를 지속적으로 유지하는 Node 버전을 실행하고 있는지 확인하세요. 최신 버전의 Node로 업데이트하거나 HeroDevs와 같은 공급업체의 상업적 지원을 활용하세요.

추가 리소스

취약점 세부 정보
ID
HD-2024-1409
영향을 받는 프로젝트
Node.js
영향을 받는 버전
14.21.3 LTS 16.20.2 LTS
게시 날짜
2024년 10월 15일
≈ 수정 날짜
2023년 8월 9일
다음에서 수정되었습니다.
심각도
Medium
카테고리
서비스 거부