🇰🇷 한글 설명
CryptoLib의 MariaDB SA 인터페이스 내 convert_hexstring_to_byte_array() 함수에서 버퍼 용량 검사 없이 디코딩된 바이트를 작성하는 취약점이 발견되었습니다. 데이터베이스에 저장된 IV, ARSN, ABM 등의 필드에 조작되거나 너무 큰 16진수 문자열이 포함될 경우 힙 메모리 오버플로가 발생하여 인접 메모리가 손상될 수 있습니다.
💡 쉬운 설명
데이터베이스에 저장된 잘못된 크기의 데이터가 시스템 메모리로 복사될 때, 정해진 공간을 넘쳐흘러 시스템을 망가뜨릴 수 있는 문제입니다. 이로 인해 프로그램이 비정상적으로 종료되거나 보안 문제가 발생할 수 있습니다.
🇺🇸 원문 (English)
CryptoLib provides a software-only solution using the CCSDS Space Data Link Security Protocol - Extended Procedures (SDLS-EP) to secure communications between a spacecraft running the core Flight System (cFS) and a ground station. Prior to version 1.4.3, the convert_hexstring_to_byte_array() function in the MariaDB SA interface writes decoded bytes into a caller-provided buffer without any capacity check. When importing SA fields from the database (e.g., IV, ARSN, ABM), a malformed or oversized hex string in the database can overflow the destination buffer, corrupting adjacent heap memory. This issue has been patched in version 1.4.3.
📍 영향받는 시스템
CryptoLib version 1.4.3 미만 버전
⚔️ 공격 벡터
데이터베이스 내의 특정 필드(IV, ARSN, ABM 등)에 조작된 대용량 16진수 문자열을 삽입하여 공격
🛡️ 대응 방법
CryptoLib를 최신 패치 버전인 1.4.3 이상으로 업데이트
🔧 검증 코드
출력된 Version이 1.4.3 미만이면 취약한 버전이므로 업데이트가 필요합니다.
pip show cryptolib 2>/dev/null | grep -E 'Version'