Podatności Nodemailer
33 znanych podatności CVE w Nodemailer, przetłumaczonych i ocenionych.
- GHSA-2x7j-588g-ccc2Wysokie
Parser adresów e-mail w Nodemailer (lib/addressparser/index.js) przetwarza listę adresów oddzielonych przecinkami w czasie kwadratowym (O(n²)) w zależności od liczby adresów. Pojedynczy spreparowany ciąg adresów (np. w polach To, Cc, Bcc, From, Reply-To) może spowodować znaczne spowolnienie.
- GHSA-6vj9-mwq6-2f5vŚrednie
Globalna pamięć podręczna DNS w Nodemailer jest kluczowana tylko według `host`, ale każdy wpis przechowuje również specyficzny dla wywołującego `servername` TLS. Gdy dwa bezpośrednie transporty SMTPS używają tego samego hosta DNS z różnymi wartościami `tls.servername`, nazwa serwera z pierwszego transportu jest zwracana do drugiego.
- GHSA-p6gq-j5cr-w38fWysokie
W nodemailer v9.0.0 opcja `raw` na poziomie wiadomości omija zabezpieczenia `disableFileAccess` i `disableUrlAccess`, umożliwiając odczyt dowolnych plików oraz pełny atak SSRF (Server-Side Request Forgery) w wysyłanej wiadomości.
- GHSA-r7g4-qg5f-qqm2Średnie
Nodemailer wyłącza weryfikację certyfikatów TLS w swoim wewnętrznym kliencie HTTPS, ustawiając rejectUnauthorized: false w pliku lib/fetch/index.js. Powoduje to, że żądania tokenów OAuth2 ufają nieprawidłowym lub samopodpisanym certyfikatom HTTPS.
- GHSA-268h-hp4c-crq3Średnie
Podatność w bibliotece Nodemailer umożliwia wstrzyknięcie nagłówków poprzez pole `list.*.comment`, które nie jest oczyszczane ze znaków CR (`\r`) i LF (`\n`). Atakujący może dostarczyć złośliwą wartość w tym polu, co prowadzi do fałszowania nagłówków wiadomości e-mail.
- GHSA-wqvq-jvpq-h66fŚrednie
Podatność w Nodemailer pozwala na obejście opcji `disableFileAccess` i `disableUrlAccess` w przypadku korzystania z `jsonTransport`. Mimo że normalny strumień MIME wymusza te ograniczenia, `jsonTransport` serializuje wiadomość w sposób, który je pomija, umożliwiając potencjalny dostęp do lokalnych plików lub zewnętrznych URL-i.
- GHSA-wmmp-3585-3rmpŚrednie
Nodemailer rozwiązuje międzynarodowe (IDN / nie-ASCII) domeny odbiorcy na inny etykietę Punycode (xn--) niż standardowe parsery zgodne z UTS-46 (np. przeglądarki, URL Standard, Node's url.domainToASCII, Python's idna). Jego normalizator adresów _normalizeAddress może prowadzić do błędnego rozpoznania domeny, co może być wykorzystane do ataków typu phishing lub przejęcia wiadomości.
- GHSA-cc9r-2j5m-2m83Średnie
Parser adresów e-mail w Nodemailer traktuje komentarz RFC 5322 (w nawiasach) w domenie jako miejsce łączenia tekstu, zamiast jako białe znaki składane (CFWS), które kończą domenę. To może prowadzić do błędnego parsowania adresu, np. [email protected](x)evil.c..., umożliwiając atakującemu przekierowanie wiadomości lub obejście walidacji.
- GHSA-8vvx-rff5-p5rqŚrednie
Podatność w pakiecie nodemailer (npm) dotyczy wersji od 2.7.2 do 10.0.1. Szczegóły podatności nie są w pełni opisane w dostarczonym fragmencie, ale potwierdzono podatne wersje.
- GHSA-4ffr-jq9g-5ffxŚrednie
Klient SMTP Nodemailer stosuje cztery wyrażenia regularne do odpowiedzi EHLO w celu wykrycia mechanizmów SASL. Każdy wzorzec zawiera nakładające się podwzorce dopasowujące białe znaki, co powoduje kwadratowe (O(n^2)) cofanie przy długich nazwach mechanizmów.
- GHSA-g73g-hqqh-jr95Średnie
Parser adresów Nodemailer ma trzy opublikowane i załatane poprawki dotyczące obsługi komentarzy RFC 5322 w addr-spec. Opis obejmuje wcześniejsze problemy ze sklejaniem atomów domeny i lokalnej części oraz powiązane poprawki ReDoS.
- GHSA-4g23-2xm8-66gcŚrednie
Parser odpowiedzi klienta SMTP w Nodemailer składa wielowierszowe odpowiedzi serwera, dołączając każdą linię kontynuacji do jednego wpisu i ponownie testując, czy jest to odpowiedź częściowa. Test częściowej odpowiedzi wykonuje operacje na łańcuchach przy każdej linii, co może prowadzić do nieefektywnego przetwarzania.
- GHSA-8m3c-c648-2xjjŚrednie
Opcje disableFileAccess i disableUrlAccess w Nodemailer służą jako piaskownica uniemożliwiająca niezaufanej treści wiadomości czytanie lokalnych plików lub wykonywanie żądań HTTP(S). Poprawka dla wcześniejszej podatności (GHSA-wqvq-jvpq-h66f) może być niekompletna, umożliwiając obejście zabezpieczeń.
- CVE-2026-82854Krytyczne
Nodemailer przed wersją 8.0.4 jest podatny na wstrzykiwanie komend SMTP przez niesanityzowany parametr envelope.size. Gdy aplikacja przekazuje niestandardowy obiekt envelope z właściwością size zawierającą znaki CRLF do sendMail(), wartość jest konkatenowana do komendy SMTP MAIL FROM (jako SIZE=...) bez sanityzacji, co pozwala na wstrzyknięcie dowolnych komend SMTP, takich jak RCPT TO, w celu cichego dodania adresatów kontrolowanych przez atakującego.
- CVE-2026-110872Średnie
Nodemailer od wersji 3.0.0 do 10.0.10 zawiera podatność na odmowę usługi o złożoności kwadratowej w parserze odpowiedzi klienta SMTP (SMTPConnection._onData i isPartialResponse). Złośliwy serwer SMTP lub atakujący w ścieżce może strumieniować linie kontynuacji bez linii kończącej przed uwierzytelnieniem, blokując pętlę zdarzeń Node.js i wyczerpując pamięć.
- CVE-2026-110871Średnie
Nodemailer od wersji 3.0.0 do 10.0.10 zawiera podatność na odmowę usługi w MessageParser.parseHeaders, umożliwiającą wyczerpanie CPU przez kwadratowe rozwijanie nagłówków. Atakujący mogą dostarczyć duże listy odbiorców lub długie nagłówki rozwijające się do dziesiątek tysięcy linii kontynuacji, blokując pętlę zdarzeń Node.js podczas podpisywania DKIM.
- CVE-2026-110870Średnie
Nodemailer od wersji 3.0.0 do 10.0.13 zawiera podatność niewłaściwej walidacji danych wejściowych w parserze adresów, który nie usuwa komentarzy RFC 5322 wewnątrz adresów w nawiasach kątowych. Atakujący mogą podać odbiorców z komentarzem w nawiasach w domenie, przez co nielegalne znaki trafiają do envelope.to i RCPT TO, powodując odrzucenie dostarczenia lub konflikty interpretacji parsera omijające listy dozwolonych domen.
- CVE-2026-110869Wysokie
Nodemailer w wersjach od 3.0.0 do 10.0.13 zawiera podatność typu regular expression denial of service w metodzie SMTPConnection._actionEHLO. Złośliwy lub pośredniczący serwer SMTP może odpowiedzieć na EHLO ciągiem 250-AUTH z długim ciągiem białych znaków i niedopasowanym tokenem, blokując pętlę zdarzeń Node.js na dziesiątki sekund lub godziny przed uwierzytelnieniem.
- CVE-2026-100702Średnie
Nodemailer przed wersją 10.0.2 nie spłaszcza poprawnie głęboko zagnieżdżonych tablic w polach odbiorców, takich jak to, cc i bcc, co pozwala atakującym spowodować wyczerpanie stosu. Atakujący może dostarczyć głęboko zagnieżdżoną tablicę JSON odbiorców, która wyzwala rekurencyjną konwersję Array.toString(), wyczerpując stos i kończąc proces Node.js.
- CVE-2026-100701Średnie
Nodemailer w wersjach 5.0.0 do 10.0.1 używa globalnej pamięci podręcznej DNS, która jest kluczowana tylko przez host DNS, podczas gdy każdy wpis pamięci podręcznej przechowuje również specyficzny dla wywołującego serwer TLS (servername). Gdy dwa transporty direct TLS/SMTPS (secure: true) rozwiązują ten sam host nie-IP z różnymi wartościami tls.servername, servername pierwszego transportu jest zwracane przy trafieniu w pamięć podręczną i nadpisuje jawnie skonfigurowaną wartość drugiego transportu, więc Nodemailer wysyła błędną wartość SNI i waliduje certyfikat peera względem błędnej tożsamości. W usługach wielodostępnych lub bramkach SMTP z routingiem SNI, atakujący, który może zainicjować pamięć podręczną, może spowodować, że transport ofiary połączy się z wirtualnym hostem TLS atakującego i zaakceptuje certyfikat atakującego nawet przy rejectUnauthorized: true, ujawniając poświadczenia SMTP ofiary. Naprawione w 10.0.2.
- CVE-2026-100700Wysokie
nodemailer w wersjach przed 10.0.6 zawiera podatność typu denial of service w wyrażeniu regularnym fallbacku free-text parsera adresów, które wykazuje kwadratowe zachowanie backtrackingu. Atakujący mogą dostarczyć spreparowane wartości nagłówków e-mail z długimi ciągami bez spacji, aby zablokować pętlę zdarzeń Node.js na dziesiątki sekund, powodując niedostępność usługi.
- CVE-2026-100699Średnie
Nodemailer to biblioteka do wysyłania e-maili w Node.js. W wersjach >= 9.1.0 i < 10.0.9 parser adresów (src/addressparser) błędnie obsługuje adresy, których część lokalna jest ciągiem w cudzysłowie i które są poprzedzone komentarzami RFC 5322, co pozwala na zachowanie końcowych atomów domeny oddzielonych komentarzami w znormalizowanym adresie. Na przykład wejście "user"@example.com(x)evil.com jest parsowane do wartości adresu '[email protected] evil.com', która zawiera dodatkowy tekst domeny kontrolowany przez atakującego, oddzielony spacją. Ta sparsowana wartość jest używana bez dalszej ścisłej walidacji odbiorcy podczas budowania koperty wiadomości (envelope.to w src/mime-node), więc nieprawidłowy/niejednoznaczny adres odbiorcy może zostać zaakceptowany i umieszczony w kopercie SMTP. Nie potwierdzono, czy skutkuje to dostarczeniem do niezamierzonego odbiorcy na prawdziwych serwerach SMTP. Problem jest wariantem problemu parsowania komentarzy RFC 5322 opisanego w GHSA-cc9r-2j5m-2m83, dotyczącym osobnej ścieżki kodu z cytowaną częścią lokalną. Wersja 10.0.9 zawiera poprawkę.
- CVE-2026-92598Średnie
Nodemailer przed wersją 9.1.0 nie stosuje normalizacji UTS-46 przy kodowaniu międzynarodowych nazw domen, przez co resolver domen oblicza inny A-label Punycode niż parsery zgodne ze standardem. Atakujący może tworzyć adresy odbiorców z niewidocznymi znakami lub mapowaniami zgodności, które przechodzą kontrolę listy dozwolonych domen, ale są dostarczane do domen kontrolowanych przez atakującego przez SMTP.
- CVE-2026-92597Średnie
Nodemailer w wersjach od 6.9.16 do 9.1.0 błędnie parsuje komentarze RFC 5322 w adresach e-mail. Komentarz zamknięty bezpośrednio przed znakiem niebędącym białym znakiem powoduje sklejenie atomów wokół komentarza, przez co adres taki jak [email protected](x)evil.com jest interpretowany jako domena good-corp.comevil.com. Może to prowadzić do dostarczenia wiadomości do domeny kontrolowanej przez atakującego. Naprawiono w wersji 9.1.0.
- CVE-2026-92596Wysokie
Nodemailer przed wersją 9.1.0 zawiera podatność na kwadratową złożoność czasową w komponencie addressparser, która pozwala zdalnym atakującym wywołać odmowę usługi poprzez dostarczenie spreparowanej listy adresów oddzielonych przecinkami. Atakujący może wysłać pojedynczy e-mail z dużą liczbą adresów, aby zablokować pętlę zdarzeń Node.js na dłuższy czas, zużywając 100% CPU i zamrażając proces.
- CVE-2026-92595Średnie
Nodemailer w wersjach 9.1.0 i wcześniejszych nie respektuje opcji sandboxa disableFileAccess i disableUrlAccess, gdy treść wiadomości jest rozwiązywana przez publiczne API pluginów MailMessage.resolveContent() z użyciem starej trzyargumentowej sygnatury. W efekcie kod pluginu lub aplikacji może zostać zmuszony do odczytu dowolnych plików lokalnych lub wykonania wychodzących żądań HTTP(S) (SSRF), omijając włączony sandbox. Naprawiono w wersji 9.1.1.
- CVE-2026-90776Wysokie
Biblioteka Nodemailer w wersjach 9.1.0 do 10.0.4 zawiera podatność na atak typu denial of service wynikającą z kwadratowej złożoności obliczeniowej w komponencie addressparser podczas przetwarzania adresów e-mail z komentarzami zgodnymi z RFC 5322. Atakujący może przygotować złośliwe nagłówki e-mail z atomami rozdzielonymi komentarzami, co powoduje nadmierne zużycie CPU i blokuje pętlę zdarzeń Node.js na kilka sekund.
- CVE-2026-82853Średnie
Nodemailer przed wersją 8.0.5 zawiera podatność na wstrzykiwanie komend SMTP w opcji nazwy transportu używanej w komendach EHLO/HELO. Parametr name jest konkatenowany bezpośrednio do komend SMTP bez sanityzacji znaków powrotu karetki i nowej linii, co pozwala atakującym na wstrzyknięcie dowolnych komend SMTP w celu fałszowania e-maili i ataków phishingowych.
- CVE-2026-82662Średnie
Nodemailer przed wersją 8.0.8 wyłącza weryfikację certyfikatów TLS w pliku lib/fetch/index.js przez ustawienie rejectUnauthorized: false, co umożliwia atakującym przechwycenie żądań tokenów OAuth2. Atakujący w pozycji man-in-the-middle mogą przechwycić sekrety klienta OAuth, tokeny odświeżania i tokeny dostępu przesyłane przez skompromitowane połączenia HTTPS.
- CVE-2026-82661Średnie
Nodemailer przed wersją 8.0.9 nie sanityzuje znaków powrotu karetki i nowej linii w polach komentarzy list, co umożliwia atakującym wstrzyknięcie dowolnych nagłówków wiadomości. Atakujący kontrolujący parametry list.*.comment może wstrzyknąć sekwencje CRLF, tworząc dodatkowe nagłówki w generowanych wiadomościach RFC822, co zmienia zachowanie klienta poczty i semantykę wiadomości.
- CVE-2026-82660Średnie
Nodemailer przed wersją 8.0.9 nie egzekwuje opcji disableFileAccess i disableUrlAccess podczas normalizacji wiadomości w jsonTransport. Atakujący mogą odczytywać lokalne pliki lub pobierać adresy URL, podając wartości path lub href w polach treści wiadomości, omijając zamierzone kontrolki dostępu.
- CVE-2026-82659Wysokie
nodemailer przed wersją 9.0.1 nie stosuje flag disableFileAccess i disableUrlAccess do opcji raw na poziomie wiadomości, co pozwala uwierzytelnionym atakującym na odczyt dowolnych plików lub przeprowadzenie ataku SSRF poprzez podanie właściwości path lub href. Atakujący mogą wykorzystać to, tworząc surowe wiadomości ze ścieżkami plików lub adresami URL, które omijają zamierzoną piaskownicę, a pobrana treść jest dostarczana w wychodzącej wiadomości do kontrolowanych przez atakującego odbiorców.
- CVE-2024-58379Średnie
Nodemailer przed wersją 6.9.9 zawiera podatność na regular expression denial of service (ReDoS) w parsowaniu e-maili, gdy ustawiony jest parametr attachDataUrls lub podczas przetwarzania osadzonych załączników. Atakujący mogą wysyłać specjalnie spreparowane e-maile ze złośliwymi adresami URL danych lub osadzonymi załącznikami, powodując zawieszenie pętli zdarzeń i odmowę usługi.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

