Electron에서 HID(Human Interface Device)와 USB 장치 접근 권한을 확인하는 과정이, 실제 요청을 만든 프레임이 아니라 콘텐츠가 넘겨준 출처(origin)만으로 판단될 수 있는 결함이 보안 어드바이저로 공개되었습니다. 어드바이저 GHSA-fw47-9c62-h3vw에 명시된 수정 릴리스는 45.0.0-alpha.5, 44.3.0, 43.7.0, 42.11.3입니다. 장치 권한을 출처 단위로 허용해 온 Electron 데스크톱 앱이라면, 그동안의 허용 판단이 요청을 만든 프레임과 다른 출처에 적용되었을 가능성을 점검할 필요가 있습니다.
개요

Electron 보안 어드바이저 GHSA-fw47-9c62-h3vw는 "HID and USB permission checks can be attributed to the wrong origin"이라는 제목으로 HID와 USB 권한 확인이 잘못된 출처에 귀속될 수 있다는 내용을 담고 있습니다. 어드바이저에 명시된 수정 버전은 45.0.0-alpha.5, 44.3.0, 43.7.0, 42.11.3입니다.
이 결함의 핵심은 권한이 허용되었느냐가 아니라, 누구의 권한으로 허용되었느냐가 어긋날 수 있다는 점입니다. session.setPermissionCheckHandler로 HID·USB 권한 확인을 정의한 Electron 앱에서는, 확인 단계에 요청 프레임이 전달되지 않으면 핸들러가 받은 출처 값과 실제로 장치를 요청한 페이지가 서로 다를 수 있습니다.
이 글은 어드바이저와 릴리스 페이지, 42-x-y를 대상으로 한 수정 PR에 공개된 내용까지만 근거로 사용합니다. 그 밖의 세부 사항은 각 단계에서 확인된 범위와 한계를 구분해 설명합니다.
영향 범위
- HID 또는 USB 장치 권한 확인에 session.setPermissionCheckHandler를 사용하는 Electron 앱
- 신뢰할 수 없는 원격 콘텐츠를 로드하는 구성의 Electron 앱
가장 직접적으로 거론되는 위험은 HID 장치, 예를 들어 키보드나 마우스 같은 입력 장치 접근 권한이 의도와 다른 출처에 부여될 가능성과, USB 장치 접근 권한의 출처 귀속 오류로 인한 권한 우회 가능성입니다. 신뢰 경계 없이 원격 웹 콘텐츠를 표시하는 앱에서는 임의의 웹 페이지가 다른 출처의 권한으로 장치 접근 허가를 받을 수 있습니다.
이 글이 사용한 어드바이저 발췌에 명시된 버전 정보는 위 네 개의 수정 릴리스뿐입니다. 따라서 특정 배포판이 영향 범위에 포함되는지는 제공된 근거만으로는 특정할 수 없고, 자산 점검은 각 앱이 사용하는 Electron 라인이 수정 릴리스에 도달했는지를 확인하는 형태로 시작하는 것이 안전합니다.
다만 실제 영향의 크기는 각 앱의 콘텐츠 신뢰 구성에 따라 달라집니다. 로컬 콘텐츠만 로드하고 HID·USB 권한을 거의 사용하지 않는 앱과, 외부 사이트를 자유롭게 로드하면서 장치 권한을 넓게 허용하는 앱은 같은 결함이라도 노출 수준이 다릅니다. 이 구분을 뒷받침하는 근거는 권한 확인이 출처 기반으로 이루어진다는 점까지이며, 노출 수준을 수치로 비교하는 자료는 제공되지 않았습니다.
기술적 분석
수정 PR electron/electron #53736의 설명에 따르면, ElectronHidDelegate와 ElectronUsbDelegate가 HID·USB 권한 확인을 null frame 상태로 실행했고, 콘텐츠 측에서 전달받은 origin을 그대로 사용했습니다. 그 결과 session.setPermissionCheckHandler가 정의한 권한 확인 로직이 실제 요청 프레임이 아니라 전달된 출처 정보를 기준으로 판단할 수 있었습니다.
즉 근본 원인은 권한 확인 핸들러가 보는 origin과 실제 장치 접근을 요청한 프레임의 origin이 어긋날 수 있다는 점입니다. 제공된 PR의 제목은 42-x-y를 대상으로 요청 프레임을 보고하는 내용을 담고 있고, 별도로 v42.11.3 릴리스 페이지가 공개되어 있습니다. 두 자료는 각각 42-x-y 대상 PR의 존재와 v42.11.3 릴리스의 존재를 보여주며, 제공된 발췌 범위에서 두 항목이 서로 어떤 관계로 연결되는지는 확정할 수 없습니다.
이 구조에서 독자가 다시 봐야 할 지점은 핸들러 입력의 신뢰성입니다. 권한 확인에 요청 프레임이 전달되지 않는 구성에서는 핸들러에 주어진 origin 값을 요청을 만든 프레임의 출처로 해석하면 안 됩니다. 요청 프레임과 권한 확인에 사용된 origin이 어긋날 수 있다는 가능성까지가 공개된 근거의 범위이며, 어떤 화면 구성이나 네비게이션 조건에서 실제로 문제가 발생하는지 같은 구체적 악용 사전 조건은 제공된 자료로 확정할 수 없습니다.
악용 상태와 관련해, 공개된 근거 범위에서 야생에서의 실제 악용 사례는 확인되지 않았고 공개 PoC도 발견되지 않았습니다. CISA KEV 등재 여부도 확인되지 않았습니다. 따라서 이 결함의 긴급도는 확인된 악용이 아니라, 수정 릴리스가 이미 공개되어 있고 원인이 권한 경계 자체에 있다는 사실에서 판단하는 것이 적절합니다. 원격 콘텐츠를 로드하고 장치 권한을 넓게 허용하는 앱은 우선 점검 대상이고, 권한 확인 로직 검토는 업그레이드 뒤를 잇는 점검입니다.
대응 방안
먼저 사용 중인 Electron 앱과 내부 개발 앱의 버전을 자산 목록 기준으로 확인합니다. 확인 기준은 어드바이저에 명시된 수정 버전 45.0.0-alpha.5, 44.3.0, 43.7.0, 42.11.3입니다. 사용 중인 라인이 이 목록에 해당하는 수정 릴리스 이상으로 올라갔는지를 보고, 아직 도달하지 않은 라인은 해당 라인의 수정 릴리스로 업그레이드를 진행합니다. 제공된 발췌에는 하한 버전 정보가 없으므로, 버전 비교만으로 영향 여부를 단정하지 말고 각 앱이 실제로 사용하는 Electron 라인과 수정 릴리스의 관계를 확인하는 편이 안전합니다.
HID·USB 권한 확인에 session.setPermissionCheckHandler를 사용하는 앱은 핸들러의 출처 판별 로직이 의도대로 동작하는지 검토할 필요가 있습니다. 특히 원격·신뢰할 수 없는 콘텐츠를 로드하는 앱이 우선 점검 대상입니다. 권한 요청을 앱의 최소 기능에 필요한 범위로만 허용하도록 허용 목록을 좁히는 것도 함께 검토할 수 있습니다.
이미 HID·USB 권한 요청과 권한 확인 결과를 로깅하고 있다면, 요청 프레임의 출처와 확인 결과가 어긋난 이력이 있는지 점검해 볼 수 있습니다. 다만 공개된 근거에는 새로운 탐지 규칙이나 로그 항목, 지표가 제공되지 않았으므로 이 점검은 기존 로깅이 이미 존재하는 경우에만 적용 가능한 한계 조건을 갖습니다.
장기적으로는 Electron 프레임워크 버전을 최신 안정 라인으로 유지하는 업그레이드 주기를 수립하는 것이 유효합니다. 장치 권한처럼 한 번 허용되면 화면 밖으로 효과가 나가는 권한일수록 버전 관리와 최소 권한 원칙을 함께 유지하는 편이 관리 부담이 적습니다.
참고자료
- HID and USB permission checks can be attributed to the wrong origin · Advisory GHSA-fw47-9c62-h3vw
- Release electron v42.11.3
- report the requesting frame for hid and usb permission checks (42-x-y)
함께 읽으면 좋은 글
- Google ADK TypeScript FileArtifactService 경로 순회(CVE-2026-105772): 비기본 아티팩트 저장소 구성 점검
- SolarWinds Observability Self-Hosted SSRF(CVE-2026-28329): 배포 환경과 외부 요청 경계 점검
- LoopX serve-status 과도한 CORS 정책: 제어면 상태·비공개 Markdown 노출 조건 점검
본 콘텐츠는 AI 기술로 작성된 분석 리포트를 포함하고 있습니다. 내용 중 사실과 다르거나 보완이 필요한 정보를 발견하셨으면 댓글을 통해 의견을 부탁드립니다. 여러분의 피드백은 더 정확한 보안 정보 공유에 큰 도움이 됩니다.
댓글 (0)
댓글을 작성하려면 로그인이 필요합니다.
로그인아직 댓글이 없습니다.
첫 번째 댓글을 작성해보세요!