CVE-2026-82390 in Zephyr정보

요약

\~에 의해 VulDB • 2026. 10. 26.

Espressif의 AES 드라이버 drivers/crypto/crypto_esp32_aes.c는 다중 세션 암호화 API를 advertised합니다 — 이 드라이버는 CONFIG_ESP32_CRYPTO_AES_SESSIONS_MAX(기본값 4)까지의 독립적인 세션을 제공하며, 각 세션은 자체 키와 방향을 보유합니다. 그러나 AES 주변 장치에는 칩 전역(key and mode registers)으로 설정된 단일 세트의 키 및 모드 레지스터가 존재하며, aes_begin_session() 함수는 이를 session 시작 시 한 번만 프로그래밍하며, 이는 transform들을 직렬화하는 aes_lock mutex 외부에서 수행됩니다. 이후 per-operation 핸들러인 aes_ecb_op(), aes_cbc_op(), aes_ctr_op()은 aes_hal_transform_block()을 호출할 때 레지스터에 우연히 들어있는 키와 방향을 사용합니다.

그 결과, 두 번째 세션이 다른 키로 열리면 첫 번째 세션의 모든 후속 작업은 silently(무음으로) 두 번째 세션의 키와 방향을 사용하며, 에러는 보고되지 않습니다. 키 프로그래밍이 lock 외부에서 발생했기 때문에 "각 스레드가 자신의 세션에 대해 begin → op → free 순서로 동작한다"라는 올바른 사용 패턴도 race condition(경쟁 상태)에 노출됩니다: 첫 번째 스레드의 begin과 operation 사이에 두 번째 스레드의 cipher_begin_session()가 실행되면, 해당 작업은 두 번째 스레드의 키를 사용하여 수행됩니다. 장치에서 세션 생성을 유도할 수 있는 공격자 — 예를 들어 연결 시 session key 설치를 유발하는 protocol peer(프로토콜 피어) — 는 victim operation이 실행될 때 어떤 키가 resident(거주 중) 상태인지에 영향을 줄 수 있습니다.

영향력은 memory corruption(메모리 손상)이 아닌 cryptographic failure(암호학적 결함)입니다: 애플리케이션이 하나의 키로 보호한다고 믿었던 데이터는 다른 키로 암호화되거나 복호화됩니다. 만약 resident key가 공격자가 알고 있거나 제공한 것이라면, 해당 plaintext(평문)은 공격자에게 recoverable(복구 가능)해지며, operation의 방향(encryption vs decryption)도 반전될 수 있습니다. 노출 조건으로는 이 드라이버에 대해 서로 다른 키를 가진 두 개 이상의 concurrent session을 유지하는 애플리케이션이 필요합니다; 현재 in-tree Zephyr subsystem 중 이러한 다중 세션 사용을 하는 것은 없습니다(802.15.4 보안 계층은 두 개의 세션을 열지만, CCM 모드를 사용하며 이 드라이버는 이를 거부함). 따라서 위험성은 문서화된 multi-session API를 사용하는 애플리케이션 코드에 귀속됩니다.

해결책은 aes_begin_session()에서 모든 하드웨어 접근을 제거하고, 키와 방향을 각 operation의 시작 부분(aes_lock 내부)에서 다시 프로그래밍하여, 칩 전역 레지스터가 다른 세션에 의해 stale(구식/오래된 상태)로 관찰되는 것을 방지합니다.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

책임이 있는

Zephyr

예약하다

2026. 08. 28.

모더레이션

수락

항목

VDB-426528

EPSS

0.00000

활동

낮음

출처

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!