문제 신고
← 전체 글

보안

원클릭으로 설치되는 Nextcloud 앱에 5주 동안 백도어가 심겼다. 아무도 듣지 못했고, 끄는 것으로는 막히지 않는다

CVE-2026-110447은 Collabora의 내장 CODE 앱을 통해 인증 없는 요청 하나로 Nextcloud 서버에서 명령을 실행하게 한다. 수정판은 9월 11일 보안 언급 없이 출시됐고, 로그에 남은 첫 공격은 9월 10일, 권고문 공개는 10월 14일이었다.

MAI
Nextcloud가 자사 프레스킷에 공개한 로고. 겹쳐진 세 개의 호로 이루어진 구름 마크 옆에 소문자 'nextcloud' 워드마크가 놓여 있다.

Collabora는 10월 14일 CVE-2026-110447에 대한 보안 권고문을 공개했다. Nextcloud 앱스토어에 "Collabora Online – Built-in CODE Server"로 올라와 있는 앱 richdocumentscode의 인증 불필요 운영체제 명령 주입 취약점이다. CVSS v4 기본 점수는 9.2이며 CWE-78로 분류된다. 자격 증명이 없는 원격 요청 하나가 웹 서버 실행 계정 권한으로 명령을 실행한다. 26.4.303 이전의 모든 버전이 영향을 받는다.

이 사안의 핵심은 날짜다. 수정은 9월 9일에 병합됐다. 관리자들이 로그에서 찾아낸 첫 공격 요청은 9월 10일에 도착했다. 26.4.303은 9월 11일에 출시됐지만 릴리스 노트에는 보안에 관한 언급이 전혀 없었다. 권고문이 나온 것은 10월 14일이다. 5주 동안 이 결함은 수정된 상태이면서 동시에 악용되는 상태로 남아 있었고, 구멍을 닫은 사람은 어차피 업데이트를 하던 관리자들뿐이었다.

영향 범위

구성 요소영향상태
richdocumentscode — Built-in CODE Server26.4.303 이전 전 버전26.4.303에서 수정
richdocuments — Nextcloud Office, 내장 서버 없이 사용없음—
단독 구성 Collabora Online 서버없음—

수정 버전은 Nextcloud 30 이상을 요구한다. 결함은 GitHub 사용자 wwwshellcodeit이 신고했고, 권고문은 Collabora의 Caolán McNamara가 공개했다.

앱을 비활성화하는 것은 완화책이 아니다

권고문은 이 점을 분명히 적었다.

문제를 피하려면 앱을 비활성화하는 것만으로는 충분하지 않다. 26.4.303 이상으로 업그레이드하거나 제거해야 한다.

취약한 진입점은 proxy.php라는 PHP 스크립트로, 앱 자체 디렉터리에 놓여 웹 서버가 직접 제공한다. 앱이 켜져 있는지에 대한 Nextcloud 쪽의 상태 정보는 이 판단에 전혀 개입하지 않는다. "선택적 앱의 치명적 결함"이라고 읽고 비활성화 버튼을 누른 뒤 넘어간 관리자는 여전히 노출된 상태다.

권고문의 두 번째 조건도 같은 정도의 주의를 받을 만하다. 공격이 성립하는 것은 내장 CODE 서버가 실행되지 않는 구간 — 컨테이너 재시작 직후, 업그레이드 중, 또는 크래시 이후 — 이다. 통상의 직관은 공격을 받으려면 서비스가 떠 있어야 한다는 것이다. 여기서는 평범한 유지보수 재부팅이 입구가 된다. 즉 노출은 간헐적이며, 확인해 보려는 사람의 손에서는 재현되지 않는다.

실제로 피해를 입는 쪽

CODE는 Collabora Online Development Edition의 약자로, Collabora가 운영 환경이 아니라 평가와 소규모 도입을 위해 제공하는 무료 빌드다. 권고문 스레드에서 Collabora의 Michael Meeks는 "이것은 Development Edition에만 영향을 준다"고 답했다. 정확한 말이지만, 동시에 노출 규모를 작게 보이게 한다.

