← Back to Feed CACHED · 2026-09-16 01:45:26 · CACHE_KEY tenable:181288
tenable:181288 · CWE-440 · Disclosed 2023-09-08

OpenSSL 1.1.1 < 1.1.1w Vulnerability

ASSESSED — NOISGATE
Vendor
Reassessed
Verdict:
Do you agree?
01 · The Real Story

Like a calculator that sometimes returns zero on a chip nobody has — scary on paper, boring in practice

CVE-2023-4807 is a bug in OpenSSL's POLY1305 MAC implementation that fails to restore non-volatile XMM registers after processing data larger than 64 bytes on Windows 64-bit systems running on processors with AVX512-IFMA instruction support (Intel Ice Lake and later). The registers are zeroed instead of being restored, which can corrupt application state. Affected versions span OpenSSL 1.1.1 through 1.1.1v, 3.0.0 through 3.0.10, and 3.1.0 through 3.1.2. Fixed in 1.1.1w, 3.0.11, and 3.1.3. Notably, 1.1.1w is the final release of the 1.1.1 branch, which went EOL on September 11, 2023.

The NVD-assigned CVSS 7.8 HIGH is wildly misleading here. The vector claims C:H/I:H/A:H — full confidentiality, integrity, and availability impact — but the actual behavior is that XMM registers get *zeroed*, not overwritten with attacker-controlled data. The OpenSSL project itself explicitly rates this LOW severity. There is no path to code execution, no data exfiltration, and no integrity violation beyond garbled calculations. The realistic worst case is a TLS connection producing incorrect AEAD results or crashing. The CVSS score is a mechanical artifact that doesn't survive contact with the actual bug report.

"Windows-only register zeroing bug on rare CPUs — OpenSSL itself rates it LOW despite CVSS 7.8."
02 · The Attack Path

4 steps from start to impact.

STEP 01

Attacker triggers CHACHA20-POLY1305 cipher selection

A remote client negotiates a TLS 1.2 or 1.3 connection using the CHACHA20-POLY1305 AEAD cipher suite. The client can influence cipher selection via the ClientHello, but the server must have this cipher enabled and must prefer it (or allow client preference). This is the only remote influence the attacker has.
Conditions required:
  • Target runs OpenSSL on Windows 64-bit
  • Server has CHACHA20-POLY1305 enabled in cipher list
  • Server allows client cipher preference or prefers CHACHA20-POLY1305
Where this breaks in practice:
  • Most Windows TLS servers use SChannel/IIS, not OpenSSL directly
  • Server admins commonly configure AES-GCM as preferred cipher on Windows
  • Many Windows deployments don't use OpenSSL at all
STEP 02

Target CPU must support AVX512-IFMA

The bug only manifests on x86_64 processors that support AVX512-IFMA instructions. This is limited to Intel Ice Lake (2019+), Tiger Lake, Sapphire Rapids, and later server/client chips, plus AMD Zen 4+. Older Xeon E5/E7, Broadwell, Skylake-SP (common in enterprise) are not affected.
Conditions required:
  • Host CPU supports AVX512-IFMA instruction set
  • OPENSSL_ia32cap environment variable has not disabled AVX512-IFMA
Where this breaks in practice:
  • Large portion of enterprise Windows fleet runs on pre-Ice Lake hardware
  • VM guests may not expose AVX512 to the guest depending on hypervisor config
  • Setting OPENSSL_ia32cap=:~0x200000 completely neutralizes the bug
Detection/coverage: Check CPU flags for avx512ifma on target hosts.
STEP 03

POLY1305 processes >64 bytes, XMM registers zeroed

When the POLY1305 MAC processes a message larger than 64 bytes, the AVX512-IFMA code path zeros all XMM registers instead of restoring them. This corrupts the calling application's state. The attacker does not control the register values — they are set to zero. The result is incorrect calculations in subsequent operations or an application crash.
Conditions required:
  • TLS message processed is larger than 64 bytes
  • Application relies on XMM register state across the OpenSSL call
Where this breaks in practice:
  • Attacker cannot inject arbitrary values — registers are zeroed
  • Impact is DoS or garbled output, not code execution
  • No known real-world application has been confirmed affected per OpenSSL advisory
STEP 04

Application crash or incorrect output

The zeroed registers cause undefined behavior in the calling application. This could manifest as incorrect cryptographic results (potential authentication bypass in theory, but no demonstrated path), numerical errors, or a segfault/crash. The OpenSSL project found no concrete affected applications at time of disclosure.
Conditions required:
  • Application must use XMM registers in a way that is sensitive to zeroing after the OpenSSL call returns
Where this breaks in practice:
  • Compiler-generated code may reload registers from stack, masking the bug entirely
  • Most server applications would simply crash and restart via process supervisor
  • No path to persistent compromise or data exfiltration has been demonstrated
Detection/coverage: Application crash logs or TLS handshake failures may indicate this issue.
03 · Intelligence Metadata

The supporting signals.

