🇰🇷 한글 설명
Deno 1.46.0부터 2.1.6 버전 사이에서 AES-GCM 암호화 방식의 인증 태그 검증이 누락되는 취약점이 발견되었습니다. 이로 인해 변조된 암호문이나 잘못된 키를 감지하지 못해 데이터의 무결성이 보장되지 않습니다. 이는 AES-GCM이 무결성 보호 기능이 없는 CTR 모드처럼 동작하게 만듭니다.
💡 쉬운 설명
암호화된 데이터를 누군가 몰래 수정해도 프로그램이 이를 알아채지 못하는 보안 결함입니다. 마치 봉인 인장이 붙어있어야 할 택배 상자가 뜯겨 있어도 내용물이 그대로인 것처럼 속일 수 있는 상태입니다.
🇺🇸 원문 (English)
Deno is a JavaScript, TypeScript, and WebAssembly runtime. Versions 1.46.0 through 2.1.6 have an issue that affects AES-256-GCM and AES-128-GCM in Deno in which the authentication tag is not being validated. This means tampered ciphertexts or incorrect keys might not be detected, which breaks the guarantees expected from AES-GCM. Older versions of Deno correctly threw errors in such cases, as does Node.js. Without authentication tag verification, AES-GCM degrades to essentially CTR mode, removing integrity protection. Authenticated data set with set_aad is also affected, as it is incorporated into the GCM hash (ghash) but this too is not validated, rendering AAD checks ineffective. Version 2.1.7 includes a patch that addresses this issue.
📍 영향받는 시스템
Deno 버전 1.46.0 ~ 2.1.6
⚔️ 공격 벡터
암호화된 데이터(Ciphertext) 또는 추가 인증 데이터(AAD)를 변조하여 무결성 검증을 우회하는 방식
🛡️ 대응 방법
Deno를 최신 패치 버전인 2.1.7 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 버전이 1.46.0 미만이거나 2.1.7 이상이면 안전하며, 그 사이 버전이면 취약합니다.
deno --version | grep -E 'deno/[0-9]+\.[0-9]+\.[0-9]+'