직접 두는 공동 문서라면 주의, HedgeDoc 1.12.2 가 공개된 구멍을 한꺼번에 막았다

요약

기록 링크가 다른 사람 이름으로 열리는 것이 직접 둘 때 가장 두려운 일입니다. 1.12.2 와 내려간 1.12.1 이 남의 이름으로 들어가기부터 표시 단계의 끼워 넣기, 로그인한 사람이면 누구나 일으킬 수 있는 멈춤까지 일곱 가지를 막았습니다.

추천
이름
HedgeDoc
버전
1.12.2
요금
무료
오픈소스
오픈소스
운영체제
Web
공식 사이트
https://hedgedoc.org/
업데이트
2026-11-06 23:00
공동 문서를 직접 두는 사람이 두려워하는 것은 기능이 모자란 일이 아니라, 어느 날 그 기록의 링크가 다른 사람 이름으로 열리는 일이다. HedgeDoc 1.12.2 가 고치는 것이 바로 그런 종류의 문제다.

HedgeDoc 은 공개된 방식으로 만들어진, 브라우저에서 도는 실시간 공동 Markdown 편집 도구이며 직접 설치할 수 있다. 예전 이름은 CodiMD 였고 2020 년에 이름이 겹쳐 지금 이름으로 바뀌었으며 원본은 AGPL-3.0 으로 공개되어 있다. 뜻은 소박하다. 기록 링크를 동료에게 보내면 상대는 열어서 함께 쓴다. 따로 프로그램을 깔 필요가 없고 자료는 내 서버에 남는다. 2026 년 11 월 4 일, 1.12.1 과 1.12.2 두 개의 손질 판이 잇따라 나왔다.

하루에 둘, 먼저 나온 쪽은 내려갔다

둘 다 11 월 4 일에 나왔지만 1.12.1 쪽 화면에는 안내가 붙었다. PostgreSQL 과 함께 쓰면 문제가 생겨 이 판은 내렸으니 1.12.2 를 쓰라는 내용이다. 1.12.2 자체가 고치는 것은 한 가지로, profile provider 옮기기가 PostgreSQL 에서 실패하는 문제다. 다시 말해 이미 1.12.1 로 올렸고 PostgreSQL 을 쓴다면 1.12.2 로 가는 것은 선택이 아니라 필수다.

정말로 시간을 쓸 값이 있는 것은 1.12.1 에 들어간 보안 수정 묶음이다. 공개된 일곱 개의 알림에 대응하며 권한, 인증, 내용 표시라는 가장 사고가 나기 쉬운 세 갈래를 덮는다.

왼쪽 원본, 오른쪽 미리보기로 나뉜 화면
왼쪽 원본, 오른쪽 미리보기로 나뉜 화면

일곱 알림이 고치는 것

첫째는 남의 이름으로 들어가는 일이다. 두 인증 제공처가 같은 profile id 를 내놓으면 다른 사람의 신원으로 다뤄질 수 있다. 이것은 제공처를 여럿 붙인 자체 설치에서 특히 무겁다. 관리자가 회사 계정 체계와 바깥 로그인을 함께 연결하는 경우가 많기 때문이다.

둘째는 실시간 공동 작업 코드의 멈춤으로, 잘못된 선택 한 번에 공동 통로가 끊긴다. 셋째는 슬라이드 보기가 걸러지지 않은 틀을 넣을 수 있어 HTML 끼워 넣기에 틈을 준다. 넷째는 우편 주소와 관계되어, 응답 시간의 차이로 어떤 주소가 그 설치에 등록되어 있는지 알아낼 수 있다. 시간을 단서로 쓰는 전형적인 곁길이다. 다섯째는 잘못된 권한에서 권한 강제가 빠지는 것, 여섯째는 정교하게 만든 표시 이름으로 HTML 을 끼워 넣는 것이다. 일곱째는 더 직접적이어서, 로그인한 사람이 특정 기록 별명을 쓰기만 해도 설치 전체를 멈추게 할 수 있다.

