🇰🇷 한글 설명
Crypt::OpenSSL::PKCS12 Perl 모듈 1.94 이하 버전에서 비밀번호 내 NULL 바이트 이후의 문자가 무시되는 취약점입니다. 첫 번째 NULL 문자에서 비밀번호 파싱이 중단되어 실제 비밀번호 강도보다 약해집니다. 이진 데이터나 암호 파생 비밀번호의 엔트로피가 경고 없이 손실됩니다.
💡 쉬운 설명
비밀번호에 특수 문자(NULL)가 있으면 그 이후 부분이 전부 무시되는 버그입니다. 예를 들어 "mypass\0secret"이라면 "secret" 부분이 버려져서 "mypass"만으로 인증서가 보호됩니다.
🇺🇸 원문 (English)
Crypt::OpenSSL::PKCS12 versions through 1.94 for Perl truncates passwords with embedded NULLs.
Password parameters in PKCS12.xs are declared char *, which routes through Perl's default typemap to SvPV_nolen. The Perl length is discarded.
The C code (or OpenSSL internally) calls strlen() on the buffer. Any password byte at or after the first NULL is silently dropped. Binary / KDF-derived / HMAC-derived passwords lose entropy without any warnings.
📍 영향받는 시스템
Crypt::OpenSSL::PKCS12 Perl 모듈 버전 1.94 이하
⚔️ 공격 벡터
NULL 바이트가 포함된 비밀번호로 PKCS12 인증서를 생성하여 약화된 암호화 강도 때문에 인증서를 복호화할 수 있습니다.
🛡️ 대응 방법
Crypt::OpenSSL::PKCS12를 1.95 이상으로 업그레이드하세요.
🔧 검증 코드
출력된 버전이 1.95 이상이면 안전하고, 1.94 이하면 즉시 업그레이드 필요합니다.
perl -e 'use Crypt::OpenSSL::PKCS12; print $Crypt::OpenSSL::PKCS12::VERSION' 2>/dev/null || cpan -l 2>/dev/null | grep -i pkcs12