- Windows 로그인 직후 설치될 수 있는 ASUS DriverHub가 웹사이트와 로컬 서비스를 연결하는 방식 때문에, 사용자가 특정 웹사이트를 방문하는 것만으로 관리자 권한 코드 실행까지 이어질 수 있었음
- DriverHub는 GUI 없이 백그라운드에서 동작하며
driverhub.asus.com이 127.0.0.1:53000의 로컬 HTTP/WebSocket 서비스에 요청을 보내는 구조였고, Origin 검사가 driverhub.asus.com.* 형태의 도메인을 허용했음
UpdateApp 엔드포인트는 URL에 .asus.com 문자열만 포함되면 파일을 내려받았고, ASUS 서명 실행 파일은 관리자 권한으로 실행하면서 서명 검증에 실패한 파일은 삭제하지 않았음
- 최종 익스플로잇은 서명되지 않은
calc.exe, 조작된 AsusSetup.ini, 서명된 AsusSetup.exe를 순서대로 내려받게 한 뒤 SilentInstallRun=calc.exe로 관리자 권한 RCE를 달성함
- ASUS는 2025년 4월 수정본 배포를 확인했고 2025년 5월 9일 CVE-2025-3462와 CVE-2025-3463이 공개됐으며, 인증서 투명성 로그 기준으로 공개 전 활발한 악용 흔적은 보이지 않았음
웹사이트와 연결된 DriverHub 로컬 RPC
- ASUS 마더보드 구매 후 Windows 로그인 직후 ASUS DriverHub 설치 완료를 위해 관리자 권한을 요청하는 알림이 표시됨
- DriverHub는 별도 GUI가 아니라 백그라운드 프로세스로 동작하며, driverhub.asus.com에서 필요한 드라이버와 업데이트 대상을 안내함
- 웹사이트는 로컬에서 실행 중인 DriverHub 프로세스와 RPC로 통신함
- 로컬 서비스는
127.0.0.1의 고정 포트 53000에서 동작함
- 웹사이트나 서비스가 이 로컬 포트로 API 요청을 보내는 구조임
- 이런 구조에서 RPC 보호가 충분하지 않으면 공격자가 악성 애플리케이션 설치에 악용할 수 있음
느슨한 Origin 검사 우회
- DriverHub는 아무 웹사이트의 요청을 모두 받지는 않았고,
Origin 헤더가 driverhub.asus.com인 요청에 응답하도록 설계돼 있었음
- 문제는 검사가 정확한 비교가 아니라 문자열 포함 또는 와일드카드에 가까운 방식이었다는 점임
origin == driverhub.asus.com 같은 직접 비교가 아니었음
driverhub.asus.com.mrbruh.com을 Origin으로 설정하자 요청이 허용됨
- 공격자는 이 동작을 이용해
driverhub.asus.com.* 형태의 도메인에서 로컬 DriverHub RPC에 접근할 수 있었음
노출된 RPC 엔드포인트
- 웹사이트 JavaScript와 실행 파일 디컴파일을 통해 여러 RPC 엔드포인트가 확인됨
- 주요 엔드포인트는 다음과 같음
- Initialize: 소프트웨어 설치 여부와 기본 설치 정보를 반환함
- DeviceInfo: 설치된 ASUS 소프트웨어, 설치된
.sys 드라이버, 하드웨어 구성요소, MAC 주소를 반환함
- Reboot: 확인 없이 대상 장치를 즉시 재부팅함
- Log: DriverHub 로그 전체의 압축본을 반환함
- InstallApp: 앱 또는 드라이버 ID로 설치를 수행하며, 앱 ID는 DriverHub 설치 프로그램이 제공하는 XML 파일에 하드코딩돼 있음
- UpdateApp: 제공된 파일 URL을 내려받고 실행해 DriverHub를 자체 업데이트함
UpdateApp이 RCE 조건을 만든 방식
curl "http://127.0.0.1:53000/asus/v1.0/UpdateApp" -X POST --data-raw '{"List": [{"Url": "https://driverhub.asus.com/<app.exe>"}]}'
UpdateApp의 관찰된 동작은 RCE 체인에 필요한 조건을 여러 개 제공함
Url 파라미터에는 .asus.com 문자열이 포함돼야 했지만, example.com/payload.exe?foo=.asus.com 같은 형태도 허용됨
- 파일은 URL 끝에 지정된 파일명으로 저장됨
- 확장자와 관계없이 파일을 내려받을 수 있음
- 파일이 ASUS 서명 실행 파일이면 관리자 권한으로 자동 실행됨
- ASUS가 서명한 실행 파일이면 DriverHub 설치 프로그램이 아니어도 실행됨
- 내려받은 파일이 서명 검사에 실패해도 삭제되지 않음
- 처음에는 서명 검증 때문에 RCE가 어려워 보였지만, 서명 실패 파일이 남는 동작과 ASUS 서명 실행 파일의 설치 동작이 결합되면서 우회 경로가 생김
AsusSetup.ini를 이용한 익스플로잇 체인
신고부터 CVE 공개까지
- 취약점 처리 일정은 다음과 같음
- 2025-04-07: 초기 취약점 발견
- 2025-04-08: RCE로 확대 확인
- 2025-04-08: ASUS에 취약점 신고
- 2025-04-09: ASUS 자동 응답 수신
- 2025-04-17: 후속 연락 후 ASUS가 패치 완료와 검증용 빌드를 전달
- 2025-04-18: ASUS가 수정본 배포를 확인
- 2025-05-09: CVE-2025-3462 점수 8.4와 CVE-2025-3463 점수 9.4가 공개됨
악용 가능성과 관찰된 흔적
- 신고 직후 VPS에서 certificate transparency 업데이트를 추적하는 스크립트를 실행해
driverhub.asus.com.* 도메인 등록 여부를 확인함
- 다른 인증서 투명성 로그 웹사이트 기준으로 도메인과 서브도메인은 보통 한 달 안에 로그에 나타났음
- 한 달 뒤 확인한 결과 정규식에 맞는 웹사이트는 테스트 도메인뿐이었음
- 이 기준에서는 신고 전 활발히 악용됐을 가능성이 낮았음
ASUS 대응과 남은 이슈
- ASUS는 버그 바운티를 제공하지 않고, 대신 hall of fame에 이름을 올리겠다고 답함
- 이후 다른 보안 연구자 leonjza가 같은 Origin 검사 문제를 2025년 2월에 이미 신고했으며, ASUS는 이번 수정 시점까지 이를 고쳤음
- ASUS는 이 사실을 별도로 알리지 않았음
- cve.org 페이지에는 해당 연구자만 크레딧에 올라갔고, 추가 크레딧 반영은 하지 않겠다고 답함
- ASUS Security Advisory form으로 취약점 보고서를 제출할 때 Amazon CloudFront가 첨부된 PoC를 악성 요청으로 탐지해 제출을 차단함
- 일부 PoC 코드를 제거하고 녹화 영상 링크를 대신 제출해야 했음
- DriverHub에서 각 추천 드라이버를 개별 설치하지 않고 “Install All”을 누르면 ArmouryCrate, ASUS의 커스텀 CPU-Z, Norton360, WinRAR도 함께 설치됨
- ASUS의 CVE 설명은 RCE 범위와 영향을 좁게 표현함
- 설명에는 “motherboards에 한정되며 laptops, desktop computers에는 영향이 없다”는 취지의 문구가 있었음
- 실제로는 DriverHub가 설치된 desktops/laptops를 포함한 모든 컴퓨터에 영향이 있음
- 임의 또는 원격 코드 실행 대신 “untrusted sources가 system behaviour에 영향을 줄 수 있다”는 식으로 표현됐음