| Reporter | Title | Published | Views | Family All 10 |
|---|---|---|---|---|
| CVE-2026-48858 | 10 Jun 202614:35 | – | cve | |
| CVE-2026-48858 ftp client PASV response IP not validated against control peer, enabling SSRF and FTP bounce attacks | 10 Jun 202614:35 | – | cvelist | |
| Erlang/OTP -- FTP passive-mode client does not validate server response IP | 10 Jun 202600:00 | – | freebsd | |
| CVE-2026-48858 | 10 Jun 202614:35 | – | debiancve | |
| EUVD-2026-36055 | 10 Jun 202614:35 | – | euvd | |
| CVE-2026-48858 | 10 Jun 202616:17 | – | nvd | |
| DEBIAN-CVE-2026-48858 | 10 Jun 202622:48 | – | osv | |
| EEF-CVE-2026-48858 ftp client PASV response IP not validated against control peer, enabling SSRF and FTP bounce attacks | 10 Jun 202614:35 | – | osv | |
| PT-2026-48465 | 10 Jun 202600:00 | – | ptsecurity | |
| CVE-2026-48858 ftp client PASV response IP not validated against control peer, enabling SSRF and FTP bounce attacks | 10 Jun 202614:35 | – | vulnrichment |
| Source | Link |
|---|---|
| security-tracker | www.security-tracker.debian.org/tracker/CVE-2026-48858 |
| cve | www.cve.mitre.org/cgi-bin/cvename.cgi |
#%NASL_MIN_LEVEL 80900
##
# (C) Tenable, Inc.
##
include('compat.inc');
if (description)
{
script_id(320497);
script_version("1.1");
script_set_attribute(attribute:"plugin_modification_date", value:"2026/06/11");
script_cve_id("CVE-2026-48858");
script_name(english:"Linux Distros Unpatched Vulnerability : CVE-2026-48858");
script_set_attribute(attribute:"synopsis", value:
"The Linux/Unix host has one or more packages installed with a vulnerability that the vendor indicates will not be
patched.");
script_set_attribute(attribute:"description", value:
"The Linux/Unix host has one or more packages installed that are impacted by a vulnerability without a vendor supplied
patch available.
- 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-48858)
Note that Nessus relies on the presence of the package as reported by the vendor.");
script_set_attribute(attribute:"see_also", value:"https://security-tracker.debian.org/tracker/CVE-2026-48858");
script_set_attribute(attribute:"solution", value:
"There is no known solution at this time.");
script_set_attribute(attribute:"agent", value:"unix");
script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:P/I:P/A:P");
script_set_cvss_temporal_vector("CVSS2#E:U/RL:U/RC:C");
script_set_cvss3_base_vector("CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H");
script_set_cvss3_temporal_vector("CVSS:3.0/E:U/RL:U/RC:C");
script_set_attribute(attribute:"cvss4_vector", value:"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N");
script_set_attribute(attribute:"cvss4_threat_vector", value:"CVSS:4.0/E:U");
script_set_attribute(attribute:"cvss_score_source", value:"CVE-2026-48858");
script_set_attribute(attribute:"exploitability_ease", value:"No known exploits are available");
script_set_attribute(attribute:"exploit_available", value:"false");
script_set_attribute(attribute:"vendor_unpatched", value:"true");
script_set_attribute(attribute:"vuln_publication_date", value:"2026/06/10");
script_set_attribute(attribute:"plugin_publication_date", value:"2026/06/11");
script_set_attribute(attribute:"plugin_type", value:"local");
script_set_attribute(attribute:"cpe", value:"cpe:/o:debian:debian_linux:11.0");
script_set_attribute(attribute:"cpe", value:"cpe:/o:debian:debian_linux:12.0");
script_set_attribute(attribute:"cpe", value:"cpe:/o:debian:debian_linux:13.0");
script_set_attribute(attribute:"cpe", value:"cpe:/o:debian:debian_linux:14.0");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:debian:debian_linux:erlang");
script_set_attribute(attribute:"generated_plugin", value:"current");
script_end_attributes();
script_category(ACT_GATHER_INFO);
script_family(english:"Misc.");
script_copyright(english:"This script is Copyright (C) 2026 and is owned by Tenable, Inc. or an Affiliate thereof.");
script_dependencies("ssh_get_info2.nasl", "set_linux_os_id.nasl");
script_require_keys("Host/cpu", "Host/local_checks_enabled", "global_settings/vendor_unpatched", "Host/OS/identifier");
script_require_ports("Host/OS/Debian Linux-11", "Host/OS/Debian Linux-12", "Host/OS/Debian Linux-13", "Host/OS/Debian Linux-14");
exit(0);
}
if (!get_kb_item("global_settings/vendor_unpatched")) exit(0, "Unpatched Vulnerabilities Detection not active.");
if (!get_kb_item("Host/local_checks_enabled")) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
if (empty_or_null(get_one_kb_item("Host/Debian/dpkg-l"))) audit(AUDIT_PACKAGE_LIST_MISSING);
include('linux_unpatched.inc');
var distro_constraints_array = {
"Debian Linux-12": {
"package_manager": "dpkg-l",
"constraints": [
{
"release": "12",
"pkgs": [
{"reference": "erlang"},
{"reference": "erlang-asn1"},
{"reference": "erlang-base"},
{"reference": "erlang-common-test"},
{"reference": "erlang-crypto"},
{"reference": "erlang-debugger"},
{"reference": "erlang-dev"},
{"reference": "erlang-dialyzer"},
{"reference": "erlang-diameter"},
{"reference": "erlang-doc"},
{"reference": "erlang-edoc"},
{"reference": "erlang-eldap"},
{"reference": "erlang-erl-docgen"},
{"reference": "erlang-et"},
{"reference": "erlang-eunit"},
{"reference": "erlang-examples"},
{"reference": "erlang-ftp"},
{"reference": "erlang-inets"},
{"reference": "erlang-jinterface"},
{"reference": "erlang-manpages"},
{"reference": "erlang-megaco"},
{"reference": "erlang-mnesia"},
{"reference": "erlang-mode"},
{"reference": "erlang-nox"},
{"reference": "erlang-observer"},
{"reference": "erlang-odbc"},
{"reference": "erlang-os-mon"},
{"reference": "erlang-parsetools"},
{"reference": "erlang-public-key"},
{"reference": "erlang-reltool"},
{"reference": "erlang-runtime-tools"},
{"reference": "erlang-snmp"},
{"reference": "erlang-src"},
{"reference": "erlang-ssh"},
{"reference": "erlang-ssl"},
{"reference": "erlang-syntax-tools"},
{"reference": "erlang-tftp"},
{"reference": "erlang-tools"},
{"reference": "erlang-wx"},
{"reference": "erlang-x11"},
{"reference": "erlang-xmerl"}
]
}
]
},
"Debian Linux-11": {
"package_manager": "dpkg-l",
"constraints": [
{
"release": "11",
"pkgs": [
{"reference": "erlang"},
{"reference": "erlang-asn1"},
{"reference": "erlang-base"},
{"reference": "erlang-base-hipe"},
{"reference": "erlang-common-test"},
{"reference": "erlang-crypto"},
{"reference": "erlang-debugger"},
{"reference": "erlang-dev"},
{"reference": "erlang-dialyzer"},
{"reference": "erlang-diameter"},
{"reference": "erlang-doc"},
{"reference": "erlang-edoc"},
{"reference": "erlang-eldap"},
{"reference": "erlang-erl-docgen"},
{"reference": "erlang-et"},
{"reference": "erlang-eunit"},
{"reference": "erlang-examples"},
{"reference": "erlang-ftp"},
{"reference": "erlang-inets"},
{"reference": "erlang-jinterface"},
{"reference": "erlang-manpages"},
{"reference": "erlang-megaco"},
{"reference": "erlang-mnesia"},
{"reference": "erlang-mode"},
{"reference": "erlang-nox"},
{"reference": "erlang-observer"},
{"reference": "erlang-odbc"},
{"reference": "erlang-os-mon"},
{"reference": "erlang-parsetools"},
{"reference": "erlang-public-key"},
{"reference": "erlang-reltool"},
{"reference": "erlang-runtime-tools"},
{"reference": "erlang-snmp"},
{"reference": "erlang-src"},
{"reference": "erlang-ssh"},
{"reference": "erlang-ssl"},
{"reference": "erlang-syntax-tools"},
{"reference": "erlang-tftp"},
{"reference": "erlang-tools"},
{"reference": "erlang-wx"},
{"reference": "erlang-x11"},
{"reference": "erlang-xmerl"}
]
}
]
},
"Debian Linux-13": {
"package_manager": "dpkg-l",
"constraints": [
{
"release": "13",
"pkgs": [
{"reference": "erlang"},
{"reference": "erlang-asn1"},
{"reference": "erlang-base"},
{"reference": "erlang-common-test"},
{"reference": "erlang-crypto"},
{"reference": "erlang-debugger"},
{"reference": "erlang-dev"},
{"reference": "erlang-dialyzer"},
{"reference": "erlang-diameter"},
{"reference": "erlang-doc"},
{"reference": "erlang-edoc"},
{"reference": "erlang-eldap"},
{"reference": "erlang-et"},
{"reference": "erlang-eunit"},
{"reference": "erlang-examples"},
{"reference": "erlang-ftp"},
{"reference": "erlang-inets"},
{"reference": "erlang-jinterface"},
{"reference": "erlang-megaco"},
{"reference": "erlang-mnesia"},
{"reference": "erlang-mode"},
{"reference": "erlang-nox"},
{"reference": "erlang-observer"},
{"reference": "erlang-odbc"},
{"reference": "erlang-os-mon"},
{"reference": "erlang-parsetools"},
{"reference": "erlang-public-key"},
{"reference": "erlang-reltool"},
{"reference": "erlang-runtime-tools"},
{"reference": "erlang-snmp"},
{"reference": "erlang-src"},
{"reference": "erlang-ssh"},
{"reference": "erlang-ssl"},
{"reference": "erlang-syntax-tools"},
{"reference": "erlang-tftp"},
{"reference": "erlang-tools"},
{"reference": "erlang-wx"},
{"reference": "erlang-x11"},
{"reference": "erlang-xmerl"}
]
}
]
},
"Debian Linux-14": {
"package_manager": "dpkg-l",
"constraints": [
{
"release": "14",
"pkgs": [
{"reference": "erlang"},
{"reference": "erlang-asn1"},
{"reference": "erlang-base"},
{"reference": "erlang-common-test"},
{"reference": "erlang-crypto"},
{"reference": "erlang-debugger"},
{"reference": "erlang-dev"},
{"reference": "erlang-dialyzer"},
{"reference": "erlang-diameter"},
{"reference": "erlang-doc"},
{"reference": "erlang-edoc"},
{"reference": "erlang-eldap"},
{"reference": "erlang-et"},
{"reference": "erlang-eunit"},
{"reference": "erlang-examples"},
{"reference": "erlang-ftp"},
{"reference": "erlang-inets"},
{"reference": "erlang-jinterface"},
{"reference": "erlang-megaco"},
{"reference": "erlang-mnesia"},
{"reference": "erlang-mode"},
{"reference": "erlang-nox"},
{"reference": "erlang-observer"},
{"reference": "erlang-odbc"},
{"reference": "erlang-os-mon"},
{"reference": "erlang-parsetools"},
{"reference": "erlang-public-key"},
{"reference": "erlang-reltool"},
{"reference": "erlang-runtime-tools"},
{"reference": "erlang-snmp"},
{"reference": "erlang-src"},
{"reference": "erlang-ssh"},
{"reference": "erlang-ssl"},
{"reference": "erlang-syntax-tools"},
{"reference": "erlang-tftp"},
{"reference": "erlang-tools"},
{"reference": "erlang-wx"},
{"reference": "erlang-x11"},
{"reference": "erlang-xmerl"}
]
}
]
}
};
var distro_constraints_values = linux_unpatched::get_distro_constraints(distro_constraints_arr:distro_constraints_array);
if (empty_or_null(distro_constraints_values)) audit(AUDIT_HOST_NOT, 'affected');
var report = linux_unpatched::check_unpatched_constraints(distro_constraints_values:distro_constraints_values);
if (!empty_or_null(report))
{
security_report_v4(
port : 0,
severity : SECURITY_WARNING,
extra : report
);
exit(0);
}
else
{
audit(AUDIT_HOST_NOT, 'affected');
}
Data
Build on a solid foundation with Vulners data
We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data
Api
Power your application with Vulners API
The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access
App
Assess and manage vulnerabilities with Vulners tools
Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation