🇰🇷 한글 설명
rust-openssl 라이브러리의 특정 콜백 함수에서 반환된 usize 값이 전달된 버퍼 크기와 일치하는지 확인하지 않는 취약점이 발견되었습니다. 이로 인해 OpenSSL로 데이터가 직접 전달될 때 버퍼 오버플로우 및 기타 예기치 않은 동작이 발생할 수 있습니다.
💡 쉬운 설명
프로그램이 데이터를 저장할 공간보다 더 많은 양의 데이터를 쓰려고 시도할 수 있는 오류가 있습니다. 이로 인해 프로그램이 갑자기 종료되거나 해커가 시스템을 조작할 위험이 있습니다.
🇺🇸 원문 (English)
rust-openssl provides OpenSSL bindings for the Rust programming language. From 0.9.24 to before 0.10.78, the FFI trampolines behind SslContextBuilder::set_psk_client_callback, set_psk_server_callback, set_cookie_generate_cb, and set_stateless_cookie_generate_cb forwarded the user closure's returned usize directly to OpenSSL without checking it against the &mut [u8] that was handed to the closure. This can lead to buffer overflows and other unintended consequences. This vulnerability is fixed in 0.10.78.
📍 영향받는 시스템
rust-openssl 0.9.24 버전부터 0.10.78 미만 버전까지
⚔️ 공격 벡터
잘못된 크기의 값을 반환하는 사용자 정의 콜백 함수를 통해 버퍼 오버플로우 유도
🛡️ 대응 방법
rust-openssl 버전을 0.10.78 이상으로 업데이트
🔧 검증 코드
출력된 버전 번호가 0.10.78 미만인지 확인하여 취약 여부를 판단합니다.
cargo pkgid rust-openssl | grep -oE 'rust-openssl@0\.[0-9]+\.[0-9]+' || echo 'Not installed'