🔍 CVE-2026-71850

4.8
CVSS Score
MEDIUM
2026-08-07
2026-10-24 15:10
✅ 완료

🇰🇷 한글 설명

Hono 프레임워크의 hono/jsx 내 memo() 함수가 서버 사이드 렌더링 결과를 재사용할 때, 요청 범위(request-scoped)의 컨텍스트 값을 비교 대상에 포함하지 않는 취약점입니다. 이로 인해 이전 사용자의 데이터나 CSRF 토큰, 프로필 정보 등이 포함된 HTML이 다른 사용자에게 노출될 수 있습니다.

💡 쉬운 설명

웹사이트가 화면을 빠르게 보여주려고 이전 사용자의 정보를 저장해두었다가, 다음 사용자에게 잘못 전달하는 문제입니다. 이 과정에서 다른 사람의 개인정보나 보안 토큰이 내 화면에 나타날 수 있습니다.

🇺🇸 원문 (English)

Hono is a Web application framework that provides support for any JavaScript runtime. From 3.8.0 to 4.12.33, memo() from hono/jsx retains the result of a server side render and reuses it for later renders with comparator equal props, and request scoped values read inside the component take no part in that comparison, so a response can contain HTML rendered for another user's request. Components wrapped with memo() are compared by props alone; values read implicitly during rendering, such as JSX Context through createContext() and useContext(), useRequestContext() from hono/jsx-renderer, and getContext() from hono/context-storage, do not participate, and the retained result lives as long as the wrapped component, so it outlives the request that produced it. A user may receive a response containing HTML rendered for another user when both render the same memoized component with comparator equal props on the same warm instance, which may disclose another user's account or profile data, disclose request scoped secrets embedded in HTML such as CSRF tokens, or expose role specific content to users who should not receive it. This issue is fixed in version 4.12.34.

📍 영향받는 시스템

Hono framework (version 3.8.0 to 4.12.33)

⚔️ 공격 벡터

동일한 메모리 인스턴스에서 동일한 props를 가진 memoized 컴포넌트를 요청하여 타인의 컨텍스트 데이터가 포함된 응답을 탈취

🛡️ 대응 방법

Hono 프레임워크를 버전 4.12.34 이상으로 업데이트

🔧 검증 코드

출력된 버전이 4.12.34 미만(3.8.0 ~ 4.12.33)인지 확인

Shell / Script
npm list hono | grep hono

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

IBM WebSphere Application Server