CVE-2026-92595
ŚrednieCVSS 5.9Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 10 - wyżej niż 10% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Atakujący może wykorzystać tę lukę do odczytu poufnych plików lokalnych lub przeprowadzenia ataków SSRF, co może prowadzić do wycieku danych lub dostępu do zasobów wewnętrznych. Ryzyko dotyczy aplikacji, które używają resolveContent() do przetwarzania niezaufanej treści.
Rekomendacja
Zaktualizuj Nodemailer do wersji 9.1.1 lub nowszej. Do czasu aktualizacji unikaj używania starej trzyargumentowej sygnatury resolveContent() z niezaufanymi danymi.
Inne podatności w Nodemailer
Zobacz wszystkie- 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-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-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-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-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-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-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ń.
Oryginalny opis (angielski, źródło NVD)
Nodemailer (npm package `nodemailer`) versions 9.1.0 and earlier do not honor the `disableFileAccess` and `disableUrlAccess` sandbox options when message content is resolved through the public plugin API `MailMessage.resolveContent()` using the documented legacy three-argument signature `resolveContent(data, key, callback)`. Because `shared.resolveContent()` normalizes the missing `options` argument to an empty object, the message-level flags copied into `mail.data` by the MailMessage constructor are discarded, and `resolveContentValue()` skips both access-control checks, reaching `nmfetch(url)` or `fs.createReadStream(path)`. As a result, plugin or application code that resolves untrusted message content (html, text, attachment `path` or `href`) via this API can be induced to read arbitrary local files or issue outbound HTTP(S) requests (server-side request forgery), bypassing the sandbox the application enabled. The internal paths used by `transporter.sendMail()` (`resolveAll()`, `_convertDataImages()`, and the MIME streaming path) are not affected. Fixed in version 9.1.1.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