In-the-Wild ExploitationNone observed. No known campaigns, no CISA KEV listing, no vendor incident reports.
Proof-of-ConceptNo public PoC exploit code. The bug is a register corruption issue with no demonstrated offensive utility.
EPSS Score0.84% (56th percentile) — well below the threshold that indicates meaningful exploitation probability.
KEV StatusNot listed in CISA Known Exploited Vulnerabilities catalog.
CVSS VectorCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H — NVD 7.8 HIGH. OpenSSL project self-assessment: LOW. The C:H/I:H ratings are not supported by the actual bug behavior (registers zeroed, not attacker-controlled).
Affected VersionsOpenSSL 1.1.1 – 1.1.1v, 3.0.0 – 3.0.10, 3.1.0 – 3.1.2. Only Windows 64-bit on AVX512-IFMA CPUs.
Fixed Versions1.1.1w (EOL branch, final release), 3.0.11, 3.1.3. Distro backports available from Red Hat, SUSE, Ubuntu.
Exposure DataNot applicable for Shodan/GreyNoise — this is a local register corruption bug, not a remotely fingerprint-able condition.
Disclosure Date2023-09-08 (OpenSSL advisory). Tenable plugin 181288 published 2023-09-12.
ReporterBerry Schoenmakers (Eindhoven University of Technology). Reported to OpenSSL project.
04 · The Call

noisgate verdict.

Final Verdict
DOWNGRADED to LOW (2.5/10)

The single most decisive factor is that the OpenSSL project itself rates this LOW — the NVD CVSS 7.8 is a mechanical scoring artifact where C:H/I:H/A:H does not match the actual impact (registers zeroed, not attacker-controlled, no code execution path demonstrated). The bug further requires Windows 64-bit *and* AVX512-IFMA CPUs, compounding the already-narrow population to a fraction of OpenSSL deployments.

HIGH Verdict direction (downgrade from HIGH to LOW)
HIGH No exploitation in the wild
MEDIUM Blast radius limited to DoS/incorrect output

Why this verdict

  • Vendor self-assessment override: OpenSSL rates this LOW despite NVD's mechanical 7.8. The project that wrote the code says the C:H/I:H claims are unsupported — the attacker zeroes registers, they don't control them.
  • Platform restriction compounds friction: Bug is Windows 64-bit *only*, on AVX512-IFMA CPUs *only*. Most enterprise OpenSSL usage on Windows goes through SChannel, and most servers still run pre-Ice Lake hardware. The reachable population is a small fraction of the installed base.
  • No offensive utility demonstrated: No PoC, no known affected application, no path from register zeroing to code execution or data exfiltration. The worst case is a process crash that a supervisor restarts.
  • Role multiplier: OpenSSL is embedded in high-value components (web servers, load balancers, identity proxies). However, this specific bug (a) only fires on Windows+AVX512-IFMA, (b) maxes out at DoS/crash, and (c) has no path to domain takeover, data exfiltration, or supply-chain compromise. Even on a domain controller running OpenSSL on Windows with an Ice Lake CPU, the outcome is a service restart — not credential theft. The blast radius is host-level DoS, not fleet-scale compromise, so the role multiplier does not elevate the floor beyond LOW.

Why not higher?

Elevating to MEDIUM or above would require either a demonstrated path to code execution, attacker-controlled register values, or evidence of real-world exploitation — none of which exist. The OpenSSL project's own LOW rating, the absence of any PoC, and the narrow hardware prerequisite (AVX512-IFMA on Windows only) all argue against a higher bucket. The CVSS C:H/I:H ratings are not substantiated by the bug's actual behavior.

Why not lower?

IGNORE would be appropriate only if the bug were entirely theoretical or affected zero real deployments. While the population is small, AVX512-IFMA CPUs *do* exist in production (Ice Lake Xeons in newer data centers), and OpenSSL *is* used on Windows in some environments (e.g., Node.js servers, custom apps linking libssl). A defender should still track this for completeness, especially given the 1.1.1 EOL status which is a separate and more urgent concern.

05 · Compensating Control

What to do — in priority order.

  1. Set OPENSSL_ia32cap=:~0x200000 on affected Windows hosts — This environment variable disables AVX512-IFMA instructions at OpenSSL runtime, completely neutralizing the vulnerable code path. No performance impact for most workloads. Deploy via GPO or configuration management. No mitigation SLA applies at LOW severity — treat as backlog.
  2. Prefer AES-GCM ciphers over CHACHA20-POLY1305 in TLS configuration — Remove or deprioritize CHACHA20-POLY1305 from server cipher suites. This eliminates the trigger path. Most Windows servers already prefer AES-GCM.
  3. Migrate off OpenSSL 1.1.1 entirely (EOL since September 2023) — The real risk here is running an EOL cryptographic library, not this specific CVE. Upgrade to OpenSSL 3.0.x LTS or 3.1.x+ to receive ongoing security patches. This addresses the CVE and the broader unsupported-software risk simultaneously.