내장 CODE 서버가 존재하는 이유는 별도의 문서 서버를 세우는 일이 번거롭기 때문이다. Nextcloud 앱스토어에서 원클릭으로 들어오는 선택지이고, 그래서 운영 인력이 없는 설치본에 올라가 있다. 작은 비영리단체, 학교, 부서 단위 파일 공유, 가정용 서버다. 그런 설치본은 동시에 Nextcloud 30을 돌리고 있을 가능성이 가장 낮다. 이미 지원이 종료된 Nextcloud 29 이하에서는 설치할 수 있는 수정판 앱이 아예 없다. 공식적인 답은 플랫폼 전체를 업그레이드하거나 앱을 삭제하는 것이다. Nextcloud 메이저 업그레이드를 조용한 주말까지 미뤄 두었던 관리자는 그때까지 실제로 악용되고 있는 원격 코드 실행 결함을 안고 있어야 한다.

수정판 위쪽 경로도 깔끔하지 않다. 9월 24일 출시된 26.4.402는 일부 환경에서 CODE 서버가 시작되지 않거나 문서가 열리지 않는다는 보고가 있어, 관리자들이 26.4.303으로 되돌렸다. 표준적인 지침은 "최신 버전으로 올려라"다. 여기서 올바른 지침은 특정 버전으로 올리고 거기서 멈추라는 것이다.

해야 할 조치

richdocumentscode를 26.4.303 이상으로 업그레이드하거나 앱을 제거한다. 비활성화로는 부족하다.

9월 10일 이후 어느 시점에든 이 앱이 26.4.303 미만 상태로 인터넷에서 접근 가능했다면, 비켜 갔다고 가정하지 말고 침해 가능성이 있는 것으로 다룬다. 권고문 스레드에서 공격을 보고한 관리자들은 앱 디렉터리에 shx*.php 형태의 이름을 가진 웹셸이 남아 있는 것을 발견했다. 존재를 확인하고 있으면 삭제한다. 웹 서버 접근 로그를 최소 9월 10일까지 거슬러 올라가 해당 앱의 프록시 엔드포인트로 들어온 요청을 점검한다. 검색해야 할 구체적인 요청 형태는 Collabora의 권고문과 공개된 분석 글에 실려 있다. 마지막으로, 웹 서버 계정이 읽을 수 있었던 모든 것 — 설정 파일과 저장된 문서를 포함해 — 을 노출됐을 수 있는 것으로 다룬다. 지금까지 보고된 사례는 root까지 도달하지 않았다. 피해의 상한은 정해지지만, 피해가 없어지는 것은 아니다.

상류에서 고쳐야 할 부분

CVE-2026-110447은 같은 프록시에 있던 CVE-2025-66208과 다른 코드 경로이며, 권고문은 이전 수정이 이번 문제를 막지 못한다고 명시한다. 같은 작은 스크립트를 상대로 인증 불필요 명령 주입 권고문이 약 1년 사이에 두 번 나왔다는 사실은, 그 안의 한 줄에 대한 진술이 아니라 그 구성 요소의 설계에 대한 진술이다.

공개 지연이 나머지 절반이다. 조용히 내보낸 수정이 공격자가 알아차리기 전에 관리자가 패치할 시간을 벌어 준다는 관행은, 공격자가 아직 알아차리지 못했다는 것을 전제로 한다. 이번에는 그들이 릴리스 전날 이미 들어와 있었다. 그 지점을 지나면 조용한 패치는 시간을 벌어 주지 않는다. 방어자가 필요로 했던 단 하나의 정보를 감출 뿐이다.

Sources: Collabora Online advisory GHSA-g3vx-3m76-fghh, The Hacker News, BleepingComputer, IT-Connect, CVE-2026-110447 record

이어서 읽기