Source: erlang
Version: 1:27.3.4.12+dfsg-1
Severity: important
Tags: security upstream
X-Debbugs-Cc: [email protected], Debian Security Team <[email protected]>

Hi,

The following vulnerabilities were published for erlang.

CVE-2026-48855[0]:
| Exposure of Sensitive Information to an Unauthorized Actor
| vulnerability in Erlang OTP ssh (ssh_sftpd module) allows File
| Discovery.  The SSH_FXP_READLINK handler in ssh_sftpd sends the raw
| result of file:read_link/2 to the client without calling
| chroot_filename/2 to strip the backend root prefix. An authenticated
| SFTP client can create a symlink inside the chroot pointing to /;
| ssh_sftpd resolves the target to the absolute backend root and
| stores it on disk. Reading the symlink back via SSH_FXP_READLINK
| returns that absolute path, for example /data/sftp, instead of the
| chrooted value /.  The information disclosed is the absolute
| filesystem path of the SFTP root directory and of any symlink
| targets within it. No file contents, credentials, or access to paths
| outside the root directory are obtainable through this issue alone.
| This vulnerability is associated with program files
| lib/ssh/src/ssh_sftpd.erl.  This issue affects OTP from OTP 17.0
| before 29.0.2, 28.5.0.2 and 27.3.4.13 corresponding to ssh from
| 3.0.1 before 6.0.1, 5.5.2.1 and 5.2.11.8.


CVE-2026-48856[1]:
| Sensitive Data Exposure vulnerability in Erlang OTP inets
| (httpc_response module) allows Retrieve Embedded Sensitive Data.
| The httpc client forwards the Authorization and Proxy-Authorization
| request headers to redirect targets without checking whether the
| redirect crosses an origin boundary. httpc_response:redirect/2
| constructs the redirected request by updating only the host field of
| the header record; all other fields (including authorization and
| proxy_authorization) are copied verbatim. The redirect target host
| is never compared against the original host.  autoredirect defaults
| to true, so this affects all httpc callers that do not explicitly
| disable automatic redirects.  An attacker who controls a server that
| the victim contacts via httpc can issue a cross-origin 3xx redirect
| to a server they also control. The Authorization header (including
| Basic credentials derived from URL userinfo via
| httpc_request:handle_user_info/2) is forwarded to the redirect
| target, allowing credential theft. The same applies to the Proxy-
| Authorization header.  This vulnerability is associated with program
| files lib/inets/src/http_client/httpc_response.erl.  This issue
| affects OTP from 17.0 before 29.0.2, 28.5.0.2 and 27.3.4.13
| corresponding to inets from 5.10 before 9.7.1, 9.6.2.2 and 9.3.2.6.


CVE-2026-48858[2]:
| Server-Side Request Forgery (SSRF) vulnerability in Erlang/OTP ftp
| (ftp_internal module) allows FTP bounce attacks and SSRF via an
| unvalidated PASV response IP address.  The
| ftp_internal:handle_ctrl_result/2 PASV handler (mode=passive,
| ipfamily=inet, ftp_extension=false) extracts the IP address from the
| server's 227 response and passes it directly to gen_tcp:connect/4
| without validating it against the control connection peer address.
| The adjacent EPSV handlers correctly call peername(CSock) to derive
| the IP from the control connection, but the PASV handler does not. A
| malicious or compromised FTP server can redirect the client's data
| connection to an arbitrary internal host and port. On read
| operations (ftp:ls/1,2, ftp:nlist/1,2, ftp:recv/2,3), data from the
| redirected target is returned to the caller. On write operations
| (ftp:send/2,3, ftp:append/2,3), file content is sent to the
| redirected target. This enables SSRF against internal hosts, cloud
| metadata endpoints, and FTP bounce attacks against third-party
| hosts.  The vulnerable path is the default configuration
| (mode=passive, ipfamily=inet, ftp_extension=false). RFC 2577 section
| 3 explicitly recommends validating the PASV response IP against the
| control connection peer.  The ftp application is deprecated and
| scheduled for removal in OTP-30.  This vulnerability is associated
| with program files lib/inets/src/ftp/ftp_internal.erl (inets 5.10.4
| through 6.5, OTP 17.4 through 20.3) and lib/ftp/src/ftp_internal.erl
| (ftp 1.0 and later, OTP 21.0 and later).  This issue affects OTP
| from OTP 17.4 before 29.0.2, 28.5.0.2 and 27.3.4.13 corresponding to
| inets from 5.10.4 before 7.0 and ftp from 1.0 before 1.2.6, 1.2.4.1
| and 1.2.3.1.


