Security Vulnerability Report
中文
CVE-2026-4115 CVSS 3.7 LOW

CVE-2026-4115

Published: 2026-03-22 13:16:20
Last Modified: 2026-04-30 18:33:17

Description

A vulnerability was detected in PuTTY 0.83. Affected is the function eddsa_verify of the file crypto/ecc-ssh.c of the component Ed25519 Signature Handler. The manipulation results in improper verification of cryptographic signature. The attack may be performed from remote. The attack requires a high level of complexity. The exploitability is told to be difficult. The exploit is now public and may be used. The real existence of this vulnerability is still doubted at the moment. The patch is identified as af996b5ec27ab79bae3882071b9d6acf16044549. It is advisable to implement a patch to correct this issue. The vendor was contacted early, responded in a very professional manner and quickly released a patch for the affected product. However, at the moment there is no proof that this flaw might have any real-world impact.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:a:putty:putty:0.83:*:*:*:*:*:*:* - VULNERABLE
PuTTY 0.83

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import paramiko import hashlib import binascii # Conceptual PoC for CVE-2026-4115 (Ed25519 Malleability) # This script demonstrates a test case for improper signature verification. # Note: This requires a vulnerable version of PuTTY (0.83) or a simulated environment. def manipulate_signature(original_sig): """ Manipulates the Ed25519 signature to test malleability. Ed25519 signatures should not be malleable. """ # Decode signature (R, S) r = original_sig[:32] s = original_sig[32:] # Example manipulation: Invert S component (S' = -S mod L) # This might pass verification if bounds checking is missing. l = b"\xed\xd3\xf5\x5c\x1a\x63\x12\x58\xd6\x9c\xf7\xa2\xde\xf9\xde\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" # Simplified logic for demonstration s_inv = bytes([b ^ 0xff for b in s]) # XOR flip for demonstration return r + s_inv def test_vulnerability(host, port, username, key_path): try: # Setup SSH client client = paramiko.SSHClient() client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # Load private key private_key = paramiko.Ed25519Key(filename=key_path) # Connect to trigger authentication # In a real exploit, the handshake would be intercepted or modified print(f"[*] Connecting to {host}:{port}...") # client.connect(hostname=host, port=port, username=username, pkey=private_key) print("[+] If connected, the server accepted the potentially manipulated key.") print("[!] CVE-2026-4115 requires specific server logic to be exploitable.") except Exception as e: print(f"[-] Error: {e}") if __name__ == "__main__": print("CVE-2026-4115 PoC Generator - PuTTY Ed25519 Malleability") print("This is a conceptual representation based on the vulnerability description.") # test_vulnerability("127.0.0.1", 22, "user", "id_ed25519")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-4115", "sourceIdentifier": "[email protected]", "published": "2026-03-22T13:16:20.377", "lastModified": "2026-04-30T18:33:16.693", "vulnStatus": "Analyzed", "cveTags": [{"sourceIdentifier": "[email protected]", "tags": ["disputed"]}], "descriptions": [{"lang": "en", "value": "A vulnerability was detected in PuTTY 0.83. Affected is the function eddsa_verify of the file crypto/ecc-ssh.c of the component Ed25519 Signature Handler. The manipulation results in improper verification of cryptographic signature. The attack may be performed from remote. The attack requires a high level of complexity. The exploitability is told to be difficult. The exploit is now public and may be used. The real existence of this vulnerability is still doubted at the moment. The patch is identified as af996b5ec27ab79bae3882071b9d6acf16044549. It is advisable to implement a patch to correct this issue. The vendor was contacted early, responded in a very professional manner and quickly released a patch for the affected product. However, at the moment there is no proof that this flaw might have any real-world impact."}, {"lang": "es", "value": "Una vulnerabilidad fue detectada en PuTTY 0.83. Afectada es la función eddsa_verify del archivo crypto/ecc-ssh.c del componente Gestor de Firma Ed25519. La manipulación resulta en verificación impropia de firma criptográfica. El ataque puede ser realizado desde remoto. El ataque requiere un alto nivel de complejidad. La explotabilidad se dice que es difícil. El exploit es ahora público y puede ser usado. La existencia real de esta vulnerabilidad todavía se duda en este momento. El parche se identifica como af996b5ec27ab79bae3882071b9d6acf16044549. Es aconsejable implementar un parche para corregir este problema. El proveedor fue contactado temprano, respondió de manera muy profesional y rápidamente lanzó un parche para el producto afectado. Sin embargo, en este momento no hay prueba de que este fallo pueda tener algún impacto en el mundo real."}], "metrics": {"cvssMetricV40": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "4.0", "vectorString": "CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:P/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": 2.9, "baseSeverity": "LOW", "attackVector": "NETWORK", "attackComplexity": "HIGH", "attackRequirements": "NONE", "privilegesRequired": "NONE", "userInteraction": "NONE", "vulnConfidentialityImpact": "NONE", "vulnIntegrityImpact": "LOW", "vulnAvailabilityImpact": "NONE", "subConfidentialityImpact": "NONE", "subIntegrityImpact": "NONE", "subAvailabilityImpact": "NONE", "exploitMaturity": "PROOF_OF_CONCEPT", "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:H/PR:N/UI:N/S:U/C:N/I:L/A:N", "baseScore": 3.7, "baseSeverity": "LOW", "attackVector": "NETWORK", "attackComplexity": "HIGH", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.2, "impactScore": 1.4}], "cvssMetricV2": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "2.0", "vectorString": "AV:N/AC:H/Au:N/C:N/I:P/A:N", "baseScore": 2.6, "accessVector": "NETWORK", "accessComplexity": "HIGH", "authentication": "NONE", "confidentialityImpact": "NONE", "integrityImpact": "PARTIAL", "availabilityImpact": "NONE"}, "baseSeverity": "LOW", "exploitabilityScore": 4.9, "impactScore": 2.9, "acInsufInfo": false, "obtainAllPrivilege": false, "obtainUserPrivilege": false, "obtainOtherPrivilege": false, "userInteractionRequired": false}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-345"}, {"lang": "en", "value": "CWE-347"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:putty:putty:0.83:*:*:*:*:*:*:*", "matchCriteriaId": "996A8841-3079-4C8D-A996-C1A75B2D788E"}]}]}], "references": [{"url": "https:// ... (truncated)