| Reporter | Title | Published | Views | Family All 957 |
|---|---|---|---|---|
| Exploit for Race Condition in Canonical Ubuntu_Linux | 10 Nov 202110:33 | ā | gitee | |
| Exploit for Off-by-one Error in Sudo_Project Sudo | 14 Apr 202123:08 | ā | gitee | |
| Exploit for Off-by-one Error in Sudo_Project Sudo | 12 Oct 202120:51 | ā | gitee | |
| Exploit for Off-by-one Error in Sudo_Project Sudo | 23 Nov 202116:28 | ā | gitee | |
| Exploit for Off-by-one Error in Sudo_Project Sudo | 14 Mar 202122:44 | ā | gitee | |
| Exploit for Improper Handling of Exceptional Conditions in Sudo_Project Sudo | 1 Feb 202122:21 | ā | gitee | |
| Exploit for Off-by-one Error in Sudo_Project Sudo | 27 Sep 202114:38 | ā | gitee | |
| Exploit for Off-by-one Error in Sudo_Project Sudo | 11 Dec 202100:59 | ā | gitee | |
| Exploit for Off-by-one Error in Sudo_Project Sudo | 27 Aug 202116:41 | ā | gitee | |
| Exploit for Off-by-one Error in Sudo_Project Sudo | 1 Feb 202121:54 | ā | gitee |
#%NASL_MIN_LEVEL 80900
##
# (C) Tenable, Inc.
#
# The descriptive text and package checks in this plugin were
# extracted from Tencent Linux Security Advisory TSSA-2022:0113.
##
include('deprecated_nasl_level.inc');
include('compat.inc');
if (description)
{
script_id(238810);
script_version("1.3");
script_set_attribute(attribute:"plugin_modification_date", value:"2025/11/23");
script_cve_id(
"CVE-2019-14287",
"CVE-2019-18634",
"CVE-2019-19232",
"CVE-2021-23239",
"CVE-2021-23240",
"CVE-2021-3156"
);
script_xref(name:"CISA-KNOWN-EXPLOITED", value:"2022/04/27");
script_name(english:"TencentOS Server 3: sudo (TSSA-2022:0113)");
script_set_attribute(attribute:"synopsis", value:
"The remote TencentOS Server 3 host is missing one or more security updates.");
script_set_attribute(attribute:"description", value:
"The version of Tencent Linux installed on the remote TencentOS Server 3 host is prior to tested version. It is,
therefore, affected by multiple vulnerabilities as referenced in the TSSA-2022:0113 advisory.
Package updates are available for TencentOS Server 3 that fix the following vulnerabilities:
CVE-2019-14287:
In Sudo before 1.8.28, an attacker with access to a Runas ALL sudoer account can bypass certain policy
blacklists and session PAM modules, and can cause incorrect logging, by invoking sudo with a crafted user
ID. For example, this allows bypass of !root configuration, and USER= logging, for a sudo -u
\#$((0xffffffff)) command.
CVE-2019-18634:
In Sudo before 1.8.26, if pwfeedback is enabled in /etc/sudoers, users can trigger a stack-based buffer
overflow in the privileged sudo process. (pwfeedback is a default setting in Linux Mint and elementary OS;
however, it is NOT the default for upstream and many other packages, and would exist only if enabled by an
administrator.) The attacker needs to deliver a long string to the stdin of getln() in tgetpass.c.
CVE-2019-19232:
** DISPUTED ** In Sudo through 1.8.29, an attacker with access to a Runas ALL sudoer account can
impersonate a nonexistent user by invoking sudo with a numeric uid that is not associated with any user.
NOTE: The software maintainer believes that this is not a vulnerability because running a command via sudo
as a user not present in the local password database is an intentional feature. Because this behavior
surprised some users, sudo 1.8.30 introduced an option to enable/disable this behavior with the default
being disabled. However, this does not change the fact that sudo was behaving as intended, and as
documented, in earlier versions.
CVE-2021-23239:
The sudoedit personality of Sudo before 1.9.5 may allow a local unprivileged user to perform arbitrary
directory-existence tests by winning a sudo_edit.c race condition in replacing a user-controlled directory
by a symlink to an arbitrary path.
CVE-2021-23240:
selinux_edit_copy_tfiles in sudoedit in Sudo before 1.9.5 allows a local unprivileged user to gain file
ownership and escalate privileges by replacing a temporary file with a symlink to an arbitrary file
target. This affects SELinux RBAC support in permissive mode. Machines without SELinux are not vulnerable.
CVE-2021-3156:
Sudo before 1.9.5p2 contains an off-by-one error that can result in a heap-based buffer overflow, which
allows privilege escalation to root via sudoedit -s and a command-line argument that ends with a single
backslash character.
Tenable has extracted the preceding description block directly from the Tencent Linux security advisory.
Note that Nessus has not tested for these issues but has instead relied only on the application's self-reported version
number.");
script_set_attribute(attribute:"see_also", value:"https://mirrors.tencent.com/tlinux/errata/tssa-20220113.xml");
script_set_attribute(attribute:"solution", value:
"Update the affected packages.");
script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:S/C:C/I:C/A:C");
script_set_cvss_temporal_vector("CVSS2#E:H/RL:OF/RC:C");
script_set_cvss3_base_vector("CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H");
script_set_cvss3_temporal_vector("CVSS:3.0/E:H/RL:O/RC:C");
script_set_attribute(attribute:"cvss_score_source", value:"CVE-2019-14287");
script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available");
script_set_attribute(attribute:"exploit_available", value:"true");
script_set_attribute(attribute:"exploit_framework_core", value:"true");
script_set_attribute(attribute:"exploited_by_malware", value:"true");
script_set_attribute(attribute:"metasploit_name", value:'Sudo Heap-Based Buffer Overflow');
script_set_attribute(attribute:"exploit_framework_metasploit", value:"true");
script_set_attribute(attribute:"exploit_framework_canvas", value:"true");
script_set_attribute(attribute:"canvas_package", value:"CANVAS");
script_set_attribute(attribute:"vuln_publication_date", value:"2022/07/04");
script_set_attribute(attribute:"patch_publication_date", value:"2022/07/04");
script_set_attribute(attribute:"plugin_publication_date", value:"2025/06/16");
script_set_attribute(attribute:"plugin_type", value:"local");
script_set_attribute(attribute:"cpe", value:"cpe:/o:tencent:tencentos_server:3");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:tencent:tencentos_server:sudo");
script_set_attribute(attribute:"generated_plugin", value:"current");
script_end_attributes();
script_category(ACT_GATHER_INFO);
script_family(english:"Tencent Local Security Checks");
script_copyright(english:"This script is Copyright (C) 2025 and is owned by Tenable, Inc. or an Affiliate thereof.");
script_dependencies("ssh_get_info2.nasl");
script_require_keys("Host/local_checks_enabled", "Host/etc/os-release", "Host/TencentOS/rpm-list", "Host/cpu");
exit(0);
}
include('rpm2.inc');
if (!get_kb_item('Host/local_checks_enabled')) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
var os_product = get_kb_item('installed_os/local/SSH/0/product');
if (isnull(os_product) || 'TencentOS' >!< os_product) audit(AUDIT_OS_NOT, 'TencentOS');
var os_version = get_kb_item('installed_os/local/SSH/0/version');
if (isnull(os_version)) audit(AUDIT_UNKNOWN_APP_VER, 'TencentOS');
if (! preg(pattern:"^3([^0-9]|$)", string:os_version)) audit(AUDIT_OS_NOT, 'TencentOS 3.x', 'TencentOS ' + os_version);
if (!get_kb_item('Host/TencentOS/rpm-list')) audit(AUDIT_PACKAGE_LIST_MISSING);
var cpu = get_kb_item('Host/cpu');
if (isnull(cpu)) audit(AUDIT_UNKNOWN_ARCH);
if ('x86_64' >!< cpu && cpu !~ "^i[3-6]86$" && 's390' >!< cpu && 'aarch64' >!< cpu) audit(AUDIT_LOCAL_CHECKS_NOT_IMPLEMENTED, 'TencentOS', cpu);
var constraints = [
{
'release': '3',
'pkgs': [
{'reference':'sudo-1.8.29-7.tl3.1', 'cpu':'aarch64', 'rpm_spec_vers_cmp':TRUE},
{'reference':'sudo-1.8.29-7.tl3.1', 'cpu':'x86_64', 'rpm_spec_vers_cmp':TRUE},
{'reference':'sudo-debuginfo-1.8.29-7.tl3.1', 'cpu':'aarch64', 'rpm_spec_vers_cmp':TRUE},
{'reference':'sudo-debuginfo-1.8.29-7.tl3.1', 'cpu':'x86_64', 'rpm_spec_vers_cmp':TRUE},
{'reference':'sudo-debugsource-1.8.29-7.tl3.1', 'cpu':'aarch64', 'rpm_spec_vers_cmp':TRUE},
{'reference':'sudo-debugsource-1.8.29-7.tl3.1', 'cpu':'x86_64', 'rpm_spec_vers_cmp':TRUE},
{'reference':'sudo-devel-1.8.29-7.tl3.1', 'cpu':'aarch64', 'rpm_spec_vers_cmp':TRUE},
{'reference':'sudo-devel-1.8.29-7.tl3.1', 'cpu':'x86_64', 'rpm_spec_vers_cmp':TRUE}
]
}
];
var os_release = get_one_kb_item('installed_os/local/SSH/0/release');
var os_sp = get_one_kb_item('Host/*/minor_release');
var flag = 0;
var reference;
var sp;
var _cpu;
var el_string;
var rpm_spec_vers_cmp;
var epoch;
var allowmaj;
var exists_check;
var cves;
foreach var constraint ( constraints ) {
# Check that the target release is equal to the affected release
if (!empty_or_null(constraint['release'])){
if (constraint['release'] != os_release) continue;
}
if (!empty_or_null(constraint['sp'])){
if (constraint['sp'] != os_sp) continue;
}
foreach var pkg ( constraint['pkgs'] ) {
reference = NULL;
sp = NULL;
_cpu = NULL;
el_string = NULL;
rpm_spec_vers_cmp = NULL;
epoch = NULL;
allowmaj = NULL;
exists_check = NULL;
cves = NULL;
if (!empty_or_null(pkg['reference'])) reference = pkg['reference'];
if (!empty_or_null(pkg['sp'])) sp = pkg['sp'];
if (!empty_or_null(pkg['cpu'])) _cpu = pkg['cpu'];
if (!empty_or_null(pkg['el_string'])) el_string = pkg['el_string'];
if (!empty_or_null(pkg['rpm_spec_vers_cmp'])) rpm_spec_vers_cmp = pkg['rpm_spec_vers_cmp'];
if (!empty_or_null(pkg['epoch'])) epoch = pkg['epoch'];
if (!empty_or_null(pkg['allowmaj'])) allowmaj = pkg['allowmaj'];
if (!empty_or_null(pkg['exists_check'])) exists_check = pkg['exists_check'];
if (!empty_or_null(pkg['cves'])) cves = pkg['cves'];
if (reference &&
## (no known rpm to check OR known rpm_exists)
(!exists_check || rpm_exists(rpm:exists_check)) &&
rpm_check(sp:sp, cpu:_cpu, reference:reference, epoch:epoch, el_string:el_string, rpm_spec_vers_cmp:rpm_spec_vers_cmp, allowmaj:allowmaj, cves:cves)) flag++;
}
}
if (flag)
{
security_report_v4(
port : 0,
severity : SECURITY_HOLE,
extra : rpm_report_get()
);
exit(0);
}
else
{
var tested = pkg_tests_get();
if (tested) audit(AUDIT_PACKAGE_NOT_AFFECTED, tested);
else audit(AUDIT_PACKAGE_NOT_INSTALLED, 'sudo / sudo-debuginfo / sudo-debugsource / etc');
}
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