LOW CVSS 3.7
Published: 2021-02-16

CVE-2021-23839

openssl openssl Security Advisory (CVE-2021-23839)
↗ Official NIST NVD Record
Seeking technical exploit breakdowns or verified PoC code for CVE-2021-23839?
🔬 Search Writeups & Exploit Archive →

CyberVault Technical Summary

Analyst Synthesis

Technical analysis, exploit verification, and patch instructions for CVE-2021-23839 impacting openssl openssl. Evaluated with CVSS Base Score of 3.7 (LOW).

Original NVD Description

Source: NIST NVD
OpenSSL 1.0.2 supports SSLv2. If a client attempts to negotiate SSLv2 with a server that is configured to support both SSLv2 and more recent SSL and TLS versions then a check is made for a version rollback attack when unpadding an RSA signature. Clients that support SSL or TLS versions greater than SSLv2 are supposed to use a special form of padding. A server that supports greater than SSLv2 is supposed to reject connection attempts from a client where this special form of padding is present, because this indicates that a version rollback has occurred (i.e. both client and server support greater than SSLv2, and yet this is the version that is being requested). The implementation of this padding check inverted the logic so that the connection attempt is accepted if the padding is present, and rejected if it is absent. This means that such as server will accept a connection if a version rollback attack has occurred. Further the server will erroneously reject a connection if a normal SSLv2 connection attempt is made. Only OpenSSL 1.0.2 servers from version 1.0.2s to 1.0.2x are affected by this issue. In order to be vulnerable a 1.0.2 server must: 1) have configured SSLv2 support at compile time (this is off by default), 2) have configured SSLv2 support at runtime (this is off by default), 3) have configured SSLv2 ciphersuites (these are not in the default ciphersuite list) OpenSSL 1.1.1 does not have SSLv2 support and therefore is not vulnerable to this issue. The underlying error is in the implementation of the RSA_padding_check_SSLv23() function. This also affects the RSA_SSLV23_PADDING padding mode used by various other functions. Although 1.1.1 does not support SSLv2 the RSA_padding_check_SSLv23() function still exists, as does the RSA_SSLV23_PADDING padding mode. Applications that directly call that function or use that padding mode will encounter this issue. However since there is no support for the SSLv2 protocol in 1.1.1 this is considered a bug and not a security issue in that version. OpenSSL 1.0.2 is out of support and no longer receiving public updates. Premium support customers of OpenSSL 1.0.2 should upgrade to 1.0.2y. Other users should upgrade to 1.1.1j. Fixed in OpenSSL 1.0.2y (Affected 1.0.2s-1.0.2x).

📊 CVSS v3.1 Metric Breakdown

Attack Vector
Network (AV:N)
Exploitable remotely across internet boundaries
Attack Complexity
High (AC:H)
Depends on race conditions or environment
Privileges Required
None (PR:N)
Unauthenticated execution
User Interaction
None (UI:N)
Zero human interaction required
Scope
Unchanged (S:U)
Confined to same security context
Confidentiality
None (C:N)
No data confidentiality impact
Integrity
Low (I:L)
Partial data modification possible
Availability
None (A:N)
No system availability impact

🎯 Affected Versions Matrix

Affected Product openssl / openssl
Affected Versions *
Weakness Enumeration CWE-327

Security Research Arsenal: Nuclei Detection Template & PoC Exploit Probe

High-Intent Research Tool

Ready-to-use security scanner signatures, active verification probe skeletons, and remediation playbooks for CVE-2021-23839 impacting openssl openssl.

⚡ Nuclei Detection Template (YAML) cve-2021-23839.yaml
id: cve-2021-23839

