▲neo 5달전 | parent | favorite | on: GN⁺: RegreSSHion: glibc 기반 Linux 시스템의 OpenSSH 서버에서 원격 코드 실행(RCE)(qualys.com)Hacker News 의견 RCE 수정이 거의 한 달 전에 공개적으로 "은밀하게" 이루어졌음 PerSourcePenalties가 활성화되면 sshd(8)는 자식 사전 인증 세션 프로세스의 종료 상태를 모니터링함 클라이언트가 인증을 반복적으로 시도하거나 sshd가 충돌할 때 페널티를 기록함 이 패치는 바이너리 아키텍처를 변경하여 특정 취약점을 제거하고 전체 익스플로잇 클래스를 완화함 버그를 도입한 diff에서 함수가 다음과 같이 리팩토링됨 원래 함수: sigdie(const char *fmt,...) 리팩토링된 함수: sshsigdie(const char *file, const char *func, int line, const char *fmt, ...) #ifdef가 누락됨 더 많은 사람들이 풀 리퀘스트를 검토했다면 예방할 수 있었을 것임 OpenSSH 릴리스 노트에서 흥미로운 코멘트 32비트 Linux/glibc 시스템에서 ASLR과 함께 성공적인 익스플로잇이 시연됨 64비트 시스템에서도 가능할 것으로 보임 OpenBSD는 SIGALRM 핸들러가 syslog_r()를 호출하여 이 취약점에 영향을 받지 않음 비동기 신호 안전 버전의 syslog()를 사용함 신호 핸들러 내의 코드 양을 최소화하는 리팩토링이 필요했음 musl의 syslog(3)를 조사한 결과, glibc와 달리 쉽게 익스플로잇되지 않음 모든 것이 스택 또는 재진입 보호된 정적 변수에 있음 FreeBSD용 패치가 나왔으며, glibc를 사용하지 않기 때문에 영향을 받지 않을 가능성이 높음 sshd_config 파일에서 'LoginGraceTime 0'을 설정하면 문제를 완화할 수 있음 이는 서비스 거부 공격에 취약하게 만들지만 원격 코드 실행을 방지함 Debian 12용 패치가 나왔으며, Debian 11은 영향을 받지 않음 OpenSSH 릴리스 노트와 최소 패치 링크 제공 독립적인 입장에서 단일 취약점을 찾는 것만으로도 충분해야 한다고 생각함 전체 체인을 찾아야만 사람들이 심각하게 받아들이거나 보상금을 지급하는 경향이 있음
Hacker News 의견
RCE 수정이 거의 한 달 전에 공개적으로 "은밀하게" 이루어졌음
버그를 도입한 diff에서 함수가 다음과 같이 리팩토링됨
sigdie(const char *fmt,...)
sshsigdie(const char *file, const char *func, int line, const char *fmt, ...)
OpenSSH 릴리스 노트에서 흥미로운 코멘트
OpenBSD는 SIGALRM 핸들러가 syslog_r()를 호출하여 이 취약점에 영향을 받지 않음
musl의 syslog(3)를 조사한 결과, glibc와 달리 쉽게 익스플로잇되지 않음
FreeBSD용 패치가 나왔으며, glibc를 사용하지 않기 때문에 영향을 받지 않을 가능성이 높음
sshd_config 파일에서 'LoginGraceTime 0'을 설정하면 문제를 완화할 수 있음
Debian 12용 패치가 나왔으며, Debian 11은 영향을 받지 않음
OpenSSH 릴리스 노트와 최소 패치 링크 제공
독립적인 입장에서 단일 취약점을 찾는 것만으로도 충분해야 한다고 생각함