What doesn't work
  • WAF / IPS rules — the bug is triggered by normal TLS cipher negotiation, not malformed input. No signature can distinguish malicious from legitimate CHACHA20-POLY1305 usage.
  • Network segmentation — while it reduces attack surface generally, the trigger is a standard TLS handshake from any client that can reach the service.
06 · Verification

Crowdsourced verification payload.

Run on each Windows host where OpenSSL 1.1.1 may be installed. Execute as a standard user in PowerShell: .\check-cve-2023-4807.ps1. No admin privileges required.

noisgate-verify.ps1
POWERSHELLREAD-ONLYSAFE
#!/usr/bin/env pwsh
# check-cve-2023-4807.ps1 — Detect CVE-2023-4807 exposure
# Target: Windows hosts with OpenSSL 1.1.1
# Output: VULNERABLE / PATCHED / UNKNOWN
# Exit codes: 1=VULNERABLE, 0=PATCHED, 2=UNKNOWN

$ErrorActionPreference = 'SilentlyContinue'
$found = $false
$vulnerable = $false

# Check common OpenSSL binary locations
$searchPaths = @(
    "$env:ProgramFiles\OpenSSL*\bin\openssl.exe",
    "$env:ProgramFiles(x86)\OpenSSL*\bin\openssl.exe",
    "$env:SystemRoot\System32\openssl.exe",
    "$env:LOCALAPPDATA\Programs\*\openssl.exe"
)

# Also check PATH
$pathOpenSSL = Get-Command openssl.exe -ErrorAction SilentlyContinue
if ($pathOpenSSL) { $searchPaths += $pathOpenSSL.Source }

$binaries = @()
foreach ($p in $searchPaths) {
    $binaries += Get-Item $p -ErrorAction SilentlyContinue
}
$binaries = $binaries | Select-Object -Unique

if ($binaries.Count -eq 0) {
    Write-Host 'UNKNOWN — no OpenSSL binary found on this host.'
    exit 2
}

foreach ($bin in $binaries) {
    $verOutput = & $bin.FullName version 2>&1
    if ($verOutput -match 'OpenSSL\s+(1\.1\.1)([a-v]?)\s') {
        $found = $true
        $letter = $Matches[2]
        # 1.1.1 through 1.1.1v are vulnerable; 1.1.1w is fixed
        if ($letter -eq '' -or $letter -lt 'w') {
            $vulnerable = $true
            Write-Host "VULNERABLE — $($bin.FullName) reports: $verOutput"
        } else {
            Write-Host "PATCHED — $($bin.FullName) reports: $verOutput"
        }
    } elseif ($verOutput -match 'OpenSSL\s+3\.') {
        Write-Host "INFO — $($bin.FullName) is OpenSSL 3.x (check separately): $verOutput"
    }
}

# Check CPU for AVX512-IFMA
try {
    $cpuInfo = Get-CimInstance Win32_Processor | Select-Object -First 1
    Write-Host "CPU: $($cpuInfo.Name)"
} catch {}

# Check mitigation env var
$cap = [Environment]::GetEnvironmentVariable('OPENSSL_ia32cap', 'Machine')
if ($cap -and $cap -match '~0x200000') {
    Write-Host 'NOTE: OPENSSL_ia32cap mitigation is SET (AVX512-IFMA disabled). Bug is neutralized.'
    if ($vulnerable) {
        Write-Host 'PATCHED (via workaround)'
        exit 0
    }
}

if ($vulnerable) { exit 1 }
if ($found) { exit 0 }
Write-Host 'UNKNOWN — could not determine OpenSSL 1.1.1 version.'
exit 2
07 · Bottom Line

If you remember one thing.

TL;DR
For this specific CVE, no emergency action is needed. At a noisgate-reassessed LOW severity, there is no mitigation SLA — treat this as backlog hygiene. However, the bigger story here is that OpenSSL 1.1.1 has been end-of-life since September 2023 and receives no public security fixes. Your Monday-morning action should be to inventory all hosts still running OpenSSL 1.1.1 (Tenable plugin 181288 just handed you that list) and feed them into a migration project to OpenSSL 3.0 LTS or later. The noisgate remediation SLA for LOW is discretionary backlog, but the *EOL status* of the library should drive a more aggressive timeline — aim to eliminate OpenSSL 1.1.1 from production within your standard EOL-software remediation window. If you have hosts on Windows with Ice Lake/Sapphire Rapids CPUs that *must* stay on 1.1.1 short-term, set OPENSSL_ia32cap=:~0x200000 as a trivial workaround.

Sources

  1. Tenable Plugin 181288
  2. OpenSSL Advisory for CVE-2023-4807
  3. Wiz Vulnerability Database — CVE-2023-4807
  4. FIRST EPSS API — CVE-2023-4807
  5. OpenSSL 1.1.1 End of Life Announcement
  6. Red Hat CVE Page — CVE-2023-4807
  7. SentinelOne Vulnerability Database — CVE-2023-4807
Peer Review

What defenders are saying.

Submit a review attribution: handle + country only
0 flags selected · stored anonymously
Validation Results

Crowdsourced verification outputs.

Results submitted by users who ran the verification payload against their environment.