SourceHut 빌드 로그를 통한 계정 탈취 취약점, ansi2html의 XSS

4 hours ago 4

ansi2html의 XSS 취약점으로 빌드 로그에 악성 문자열을 삽입한 공격자가 해당 로그를 열람하는 SourceHut 사용자의 계정을 탈취할 수 있었음 공격자는 OSC 8 하이퍼링크 처리의 허점을 악용할 수 있었으며, CI가 활성화된 공개 메일링 리스트에 패치를 보내는 경로에서는 계정조차 필요하지 않았음 로그 페이지에서 실행되는 스크립트는 CSRF 토큰과 빌드 재제출 폼에 접근할 수 있어, 피해자 권한으로 배포 키에 접근하는 악성 빌드를 제출할 수 있었음 취약 버전은 ansi2html >=1.7.0, <1.9.4 와 builds.sr.ht >=0.40.0, <0.105.1 이며, SourceHut의 출력 정화 조치와 ansi2html 1.9.4 수정으로 대응함 builds.sr.ht는 거의 4년 반 동안 취약했으며, 처음 의존성을 감사했더라도 이후 업데이트마다 다시 점검하지 않았다면 막지 못했을 문제임 발견 계기와 SourceHut 구성 프로젝트를 호스팅하는 사람에게 비용을 지급하는 SourceHut 인스턴스를 구축하는 과정에서 취약점을 발견했으며, 연구에 NLP를 사용하지 않았음 SourceHut은 여러 마이크로서비스로 구성됨 주요 서비스로 meta.sr.ht, git.sr.ht, hub.sr.ht가 있으며, 공식 인스턴스의 hub 서비스는 sr.ht에서 운영됨 builds.sr.ht는 CI를 담당함 mirror.sr.ht는 사전 빌드 패키지를 배포하며 mirror.srht.network로 점차 이전 중임 사전 빌드 패키지는 공식 인스턴스와 동일한 배포판 버전을 사용하는 환경에서 설치를 쉽게 해줌 다른 배포판이나 Alpine 버전을 쓰려면 sr.ht-apkbuilds를 포크해 서명 키, Alpine 버전, 미러를 조정할 수 있음 Arch용 sr.ht-pkgbuilds도 있으나 사실상 유지보수가 중단된 상태이며, 패치를 보내는 것은 가능할 수 있음 소프트웨어 배포에는 curl|sudo bash나 폴더에서 Claude를 실행하도록 안내하는 방식 대신 정식 패키지를 고려할 필요가 있음 패키징을 쉽게 하려면 최소한 간단한 configure 스크립트와 make install 또는 ninja install 경로를 제공할 수 있음 정적 바이너리 대신 AppImage를 사용하는 선택에도 의문이 남음 builds.sr.ht로 패키지를 부트스트랩하던 중 로그의 스크롤 동작을 살펴보다 동일한 TrueCol...

Read Entire Article