Firefox WebAssembly 무효 포인터 취약점


요약
CVE-2026-15718은 Firefox의 JavaScript·WebAssembly 처리 과정에서 발생하는 메모리 안전 취약점이다. Mozilla는 Firefox 152.0.6에서 문제를 수정했다. exploit 코드는 공개됐지만, 2026-07-14 advisory 게시 시점에 실제 악용(in the wild)은 확인되지 않았다.
| 항목 | 내용 |
|---|---|
| CVE | CVE-2026-15718 |
| 영향 컴포넌트 | Firefox JavaScript·WebAssembly |
| 취약점 유형 | Invalid pointer 처리 |
| 수정 버전 | Firefox 152.0.6 |
| exploit 공개 | 확인 |
| 실제 악용 | Mozilla가 인지한 사례 없음 |
| 사용자 상호작용 | 필요 |
| 공개일 | 2026-07-14 |
공개 exploit과 실제 악용은 다른 상태다
Mozilla가 확인한 것은 exploit 코드의 공개다. advisory 게시 시점에는 이 취약점을 악용한 실제 공격을 인지하지 못했다고 밝혔다.
취약점 분석
이 취약점은 Firefox의 JavaScript: WebAssembly 컴포넌트에서 invalid pointer가 처리되는 메모리 안전 문제다. 유효한 객체를 가리키지 않는 포인터가 메모리 관리 경로에 전달되면 브라우저 콘텐츠 프로세스가 비정상 종료되거나 메모리 상태가 손상될 수 있다.
수집된 공개 자료에는 다음 코드 수준 정보가 포함되지 않았다.
- 취약 함수 또는 클래스
- 트리거되는 WebAssembly opcode
- 포인터 수명 관리 흐름
- patch diff와 변경된 검증 로직
- 안정적인 메모리 읽기·쓰기 primitive
- RCE로 이어지는 exploit chain
따라서 공개 exploit의 존재만으로 RCE나 sandbox escape까지 단정할 수 없다. 확인되는 기술적 범위는 JavaScript·WebAssembly 처리 경로의 invalid pointer 문제와 Firefox 152.0.6에서의 수정이다.
악용 조건
CISA-ADP가 제공한 CVSS v3.1 평가는 4.3점이며 벡터는 AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:N이다.
| 지표 | 의미 |
|---|---|
AV:N | 네트워크를 통해 공격 콘텐츠 전달 가능 |
AC:L | 낮은 공격 복잡도 |
PR:N | 사전 권한 불필요 |
UI:R | 사용자의 콘텐츠 처리 필요 |
S:U | 보안 범위 변경 없음 |
C:L | 제한적인 기밀성 영향 |
I:N | 무결성 영향 없음 |
A:N | 가용성 영향 없음 |
공개된 정보만으로 구체적인 요청 형식이나 WebAssembly 입력 구조를 재현할 수는 없다. 공격자가 통제하는 콘텐츠를 Firefox에서 처리하는 상황이 전제되지만, 특정 메모리 primitive나 코드 실행 단계는 확인되지 않았다.
패치와 영향 범위
수정 버전은 Firefox 152.0.6이다. Firefox가 설치된 단말은 실행 파일 버전과 현재 실행 중인 프로세스를 함께 확인해야 한다. 업데이트가 완료됐더라도 기존 프로세스가 계속 실행 중이면 갱신된 바이너리가 아직 로드되지 않았을 수 있다.
ESR과 모바일 제품군의 영향 여부는 수집된 자료만으로 확인되지 않는다. 해당 제품은 각 제품군의 별도 advisory와 릴리스 정보를 기준으로 판단한다.
탐지 포인트
네트워크
고유한 IOC나 안정적인 요청 패턴은 공개되지 않았다. .wasm 파일 접근만으로 악성 여부를 판단하면 정상 WebAssembly 애플리케이션과 충돌한다.
다음 이벤트를 함께 연계한다.
- 신규 또는 평판이 낮은 출처에서 전달된 WebAssembly 콘텐츠
- 동일 URL 방문 직후 반복되는 Firefox 콘텐츠 프로세스 종료
- 브라우저 충돌 시각과 일치하는 프록시·DNS 기록
- exploit 배포 페이지로 분류된 URL의 접근 기록
엔드포인트
Windows 단말에서는 일반 설치 경로의 파일 버전과 Firefox 프로세스 실행 상태를 함께 수집한다.
$paths = @(
"$env:ProgramFiles\Mozilla Firefox\firefox.exe",
"${env:ProgramFiles(x86)}\Mozilla Firefox\firefox.exe"
)
$running = [bool](Get-Process firefox -ErrorAction SilentlyContinue)
foreach ($path in $paths) {
if (Test-Path -LiteralPath $path) {
$file = Get-Item -LiteralPath $path
[PSCustomObject]@{
Path = $file.FullName
Version = $file.VersionInfo.ProductVersion
Running = $running
}
}
}
| 관측 결과 | 판단 | 조치 |
|---|---|---|
| 152.0.6 미만 버전 발견 | 수정 버전 미적용 | 152.0.6 이상으로 업데이트 |
| 152.0.6 이상이며 기존 프로세스 실행 중 | 업데이트 전 프로세스가 남아 있을 수 있음 | Firefox 재시작 후 버전 재확인 |
| 표준 경로에서 버전 수집 실패 | 사용자 영역 또는 휴대용 설치 가능 | 소프트웨어 인벤토리와 사용자 프로필 경로 확인 |
| 특정 URL 방문 후 반복 충돌 | exploit 시도 가능성 | URL, DNS, 프록시, 충돌 덤프를 연계 분석 |
EDR에서는 firefox.exe 콘텐츠 프로세스의 반복 종료, Windows Error Reporting 이벤트, 충돌 덤프 생성 시각을 우선 확인한다. 단일 충돌만으로 취약점 악용을 판정하지 않고 네트워크 기록과 방문 이력을 결합한다.
서버
조직이 운영하는 웹 서비스에서 WebAssembly를 배포한다면 배포 이력과 변경 시점을 보존한다. 정상 서비스의 .wasm 해시와 출처를 기준선으로 만들면 신규 파일이나 비인가 변경을 구분하는 데 도움이 된다.
프록시나 웹 게이트웨이에서 .wasm 전체를 일괄 차단하는 방식은 정상 서비스에 영향을 줄 수 있다. 출처 평판, 신규 도메인, 브라우저 충돌 이벤트가 함께 나타나는 세션을 중심으로 조사한다.
대응
- Firefox를 152.0.6 이상으로 업데이트한다.
- 업데이트 후 Firefox 프로세스를 완전히 종료하고 다시 실행한다.
- 자동 업데이트 정책과 실제 설치 버전이 일치하는지 점검한다.
- 사용자 프로필 아래의 휴대용 설치와 비표준 경로를 인벤토리에 포함한다.
- 업데이트 전 노출 단말은 브라우저 충돌, 방문 URL, DNS 및 프록시 기록을 함께 조사한다.
- 공개 exploit은 탐지 로직 검증에 필요한 구조와 흔적만 분석하고 운영 단말에서 실행하지 않는다.