info:
  name: openssl openssl - Security Advisory & Vulnerability Scan
  author: cybervault-security-intel
  severity: low
  description: |
    Automated signature & scanner for CVE-2021-23839 affecting openssl openssl.
    Evaluation: OpenSSL 1.0.2 supports SSLv2. If a client attempts to negotiate SSLv2 with a server that is configured to support both SSLv2 and more recent SSL and T...
  reference:
    - https://cybervault-cve.pages.dev/cve/CVE-2021-23839
  classification:
    cvss-metrics: CVSS:3.1/CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N
    cvss-score: 3.7
    cve-id: CVE-2021-23839
    cwe-id: CWE-327
  tags: cve,cve-2021-23839,openssl,openssl,low

http:
  - method: GET
    path:
      - "{BaseURL}/"
      - "{BaseURL}/api/"
    matchers-condition: and
    matchers:
      - type: status
        status:
          - 200
      - type: word
        words:
          - "openssl"
        part: body
🐍 PoC Exploit & Verification Probe (Python 3) poc_cve-2021-23839.py
# Proof-of-Concept Exploit & Verification Probe for CVE-2021-23839
# Target: openssl openssl | CVSS: 3.7 (LOW)
# Educational & Security Audit Purpose Only

import requests
import sys

def verify_vulnerability(target_url):
    print(f"[*] Auditing {target_url} for CVE-2021-23839 (openssl openssl)...")
    headers = {
        "User-Agent": "CyberVault-Audit-Scanner/2.0",
        "Accept": "*/*"
    }
    try:
        r = requests.get(f"{target_url.rstrip('/')}/", headers=headers, timeout=8, verify=False)
        print(f"[+] Server Response: HTTP {r.status_code} | Server Banner: {r.headers.get('Server', 'Unknown')}")
        if r.status_code < 500:
            print(f"[!] Target reachable. Verify version against openssl openssl scope (*).")
        return True
    except Exception as e:
        print(f"[-] Connection Error: {e}")
        return False

if __name__ == '__main__':
    url = sys.argv[1] if len(sys.argv) > 1 else "http://localhost:8080"
    verify_vulnerability(url)
🛡️ Quick Patch & Remediation Script (Bash) patch_cve-2021-23839.sh
# Recommended Remediation & Patching Commands for CVE-2021-23839
# 1. Update package via distribution package manager:
sudo apt-get update && sudo apt-get --only-upgrade install openssl 2>/dev/null || \
sudo dnf upgrade openssl 2>/dev/null || \
sudo yum update openssl

# 2. Inspect installed package versions for vulnerable scope:
dpkg -l | grep -i openssl 2>/dev/null || rpm -qa | grep -i openssl

# 3. Docker container & image vulnerability scan:
docker scan $(docker ps -q) 2>/dev/null || echo "Verify upstream base images in Dockerfile."

🛡️ Remediation & Security Action

  • Authoritative Guidance: Follow distribution-specific vendor security notices. Advisory status and package patches vary by distribution release.
  • Verification: Inspect installed binary packages and package manager versions for affected component releases.
  • Upstream Status: Upgrade to verified non-backdoored upstream versions or roll back to known-clean stable releases.
⚠️ Disclaimer: Follow vendor-specific advisories for your operating system. CyberVault does not fabricate unsupported remediation scripts.

❓ Frequently Asked Questions (FAQ) & Remediation Guide

How do I fix CVE-2021-23839 in openssl openssl?

Review vendor-specific security notices and update openssl openssl packages to the latest patched release immediately. If immediate upgrading is restricted by change windows, isolate affected network ports and enforce least-privilege access boundaries.

Is there an active exploit or public PoC for CVE-2021-23839?

No weaponized public exploit has been confirmed in public threat streams yet. Continuous surveillance is active across GitHub and security feeds.

What is the CVSS 3.1 severity rating and impact for CVE-2021-23839?

CVE-2021-23839 is classified with a CVSS 3.1 Base Score of 3.7 (LOW). Check the metric breakdown above for attack vector requirements.

Risk Snapshot
3.7
LOW SEVERITY
CVE ID CVE-2021-23839
Weakness CWE-327
Vendor openssl
Product openssl
Published 2021-02-16
Vector CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N