알림의 글에는 그 밖의 몇 가지 HTML 끼워 넣기 가능성도 함께 막았다고 덧붙여 있다. 자체 설치에는 이것들을 합친 무게가 작지 않다. 대부분 관리자 권한이 필요 없고 계정 하나면 되며, 어떤 경우에는 공유 링크를 열 수 있기만 하면 된다.

설치 첫 화면의 로그인과 새 기록 입구
설치 첫 화면의 로그인과 새 기록 입구

곁들여 더해진 두 가지

기능 쪽에 큰 움직임은 없지만 두 가지 변경은 짚을 만하다. 하나는 설정 항목이 늘어 OAuth2 나 OIDC 제공처가 그림 주소를 그대로 내놓을 수 있게 되었다. 모두가 만들어진 기본 그림으로 돌아갈 필요가 없어져, 로그인을 하나로 모은 팀에는 보기에도 낫다. 다른 하나는 mermaid 를 11.17 로 올려 그림 종류의 폭이 넓어진 것이다. 도는 바탕은 1.12.0 부터 Node 20.17 이 최저선이고 1.12.1 부터는 Node 26 도 시험해 정식으로 지원하므로, 옛 바탕에 머문 설치는 업그레이드를 일정에 넣어야 한다.

어떤 도구인가

속을 보면 힘을 Markdown 한 가지에 모은다. 여러 사람이 같은 기록을 동시에 쓰고 변경이 그 자리에서 퍼진다. 발표 모드로 바꾸면 기록 하나를 그대로 슬라이드로 말할 수 있다. 흐름 그림과 여러 그림을 기록 안에 넣을 수 있다. 기록 권한은 고르는 칸 하나로 공개, 들어온 사람만, 지정한 사람만으로 바꿀 수 있다. 고친 이력은 매번의 변경을 남기고 어느 옛 판으로도 되돌릴 수 있다. 쓰는 자원은 많지 않아 작은 기판에서도 돈다고 기획 쪽은 말하며, 설치 묶음과 그릇 이미지도 갖춰져 있다.

계정 체계는 OAuth2, LDAP, SAML 같은 흔한 방식에 연결할 수 있고 파일 보관은 제자리 말고 물건을 두는 창고도 지원한다. 이 조합의 뜻은 공동 기록 도구 하나 때문에 두 번째 계정 체계와 두 번째 고립된 자료를 떠안지 않아도 된다는 것이다.

바깥 로그인을 잇기 전에 앱을 등록해야 한다
바깥 로그인을 잇기 전에 앱을 등록해야 한다

올리기 전에 해 둘 두 가지

먼저 데이터베이스를 보관한다. 이번 문제는 바로 PostgreSQL 에서의 이전 단계에서 생겼고, 1.12.1 의 교훈은 올리는 길 자체가 함정을 품을 수 있다는 것이다. 되돌릴 수 있는 보관본이 어떤 안내문보다 쓸모 있다. 다음으로 도는 바탕의 판을 확인한다. Node 20.17 이 바닥이고 그보다 낮은 환경은 올린 뒤에 뜨지 않는다.

지금 올릴지는 간단히 가릴 수 있다. 설치가 바깥에 열려 있고 가입을 받거나 링크로 기록을 나눌 수 있다면, 일곱 알림 가운데 적어도 서너 개가 곧바로 해당하니 미루지 않는 편이 좋다. 반대로 안쪽 망에서만 돌고 정해진 몇 사람만 쓴다면 위험의 폭은 작다. 그래도 그냥 두어도 되는 정도는 아니다.

이번 두 판은 가슴 뛰는 새 기능을 하나도 데려오지 않았다. 한 일은 제대로 닫히지 않은 창을 하나씩 닫는 것이다. 직접 두는 이점은 자료가 내 손에 있다는 것이고 값도 거기에 있다. 수정은 내가 직접 대야 한다.
HedgeDoc다운로드
지원 운영체제: Web