🇰🇷 한글 설명
DDS/ROS 2 시스템의 PKCS#7 인증서 검증 불완전 구현으로 인한 취약점으로, 공격자가 유효한 인증서로 악의적인 노드를 생성하여 보안 DDS databus 시스템을 완전히 장악할 수 있습니다.
💡 쉬운 설명
DDS/ROS 2 시스템이 인증서를 검증할 때 OpenSSL의 PKCS7_verify 함수를 잘못 사용하고 있습니다. 공격자는 이를 악용해 가짜 노드를 만들어 시스템에 접근할 수 있습니다.
🇺🇸 원문 (English)
An attacker can arbitrarily craft malicious DDS Participants (or ROS 2 Nodes) with valid certificates to compromise and get full control of the attacked secure DDS databus system by exploiting vulnerable attributes in the configuration of PKCS#7 certificate’s validation. This is caused by a non-compliant implementation of permission document verification used by some DDS vendors. Specifically, an improper use of the OpenSSL PKCS7_verify function used to validate S/MIME signatures.
📍 영향받는 시스템
DDS 벤더의 보안 DDS databus 구현 및 ROS 2 보안 통신 (eProsima FastDDS, RTI Connext DDS 등)
⚔️ 공격 벡터
유효한 인증서로 악의적인 DDS Participant/ROS 2 Node를 생성하여 permission document 검증 우회로 databus 접근
🛡️ 대응 방법
해당 DDS 벤더의 보안 패치 적용 (eProsima FastDDS 2.10.1+, RTI Connext DDS 패치 등) 및 PKCS#7 검증 로직 업그레이드
🔧 검증 코드
ROS 2 보안 설정 및 DDS 미들웨어 버전 확인 후 보안 인증서 검증 로직이 최신 패치에 포함되었는지 확인
ros2 doctor --report 2>/dev/null | grep -i 'dds\|security' || dpkg -l | grep -E 'fastdds|connext|ros2'