
인증 전에 발생하는 libssh2의 치명적인 경계를 벗어난 쓰기(out-of-bounds write) 취약점으로 인한 원격 코드 실행에 대한 상세 분석과 근본 원인, 탐지 및 완화 지침.
libssh2의 인증 전 치명적인 메모리 손상 취약점
| 필드 | 세부 정보 |
|---|---|
| CVE | CVE-2026-55200 |
| CVSS | 9.2 치명적 |
| 유형 | 경계를 벗어난 쓰기 |
| 구성 요소 | libssh2 |
| 영향받는 버전 | <= 1.11.1 |
| 공격 벡터 | 네트워크 |
| 필요한 권한 | 없음 |
| 사용자 상호 작용 | 없음 |
| 영향 | 원격 코드 실행(RCE), 서비스 거부(DoS) |
| 수정 버전 | 커밋 97acf3dfda80c91c3a8c9f2372546301d4a1a7a8 |
| 공개 날짜 | 2026년 6월 |
CVE-2026-55200은 널리 배포된 libssh2 라이브러리에 영향을 미치는 치명적인 메모리 손상 취약점입니다.
이 결함은 SSH 전송 계층 패킷 처리 로직 내부에 존재합니다:
ssh2_transport_read()
이 함수는 수신되는 다음 필드를 제대로 검증하지 못합니다:
packet_length
즉, 패킷 데이터를 할당하고 처리하기 전에 이 필드가 검증되지 않습니다.
원격 공격자는 과도하게 큰 길이 값을 포함하는 특수 제작된 SSH 패킷을 전송하여 다음을 유발할 수 있습니다:
이 취약점은 SSH 전송 패킷 처리 중에 트리거되므로 인증 전에 악용될 수 있으며, 이로 인해 문제의 심각도가 크게 높아집니다.
단순화된 취약 흐름:
packet_length = read_packet_length();
buffer = malloc(packet_length);
memcpy(buffer, incoming_data, packet_length);
packet_length 필드가 공격자에 의해 제어되어 예상 경계를 초과하는 경우:
Attacker
│
▼
Crafted SSH Packet
│
▼
Oversized packet_length
│
▼
Heap Corruption
│
┌──┴──┐
▼ ▼
DoS Potential RCE
| 구성 요소 | 영향받는 버전 |
|---|---|
| libssh2 | <= 1.11.1 |
libssh2를 내장한 모든 애플리케이션이 취약할 수 있습니다. 여기에는 다음이 포함됩니다:
참고: OpenSSH 자체는 libssh2를 사용하지 않으므로 직접적인 영향을 받지 않습니다.
| 요구 사항 | 값 |
|---|---|
| 네트워크 접근 | 필요 |
| 인증 | 불필요 |
| 사용자 상호 작용 | 불필요 |
| 공격 복잡도 | 낮음 |
| 원격 공격 | 예 |
보안팀은 다음을 모니터링해야 합니다:
ssh2_transport_read()와 관련된 코어 덤프pkg-config --modversion libssh2
dpkg -l | grep libssh2
apt-cache policy libssh2-1
rpm -qa | grep libssh2
dnf info libssh2
apk info | grep libssh2
ldconfig -p | grep libssh2
find /usr -type f -executable -exec ldd {} \; 2>/dev/null | grep libssh2
다음 커밋이 포함된 버전으로 업그레이드하세요:
97acf3dfda80c91c3a8c9f2372546301d4a1a7a8
sudo apt update
sudo apt upgrade libssh2-1
sudo reboot
sudo dnf update libssh2
sudo reboot
sudo dnf upgrade --refresh libssh2
sudo reboot
apk update
apk upgrade libssh2
패치가 제공될 때까지:
sudo ufw allow from TRUSTED_IP to any port 22
sudo ufw deny 22
iptables -A INPUT -p tcp --dport 22 -s TRUSTED_IP -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="TRUSTED_IP" port protocol="tcp" port="22" accept'
firewall-cmd --reload
다음 옵션으로 애플리케이션을 컴파일하세요:
-fstack-protector-strong
-D_FORTIFY_SOURCE=2
-fPIE
-pie
-Wl,-z,relro,-z,now
활성화:
✓ ASLR
✓ Stack Canaries
✓ RELRO
✓ NX
✓ PIE
✓ Latest Security Patches
신뢰할 수 없는 워크로드의 경우:
docker run \
--read-only \
--cap-drop=ALL \
--security-opt no-new-privileges
추가 권장 사항:
배포:
| 범주 | 등급 |
|---|---|
| 악용 가능성 | 높음 |
| 복잡도 | 낮음 |
| 인증 | 없음 |
| 원격 공격 | 예 |
| 공급망 위험 | 높음 |
| 인터넷 노출 | 높음 |
| 날짜 | 이벤트 |
|---|---|
| 2026년 6월 | 취약점 공개 |
| 2026년 6월 | 보안 권고 발표 |
| 2026년 6월 | 수정 커밋 게시 |
| 2026년 6월+ | 공급업체 패치 배포 시작 |
아니요. OpenSSH는 내부적으로 libssh2를 사용하지 않습니다.
예. 이 취약점은 인증 전에 트리거될 가능성이 있습니다.
성공적인 악용은 다음에 따라 달라집니다:
그러나 이러한 유형의 메모리 손상 취약점은 역사적으로 매우 위험한 것으로 간주되어 왔습니다.
공개 시점 기준, 활발한 악용에 대한 공개적으로 확인된 보고는 없습니다.
이 저장소는 교육 및 방어적 보안 목적으로만 제공됩니다.
소유하지 않았거나 명시적인 서면 테스트 승인을 받지 않은 시스템에서는 이 저장소의 정보나 코드를 사용하지 마십시오.
조기 패치 • 의존성 감사 • 공급망 보호 🛡️
사이버 보안 • 취약점 연구 • 위협 인텔리전스