🇰🇷 한글 설명
wolfSSL의 PKCS7 구현체인 wc_PKCS7_DecryptOri() 함수에서 스택 버퍼 오버플로우 취약점이 발견되었습니다. CMS EnvelopedData 메시지 처리 중 ASN.1 파싱된 OID의 길이를 검증하지 않고 32바이트 고정 크기 버퍼로 복사하여 발생합니다. 공격자가 조작된 CMS 메시지를 보내면 스택 메모리를 오염시킬 수 있습니다.
💡 쉬운 설명
데이터를 해독하는 과정에서 입력된 정보의 길이를 확인하지 않아 발생하는 보안 결함입니다. 너무 긴 정보를 강제로 밀어 넣으면 프로그램의 제어권을 뺏거나 오류를 일으킬 수 있습니다.
🇺🇸 원문 (English)
A stack buffer overflow exists in wolfSSL's PKCS7 implementation in the wc_PKCS7_DecryptOri() function in wolfcrypt/src/pkcs7.c. When processing a CMS EnvelopedData message containing an OtherRecipientInfo (ORI) recipient, the function copies an ASN.1-parsed OID into a fixed 32-byte stack buffer (oriOID[MAX_OID_SZ]) via XMEMCPY without first validating that the parsed OID length does not exceed MAX_OID_SZ. A crafted CMS EnvelopedData message with an ORI recipient containing an OID longer than 32 bytes triggers a stack buffer overflow. Exploitation requires the library to be built with --enable-pkcs7 (disabled by default) and the application to have registered an ORI decrypt callback via wc_PKCS7_SetOriDecryptCb().
📍 영향받는 시스템
wolfSSL (PKCS7 기능이 --enable-pkcs7 옵션으로 활성화되고 ORI 콜백이 등록된 경우)
⚔️ 공격 벡터
32바이트보다 긴 OID를 포함한 조작된 CMS EnvelopedData 메시지를 전송
🛡️ 대응 방법
wolfSSL을 최신 보안 패치가 적용된 버전으로 업데이트하거나, 사용하지 않는 경우 PKCS7 기능을 비활성화합니다.
🔧 검증 코드
해당 라이브러리의 버전을 확인하여 취약점이 해결된 패치 버전인지 대조합니다.
wolfssl_version_check_command_placeholder