4.4 Medium
CVSS3
Attack Vector
NETWORK
Attack Complexity
HIGH
Privileges Required
HIGH
User Interaction
NONE
Scope
UNCHANGED
Confidentiality Impact
HIGH
Integrity Impact
NONE
Availability Impact
NONE
CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:N/A:N
4.7 Medium
AI Score
Confidence
High
0.0004 Low
EPSS
Percentile
9.1%
urllib3 is a user-friendly HTTP client library for Python. When using urllib3’s proxy support with ‘ProxyManager’, the ‘Proxy-Authorization’ header is only sent to the configured proxy, as expected. However, when sending HTTP requests without using urllib3’s proxy support, it’s possible to accidentally configure the ‘Proxy-Authorization’ header even though it won’t have any effect as the request is not using a forwarding proxy or a tunneling proxy. In those cases, urllib3 doesn’t treat the ‘Proxy-Authorization’ HTTP header as one carrying authentication material and thus doesn’t strip the header on cross-origin redirects.
Note that Nessus has not tested for this issue but has instead relied only on the application’s self-reported version number.
#%NASL_MIN_LEVEL 80900
##
# (C) Tenable, Inc.
##
include('compat.inc');
if (description)
{
script_id(200807);
script_version("1.2");
script_set_attribute(attribute:"plugin_modification_date", value:"2024/06/24");
script_cve_id("CVE-2024-37891");
script_xref(name:"IAVA", value:"2024-A-0363");
script_name(english:"urllib3 Python Library < 1.26.19, < 2.2.2 (CVE-2024-37891)");
script_set_attribute(attribute:"synopsis", value:
"A Python library installed on the remote host is affected by a vulnerability.");
script_set_attribute(attribute:"description", value:
"urllib3 is a user-friendly HTTP client library for Python. When using urllib3's proxy support with 'ProxyManager', the
'Proxy-Authorization' header is only sent to the configured proxy, as expected. However, when sending HTTP requests
without using urllib3's proxy support, it's possible to accidentally configure the 'Proxy-Authorization' header even
though it won't have any effect as the request is not using a forwarding proxy or a tunneling proxy. In those cases,
urllib3 doesn't treat the 'Proxy-Authorization' HTTP header as one carrying authentication material and thus doesn't
strip the header on cross-origin redirects.
Note that Nessus has not tested for this issue but has instead relied only on the application's self-reported version
number.");
# https://github.com/urllib3/urllib3/security/advisories/GHSA-34jh-p97f-mpxf
script_set_attribute(attribute:"see_also", value:"http://www.nessus.org/u?7b44847c");
script_set_attribute(attribute:"solution", value:
"Upgrade to urllib3 version 1.26.19, 2.2.2 or later.");
script_set_cvss_base_vector("CVSS2#AV:N/AC:H/Au:M/C:C/I:N/A:N");
script_set_cvss_temporal_vector("CVSS2#E:U/RL:OF/RC:C");
script_set_cvss3_base_vector("CVSS:3.0/AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:N/A:N");
script_set_cvss3_temporal_vector("CVSS:3.0/E:U/RL:O/RC:C");
script_set_attribute(attribute:"cvss_score_source", value:"CVE-2024-37891");
script_set_attribute(attribute:"exploitability_ease", value:"No known exploits are available");
script_set_attribute(attribute:"exploit_available", value:"false");
script_set_attribute(attribute:"vuln_publication_date", value:"2024/06/17");
script_set_attribute(attribute:"patch_publication_date", value:"2024/06/17");
script_set_attribute(attribute:"plugin_publication_date", value:"2024/06/21");
script_set_attribute(attribute:"plugin_type", value:"local");
script_set_attribute(attribute:"cpe", value:"cpe:/a:python:urllib3");
script_set_attribute(attribute:"stig_severity", value:"II");
script_end_attributes();
script_category(ACT_GATHER_INFO);
script_family(english:"Misc.");
script_copyright(english:"This script is Copyright (C) 2024 and is owned by Tenable, Inc. or an Affiliate thereof.");
script_dependencies("python_packages_installed_nix.nasl");
script_require_keys("Host/nix/Python/Packages/Enumerated");
exit(0);
}
include('vcf.inc');
include('python.inc');
get_kb_item_or_exit("Host/nix/Python/Packages/Enumerated");
var os = 'nix';
var pkg = 'urllib3';
var found_lib, libs = [];
found_lib = python::query_python_package(os:os, pkg_name:pkg);
if (!empty_or_null(found_lib))
foreach (var found in found_lib)
{
found.pkg_name = pkg;
append_element(var:libs, value:found);
}
if (empty_or_null(libs))
audit(AUDIT_HOST_NOT, 'affected');
var lib = branch(libs);
var lib_info = {
'app' : lib.pkg_name,
'version' : lib.version,
'display_version' : lib.version,
'parsed_version' : vcf::parse_version(lib.version),
'path' : lib.path + '/' + lib.pkg_name
};
var constraints = [
{ 'fixed_version' : '1.26.19' },
{ 'min_version' : '2.0', 'fixed_version' : '2.2.2'}
];
vcf::check_version_and_report(app_info:lib_info, constraints:constraints, severity:SECURITY_WARNING);
4.4 Medium
CVSS3
Attack Vector
NETWORK
Attack Complexity
HIGH
Privileges Required
HIGH
User Interaction
NONE
Scope
UNCHANGED
Confidentiality Impact
HIGH
Integrity Impact
NONE
Availability Impact
NONE
CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:N/A:N
4.7 Medium
AI Score
Confidence
High
0.0004 Low
EPSS
Percentile
9.1%