CVE-2026-48860[3]:
| Reliance on IP Address for Authentication vulnerability in
| Erlang/OTP ssl (inet_tls_dist module) allows unauthenticated bypass
| of the distribution-over-TLS LAN allowlist.  The
| inet_tls_dist:check_ip/1 function, which enforces a LAN allowlist
| for Erlang distribution over TLS, calls inet:sockname/1 instead of
| inet:peername/1 to obtain the peer's IP address. Because
| inet:sockname/1 returns the local socket address, both the local IP
| and the supposed peer IP resolve to the same value, causing the
| subnet mask comparison to always succeed regardless of the actual
| remote address. Any holder of a CA-signed TLS certificate can
| therefore bypass the LAN restriction and gain full Erlang
| distribution access to the node, including rpc:call/4 and
| code:load_binary/3.  This vulnerability is associated with program
| file lib/ssl/src/inet_tls_dist.erl.  This issue affects OTP from OTP
| 26.0 before 29.0.2, 28.5.0.2 and 27.3.4.13 corresponding to ssl from
| 11.0 before 11.7.2, 11.6.0.2 and 11.2.12.9.


CVE-2026-49759[4]:
| Stack-based Buffer Overflow vulnerability in Erlang OTP erts
| (inet_drv) allows an unauthenticated remote attacker to crash the
| BEAM VM by sending a crafted SCTP ERROR chunk.  The
| sctp_parse_error_chunk function in
| erts/emulator/drivers/common/inet_drv.c parses SCTP ERROR chunks and
| writes cause codes into a fixed-size stack-allocated ErlDrvTermData
| spec[] array without checking bounds. A remote attacker who has
| established an SCTP association to a listening port can send a
| single crafted SCTP ERROR chunk containing enough cause codes to
| overflow the stack buffer, crashing the VM. The attacker can only
| write 16-bit values interleaved with a fixed tag, so the overflow
| does not provide a controlled return address, limiting exploitation
| to Denial of Service.  A crafted SCTP ERROR chunk may also leak bits
| and pieces of Erlang VM memory into the received error packet
| observed by the Erlang process. Such data is already readable by the
| user running the Erlang VM, so the disclosure scope is limited.
| This issue affects OTP from OTP 17.0 before 27.3.4.13, 28.5.0.2 and
| 29.0.2, corresponding to erts from 6.0 before 15.2.7.9, 16.4.0.2 and
| 17.0.2.


CVE-2026-49760[5]:
| Stack-based Buffer Overflow vulnerability in Erlang OTP
| (erl_interface) allows Stack-based Buffer Overflow.  This
| vulnerability is associated with program file
| lib/erl_interface/src/misc/ei_printterm.c and program routine
| ei_s_print_term.  The C function ei_s_print_term uses an internal
| 2000-character stack buffer to format terms. When called with an
| encoded Erlang term containing a very large integer (encoded
| representation exceeding 2000 characters), the buffer overflows. The
| overflow bytes are restricted to the ASCII values of 0-9 and A-F,
| which limits exploitation to Denial of Service.  The companion
| function ei_print_term, which prints directly to a FILE instead of a
| memory buffer, does not contain this bug.  This issue affects OTP
| from OTP 17.0 before 27.3.4.13, 28.5.0.2 and 29.0.2, corresponding
| to erl_interface from 3.7.16 before 5.5.2.1, 5.7.0.1 and 5.8.1.


If you fix the vulnerabilities please also make sure to include the
CVE (Common Vulnerabilities & Exposures) ids in your changelog entry.

For further information see:

[0] https://security-tracker.debian.org/tracker/CVE-2026-48855
    https://www.cve.org/CVERecord?id=CVE-2026-48855
[1] https://security-tracker.debian.org/tracker/CVE-2026-48856
    https://www.cve.org/CVERecord?id=CVE-2026-48856
[2] https://security-tracker.debian.org/tracker/CVE-2026-48858
    https://www.cve.org/CVERecord?id=CVE-2026-48858
[3] https://security-tracker.debian.org/tracker/CVE-2026-48860
    https://www.cve.org/CVERecord?id=CVE-2026-48860
[4] https://security-tracker.debian.org/tracker/CVE-2026-49759
    https://www.cve.org/CVERecord?id=CVE-2026-49759
[5] https://security-tracker.debian.org/tracker/CVE-2026-49760
    https://www.cve.org/CVERecord?id=CVE-2026-49760

Regards,
Salvatore

Reply via email to