Linux Distros Unpatched Vulnerability : CVE-2026-102904
| Reporter | Title | Published | Views | Family All 23 |
|---|---|---|---|---|
| CVE-2026-102904 | 29 Sep 202620:47 | – | cve | |
| CVE-2026-102904 JupyterLab: Argument injection in JupyterLab extension uninstall exposes server-readable files and internal URLs | 29 Sep 202620:47 | – | cvelist | |
| CVE-2026-102904 | 29 Sep 202620:47 | – | debiancve | |
| EUVD-2026-89459 | 1 Oct 202615:21 | – | euvd | |
| JupyterLab: Argument injection in JupyterLab extension uninstall exposes server-readable files and internal URLs | 1 Oct 202615:21 | – | github | |
| CVE-2026-102904 | 29 Sep 202621:17 | – | nvd | |
| CGA-4JHR-Q36M-2JQX | 2 Oct 202612:05 | – | osv | |
| CGA-HMW5-CVG7-6XF3 | 2 Oct 202614:43 | – | osv | |
| DEBIAN-CVE-2026-102904 | 29 Sep 202621:17 | – | osv | |
| GHSA-3325-V43H-43RV JupyterLab: Argument injection in JupyterLab extension uninstall exposes server-readable files and internal URLs | 1 Oct 202615:21 | – | osv |
10
| Source | Link |
|---|---|
| security-tracker | www.security-tracker.debian.org/tracker/CVE-2026-102904 |
| ubuntu | www.ubuntu.com/security/CVE-2026-102904 |
| cve | www.cve.mitre.org/cgi-bin/cvename.cgi |
#%NASL_MIN_LEVEL 80900
##
# (C) Tenable, Inc.
##
include('compat.inc');
if (description)
{
script_id(358357);
script_version("1.2");
script_set_attribute(attribute:"plugin_modification_date", value:"2026/10/02");
script_cve_id("CVE-2026-102904");
script_name(english:"Linux Distros Unpatched Vulnerability : CVE-2026-102904");
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.
- JupyterLab is an extensible environment for interactive and reproducible computing, based on the Jupyter
Notebook Architecture. From JupyterLab 4.0.0 until 4.5.11 and 4.6.4, the PyPI Extension Manager uninstall
request reaches ExtensionHandler.post, which validates extension names for installation but passes
uninstall names to PyPIExtensionManager.uninstall and python -m pip uninstall without rejecting option-
like values. The security impact requires that the PyPI Extension Manager is enabled, the account can call
the extension API, and kernels and terminals are disabled or delegated to remote hosts; otherwise the user
can already read files and make outbound requests directly. An authenticated user with extension API
access can supply a pip requirements option to make the server read a local file or fetch an internal URL,
and reflected parse errors can return the first unparsable line or response content. A pip log option can
also create or corrupt a chosen path with pip-generated log text, but the requester cannot select an
arbitrary disclosed line or arbitrary file content, and the injection does not add code execution or
availability impact beyond ordinary package removal. This issue is fixed in JupyterLab 4.5.11 and 4.6.4.
(CVE-2026-102904)
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-102904");
script_set_attribute(attribute:"see_also", value:"https://ubuntu.com/security/CVE-2026-102904");
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:S/C:P/I:P/A:N");
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:L/UI:N/S:U/C:L/I:L/A:N");
script_set_cvss3_temporal_vector("CVSS:3.0/E:U/RL:U/RC:C");
script_set_attribute(attribute:"cvss_score_source", value:"CVE-2026-102904");
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/09/29");
script_set_attribute(attribute:"plugin_publication_date", value:"2026/10/01");
script_set_attribute(attribute:"plugin_type", value:"local");
script_set_attribute(attribute:"cpe", value:"cpe:/o:canonical:ubuntu_linux:26.04:-:lts");
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:canonical:ubuntu_linux:jupyterlab");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:debian:debian_linux:jupyterlab");
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-13", "Host/OS/Debian Linux-14", "Host/OS/Ubuntu Linux-26.04");
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-13": {
"package_manager": "dpkg-l",
"constraints": [
{
"release": "13",
"pkgs": [
{"reference": "jupyterlab"}
]
}
]
},
"Debian Linux-14": {
"package_manager": "dpkg-l",
"constraints": [
{
"release": "14",
"pkgs": [
{"reference": "jupyterlab"}
]
}
]
},
"Ubuntu Linux-26.04": {
"package_manager": "dpkg-l",
"constraints": [
{
"release": "26.04",
"pkgs": [
{"reference": "jupyterlab"}
]
}
]
}
};
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 third_party_support = get_kb_item('Host/OS/extended-third-party');
if (!empty_or_null(third_party_support)) {
var third_party_vendors = distro_constraints_values['third_party'];
if (!empty_or_null(third_party_vendors)) {
var vendor;
foreach vendor (third_party_vendors) {
if (vendor == third_party_support) exit(0, 'A third party management patch is available for this vulnerability from ' + vendor + '.\n');
}
}
}
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
02 Oct 2026 00:00Current
6.4Medium risk
Vulners AI Score6.4
CVSS 3.15.4
EPSS0.00206
SSVC