🔍 CVE-2025-69419

7.4
CVSS Score
HIGH
2026-01-27
2026-05-12 13:17
✅ 완료

🇰🇷 한글 설명

OpenSSL의 PKCS#12 처리 함수에서 UTF-16BE 인코딩된 프렌들리 네임 변환 시 버퍼 오버플로우가 발생합니다. 악의적인 PKCS#12 파일을 통해 버퍼 앞에 1바이트를 덮어쓸 수 있으며, 이는 메모리 손상 및 서비스 거부 공격으로 이어질 수 있습니다.

💡 쉬운 설명

OpenSSL의 PKCS#12 파일 처리 기능에서 특정 문자 인코딩을 잘못 처리하면 메모리 손상이 발생할 수 있습니다. 공격자가 악의적인 PKCS#12 파일을 제공하면 애플리케이션이 충돌할 수 있습니다.

🇺🇸 원문 (English)

Issue summary: Calling PKCS12_get_friendlyname() function on a maliciously crafted PKCS#12 file with a BMPString (UTF-16BE) friendly name containing non-ASCII BMP code point can trigger a one byte write before the allocated buffer. Impact summary: The out-of-bounds write can cause a memory corruption which can have various consequences including a Denial of Service. The OPENSSL_uni2utf8() function performs a two-pass conversion of a PKCS#12 BMPString (UTF-16BE) to UTF-8. In the second pass, when emitting UTF-8 bytes, the helper function bmp_to_utf8() incorrectly forwards the remaining UTF-16 source byte count as the destination buffer capacity to UTF8_putc(). For BMP code points above U+07FF, UTF-8 requires three bytes, but the forwarded capacity can be just two bytes. UTF8_putc() then returns -1, and this negative value is added to the output length without validation, causing the length to become negative. The subsequent trailing NUL byte is then written at a negative offset, causing write outside of heap allocated buffer. The vulnerability is reachable via the public PKCS12_get_friendlyname() API when parsing attacker-controlled PKCS#12 files. While PKCS12_parse() uses a different code path that avoids this issue, PKCS12_get_friendlyname() directly invokes the vulnerable function. Exploitation requires an attacker to provide a malicious PKCS#12 file to be parsed by the application and the attacker can just trigger a one zero byte write before the allocated buffer. For that reason the issue was assessed as Low severity according to our Security Policy. The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the PKCS#12 implementation is outside the OpenSSL FIPS module boundary. OpenSSL 3.6, 3.5, 3.4, 3.3, 3.0 and 1.1.1 are vulnerable to this issue. OpenSSL 1.0.2 is not affected by this issue.

📍 영향받는 시스템

OpenSSL 3.6, 3.5, 3.4, 3.3, 3.0, 1.1.1 (1.0.2는 미영향)

⚔️ 공격 벡터

공격자가 악의적으로 조작된 PKCS#12 파일을 애플리케이션에 제공하여 PKCS12_get_friendlyname() 함수 실행 시 버퍼 오버플로우 트리거

🛡️ 대응 방법

OpenSSL을 최신 보안 패치 버전으로 업그레이드하거나 PKCS12_parse() 대신 사용하는 코드 경로 검토

🔧 검증 코드

명령어가 버전을 출력하면 영향받는 OpenSSL 버전입니다. 출력이 없으면 패치 필요 없으나 정확한 버전 확인을 위해 openssl version 전체 결과를 검토하세요.

Shell / Script
openssl version 2>/dev/null | grep -oE '[0-9]\.[0-9]\.[0-9]' | awk -F. '{print $1"."$2}' | grep -E '^[13]\.[0-5]$|^1\.1$'

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N

💻 영향받는 소프트웨어

OpenSSL