This is a booby-trapped package that only works if someone brings it inside and opens it
CVE-2025-8088 is a Windows-only WinRAR path traversal bug that abuses NTFS Alternate Data Streams during archive extraction. A crafted archive can make vulnerable WinRAR components write files outside the folder the user chose, including persistence-friendly locations like Startup, %TEMP%, or user-writable app paths. Affected software includes WinRAR for Windows, Windows RAR/UnRAR, UnRAR.dll, and portable Windows UnRAR builds before 7.13; Linux/Unix builds and RAR for Android are not affected.
The vendor/NVD HIGH label is directionally right, but the raw 8.8 overstates broad enterprise urgency because this is not an internet-reachable service bug. It needs delivery, a victim using WinRAR on Windows, and user interaction to open/extract the archive. What keeps it firmly HIGH instead of a downgrade to MEDIUM is the ugly combination of KEV status, confirmed in-the-wild abuse, low exploit complexity once the archive lands, and a clean path to persistence and code execution under the victim context.
4 steps from start to impact.
Deliver a weaponized archive
- Attacker can reach the target user by email, chat, file share, or download portal
- Target environment allows inbound archive delivery
- WinRAR or another affected Windows UnRAR component exists on the host
- Email security, sandboxing, and content disarm can stop the archive before delivery
- Some users will never open RAR attachments
- Many enterprises have shifted from WinRAR to built-in ZIP handling or 7-Zip
Trigger extraction in WinRAR
UI:R matters in practice: no click, no bug.- Victim uses vulnerable WinRAR/UnRAR before
7.13 - Victim opens or extracts the archive
- The archive is processed on Windows/NTFS-relevant paths
- User interaction is mandatory
- Security-aware users may inspect archive contents first
- If the file is opened with unaffected tooling, the exploit chain dies
WinRAR.exe, rar.exe, or UnRAR.dll writing outside the selected extraction path.Write payload outside the chosen folder
- Target path is writable by the victim
- Windows path semantics and ADS handling behave as expected
- EDR does not block the anomalous file write
- ACLs and application control can limit where the payload lands
- Some persistence paths need additional execution opportunities after write
- EDR may flag an archiver writing to Startup or other unusual locations
Startup, %AppData%, %ProgramData%, or dropping executable content outside the chosen extraction root.Gain execution and persistence
- Dropped payload is executable or leads to executable follow-on behavior
- User logs in, reboots, or otherwise triggers persistence path
- Endpoint controls do not quarantine the payload
- This is usually user-context first, not instant SYSTEM
- Execution may be delayed until reboot/login or an operator-triggered next step
- Modern EDR often catches the post-exploitation payload even if WinRAR missed the initial write
.rar archives from the internet and external senders. Because this CVE is KEV-listed / actively exploited, deploy this compensating control immediately, within hours if patching cannot complete first.WinRAR.exe, rar.exe, and UnRAR.dll versions before 7.13. Prioritize endpoints used for HR, finance, executives, and admin workflows where archive lures are more likely; with active exploitation evidence, complete this triage immediately, within hours.WinRAR.exe or rar.exe writing executables, LNKs, BATs, or DLLs to Startup, %AppData%, %ProgramData%, or unexpected temp-to-autostart paths. This does not replace patching, but it can catch the exploit at the file-write stage; deploy immediately, within hours.%TEMP%, %APPDATA%, downloads, and Startup-adjacent user-writable locations where these payloads commonly land. This is especially valuable if you cannot patch every endpoint at once; implement immediately, within hours.- A network perimeter focus does not help much, because the vulnerable component is a client-side Windows archiver rather than a listening service.
- MFA is irrelevant to the exploit trigger; it may help elsewhere in the intrusion, but it does not stop malicious extraction.
- Generic vulnerability scans of internet-facing assets will miss the real problem population, because the issue lives on endpoints and packaged components like
UnRAR.dll. - Telling users to be careful is not a control. Socially engineered archive lures are exactly the scenario this bug was used for.
The supporting signals.
| In-the-wild status | Confirmed exploited. ESET reported zero-day exploitation by RomCom between 2025-07-18 and 2025-07-21, and noted a second threat actor also using the flaw. |
|---|---|
| KEV status | Yes. CISA KEV added 2025-08-12 with due date 2025-09-02. |
| PoC / exploit availability | Public PoCs exist. Example repos include sxyrxyy/CVE-2025-8088-WinRAR-Proof-of-Concept-PoC-Exploit- and detection content in travisbgreen/cve-2025-8088. |
| EPSS | 9.1% EPSS, 92.8th percentile per Wiz's mirror of FIRST data; your supplied intel of 0.091 is consistent with that. |
| CVSS vector | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H — the score is high because impact can become full CIA loss, but UI:R is the real-world brake. |
| Score mismatch worth noting | There is a scoring split in the ecosystem: NVD shows 8.8 (v3.1) while CNA/secondary sources commonly show 8.4 (v4.0/CNA). That does not change the operational story: this is still a user-assisted client-side exploit. |
| Affected versions | Windows WinRAR/UnRAR family before 7.13. Official release notes name WinRAR (Windows), Windows RAR/UnRAR, UnRAR.dll, and portable Windows UnRAR source code. |
| Fixed version | 7.13 released 2025-07-30; release notes were updated 2025-08-12. |
| Exposure / scanning reality | Not meaningfully internet-scannable. This is an endpoint application issue, not a listening network service; Shodan/Censys-style internet counts are not the right exposure metric. Your reachable population is the subset of Windows endpoints that both have vulnerable WinRAR components and process untrusted archives. |
| Reporting researchers / org | Anton Cherepanov, Peter Košinár, and Peter Strýček of ESET. |
Sources.
Why this verdict
- Starts at 8.8, then loses points on reachability: this is not an unauthenticated service exploit; it is a user-assisted client-side archive bug.
- Attacker position implies an earlier stage compromise or successful social engineering: the attacker needs delivery into the enterprise and a user action to open/extract with the affected tool.
- Exposure population is narrower than CVSS assumes: only Windows hosts with vulnerable WinRAR-family components are in play, not every exposed enterprise edge system.
- Modern controls should break the chain before impact: email security, attachment detonation, EDR, and application control all have credible interception points.
- But KEV plus live campaigns pull it back up hard: ESET observed real exploitation and CISA KEV confirms this is not hypothetical lab-only risk.
- Blast radius is typically user-context first, not instant domain-wide compromise: still serious, but not the same operational category as a pre-auth edge RCE on a server fleet.
Why not higher?
This is not an internet-facing, wormable, pre-auth server bug. It needs a delivered archive, a vulnerable Windows endpoint with WinRAR-family tooling, and user interaction to trigger extraction; those are compounding frictions that materially shrink reachable population. Even after successful exploitation, the initial blast radius is usually the victim context, not immediate enterprise-wide control.
Why not lower?
KEV status means the exploitation debate is over. Real operators have already used this bug in targeted campaigns, and the exploit path is practical: write outside extraction, land in Startup or another runnable path, and convert a normal user action into persistent malware execution. For enterprise defenders, that is too operationally proven to score as MEDIUM.
Crowdsourced verification payload.
Run this on the target Windows host or through your EDR/management agent. Example: powershell -ExecutionPolicy Bypass -File .\check-winrar-cve-2025-8088.ps1; standard user rights are usually enough for file version checks, but local admin improves registry and multi-path coverage.
# check-winrar-cve-2025-8088.ps1
# Detects likely exposure to CVE-2025-8088 on Windows hosts.
# Checks WinRAR.exe / rar.exe / UnRAR.dll versions where commonly installed.
# Output: VULNERABLE / PATCHED / UNKNOWN
# Exit codes: 0=PATCHED, 1=VULNERABLE, 2=UNKNOWN
$ErrorActionPreference = 'SilentlyContinue'
$patchedVersion = [version]'7.13.0.0'
$found = @()
function Add-FoundFile {
param(
[string]$Path
)
if (Test-Path -LiteralPath $Path) {
try {
$item = Get-Item -LiteralPath $Path
$verString = $item.VersionInfo.FileVersion
if (-not [string]::IsNullOrWhiteSpace($verString)) {
$clean = ($verString -replace '[^0-9\.]', '')
$ver = [version]$clean
$script:found += [pscustomobject]@{
Path = $Path
Version = $ver
RawVersion = $verString
}
}
} catch {
}
}
}
# Common install paths
$paths = @(
"$env:ProgramFiles\WinRAR\WinRAR.exe",
"$env:ProgramFiles\WinRAR\Rar.exe",
"$env:ProgramFiles\WinRAR\UnRAR.dll",
"$env:ProgramFiles(x86)\WinRAR\WinRAR.exe",
"$env:ProgramFiles(x86)\WinRAR\Rar.exe",
"$env:ProgramFiles(x86)\WinRAR\UnRAR.dll"
)
foreach ($p in $paths) { Add-FoundFile -Path $p }
# Registry uninstall keys
$uninstallRoots = @(
'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*',
'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*',
'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*'
)
foreach ($root in $uninstallRoots) {
try {
Get-ItemProperty $root | Where-Object {
$_.DisplayName -match 'WinRAR'
} | ForEach-Object {
if ($_.InstallLocation) {
Add-FoundFile -Path (Join-Path $_.InstallLocation 'WinRAR.exe')
Add-FoundFile -Path (Join-Path $_.InstallLocation 'Rar.exe')
Add-FoundFile -Path (Join-Path $_.InstallLocation 'UnRAR.dll')
}
}
} catch {
}
}
# Deduplicate by path
$found = $found | Sort-Object Path -Unique
if (-not $found -or $found.Count -eq 0) {
Write-Output 'UNKNOWN: WinRAR/UnRAR components not found in common locations.'
Write-Output 'UNKNOWN'
exit 2
}
$vuln = $false
foreach ($f in $found) {
Write-Output ("Found: {0} | Version: {1}" -f $f.Path, $f.RawVersion)
if ($f.Version -lt $patchedVersion) {
$vuln = $true
}
}
if ($vuln) {
Write-Output 'VULNERABLE: One or more WinRAR/UnRAR components are older than 7.13.'
Write-Output 'VULNERABLE'
exit 1
} else {
Write-Output 'PATCHED: Detected WinRAR/UnRAR components are 7.13 or newer.'
Write-Output 'PATCHED'
exit 0
}