🇰🇷 한글 설명
rust-openssl의 0.10.39부터 0.10.78 미만 버전에서 EVP_DigestFinal() 함수가 출력 버퍼의 크기를 확인하지 않고 데이터를 작성하는 취약점이 발견되었습니다. 이로 인해 버퍼 크기가 작을 경우 스택 메모리 오버플로우가 발생하여 데이터가 손상될 수 있으며, 이는 안전한 Rust 코드에서도 도달 가능합니다.
💡 쉬운 설명
프로그램이 데이터를 저장할 공간보다 더 많은 양을 억지로 밀어 넣어 메모리가 망가지는 문제입니다. 이로 인해 프로그램이 갑자기 꺼지거나 해커가 악성 코드를 실행할 위험이 있습니다.
🇺🇸 원문 (English)
rust-openssl provides OpenSSL bindings for the Rust programming language. From 0.10.39 to before 0.10.78, EVP_DigestFinal() always writes EVP_MD_CTX_size(ctx) to the out buffer. If out is smaller than that, MdCtxRef::digest_final() writes past its end, usually corrupting the stack. This is reachable from safe Rust. This vulnerability is fixed in 0.10.78.
📍 영향받는 시스템
rust-openssl 0.10.39 ~ 0.10.77 버전
⚔️ 공격 벡터
안전한 Rust 코드 내에서 작은 크기의 버퍼를 사용하여 digest_final 함수를 호출할 때 발생
🛡️ 대응 방법
rust-openssl 버전을 0.10.78 이상으로 업데이트
🔧 검증 코드
출력된 rust-openssl의 버전이 0.10.78 미만인지 확인
cargo pkgid | grep rust-openssl || cargo tree | grep rust-openssl