🔍 CVE-2026-48081

8.1
CVSS Score
HIGH
2026-08-06
2026-10-23 21:10
✅ 완료

🇰🇷 한글 설명

OpenReception 예약 소프트웨어 1.0.2 이전 버전에서는 테넌트 관리자(TENANT_ADMIN)가 website, imprint, privacyStatement 링크 설정에 javascript: URL을 저장할 수 있습니다. 해당 링크는 URL 스킴 필터링 없이 환자용 페이지에 <a href="javascript:...">로 렌더링되어, 환자가 클릭하면 암호화 이전의 입력 데이터에 접근하는 스크립트가 실행됩니다.

💡 쉬운 설명

관리자가 심어 둔 링크를 환자가 누르면, 환자가 입력한 예약 정보가 암호화되기 전에 몰래 읽힐 수 있습니다. 이는 서버와 관리자가 환자 데이터를 볼 수 없다는 시스템의 핵심 보안 약속을 깨뜨립니다.

🇺🇸 원문 (English)

OpenReception's appointment booking software provides an end-to-end encrypted appointment booking platform. Prior to version 1.0.2, a TENANT_ADMIN can store `javascript:` URLs in the tenant `links` configuration (`website`, `imprint`, `privacyStatement`). These values are returned to the patient-facing landing page via `/api/public`, hydrated into the SvelteKit Button component, and rendered as `<a href="javascript:...">` elements without URL-scheme filtering. A patient who clicks any such link executes the attacker's JavaScript inside the patient browser origin, where patient form data is read before client-side encryption is applied. This breaks the project's central trust claim that the server is an untrusted relay and that administrators cannot read patient data. Patient-side encryption happens after form input, so JavaScript executing in the patient origin can read or alter the plaintext before encryption is performed. Version 1.0.2 fixes the issue.

📍 영향받는 시스템

OpenReception 1.0.2 미만 버전 (예약 플랫폼 환자 페이지)

⚔️ 공격 벡터

악의적인 테넌트 관리자가 links 설정에 javascript: URL을 저장하고, 환자가 해당 링크를 클릭하면 환자 브라우저에서 스크립트가 실행됨

🛡️ 대응 방법

OpenReception을 1.0.2 이상으로 업그레이드하고, 기존 links 설정에 javascript: 등 비정상 URL 스킴이 없는지 점검

🔧 검증 코드

출력된 버전이 1.0.2 미만이면 취약, 1.0.2 이상이면 패치 적용된 것으로 판단 (설치 경로는 환경에 맞게 수정 필요)

Shell / Script
grep -rE '"version"|OPENRECEPTION_VERSION' /opt/openreception/package.json 2>/dev/null | head -n 1

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:C/C:H/I:H/A:N

💻 영향받는 소프트웨어

Oracle Java SE