🔍 CVE-2026-26007

6.5
CVSS Score
MEDIUM
2026-02-10
2026-09-10 13:17
✅ 완료

🇰🇷 한글 설명

Python의 cryptography 패키지 46.0.5 미만 버전에서 공개키가 타원곡선의 유효한 부분군에 속하는지 검증하지 않는 취약점이 발견되었습니다. 공격자가 작은 차수의 부분군에 속하는 공개키를 제공할 경우, ECDH 키 교환 과정에서 피해자의 개인키 정보가 유출되거나 ECDSA 서명이 위조될 수 있습니다. 이 문제는 SECT 곡선을 사용하는 경우에만 영향을 받습니다.

💡 쉬운 설명

암호화 과정에서 입력된 키가 올바른 규칙을 따르는지 확인하지 않아 발생하는 문제입니다. 이를 통해 해커가 사용자의 비밀번호와 같은 중요한 암호 키 정보를 조금씩 알아내거나 가짜 서명을 만들 수 있습니다.

🇺🇸 원문 (English)

cryptography is a package designed to expose cryptographic primitives and recipes to Python developers. Prior to 46.0.5, the public_key_from_numbers (or EllipticCurvePublicNumbers.public_key()), EllipticCurvePublicNumbers.public_key(), load_der_public_key() and load_pem_public_key() functions do not verify that the point belongs to the expected prime-order subgroup of the curve. This missing validation allows an attacker to provide a public key point P from a small-order subgroup. This can lead to security issues in various situations, such as the most commonly used signature verification (ECDSA) and shared key negotiation (ECDH). When the victim computes the shared secret as S = [victim_private_key]P via ECDH, this leaks information about victim_private_key mod (small_subgroup_order). For curves with cofactor > 1, this reveals the least significant bits of the private key. When these weak public keys are used in ECDSA , it's easy to forge signatures on the small subgroup. Only SECT curves are impacted by this. This vulnerability is fixed in 46.0.5.

📍 영향받는 시스템

cryptography package versions prior to 46.0.5 (specifically impacting SECT curves)

⚔️ 공격 벡터

공격자가 조작된 작은 차수의 부분군 공개키를 제공하여 키 교환 또는 서명 검증 과정 유도

🛡️ 대응 방법

cryptography 패키지를 46.0.5 버전 이상으로 업데이트

🔧 검증 코드

출력된 버전 번호가 46.0.5 미만인지 확인

Shell / Script
pip show cryptography | grep Version

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Python