| Reporter | Title | Published | Views | Family All 405 |
|---|---|---|---|---|
| CVE-2023-48235 | 16 Nov 202323:15 | – | attackerkb | |
| CVE-2023-48237 | 16 Nov 202323:15 | – | attackerkb | |
| CVE-2023-48236 | 16 Nov 202323:15 | – | attackerkb | |
| CVE-2023-48231 | 16 Nov 202323:15 | – | attackerkb | |
| CVE-2023-48233 | 16 Nov 202323:15 | – | attackerkb | |
| CVE-2023-48234 | 16 Nov 202323:15 | – | attackerkb | |
| CVE-2023-48232 | 16 Nov 202323:15 | – | attackerkb | |
| Amazon Linux 2023 : vim-common, vim-data, vim-default-editor (ALAS2023-2023-447) | 15 Dec 202300:00 | – | nessus | |
| Amazon Linux 2023 : vim-common, vim-data, vim-default-editor (ALAS2023-2024-469) | 8 Jan 202400:00 | – | nessus | |
| Amazon Linux 2023 : vim-common, vim-data, vim-default-editor (ALAS2023-2024-518) | 20 Feb 202400:00 | – | nessus |
#%NASL_MIN_LEVEL 80900
##
# (C) Tenable, Inc.
#
# The descriptive text and package checks in this plugin were
# extracted from Tencent Linux Security Advisory TSSA-2024:0584.
##
include('deprecated_nasl_level.inc');
include('compat.inc');
if (description)
{
script_id(238723);
script_version("1.2");
script_set_attribute(attribute:"plugin_modification_date", value:"2025/11/20");
script_cve_id(
"CVE-2023-48231",
"CVE-2023-48232",
"CVE-2023-48233",
"CVE-2023-48234",
"CVE-2023-48235",
"CVE-2023-48236",
"CVE-2023-48237",
"CVE-2023-48706",
"CVE-2024-22667"
);
script_name(english:"TencentOS Server 4: vim (TSSA-2024:0584)");
script_set_attribute(attribute:"synopsis", value:
"The remote TencentOS Server 4 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 4 host is prior to tested version. It is,
therefore, affected by multiple vulnerabilities as referenced in the TSSA-2024:0584 advisory.
Package updates are available for TencentOS Server 4 that fix the following vulnerabilities:
CVE-2024-22667:
A stack-based buffer overflow flaw was found in Vim. The did_set_langmap function in map.c calls sprintf
to write to the error buffer that is passed down to the option callback functions. That buffer can be
overflown, possibly leading to memory corruption and escalation of privileges.
CVE-2023-48231:
Vim is an open source command line text editor. When closing a window, vim may try to access already freed
window structure. Exploitation beyond crashing the application has not been shown to be viable. This issue
has been addressed in commit `25aabc2b` which has been included in release version 9.0.2106. Users are
advised to upgrade. There are no known workarounds for this vulnerability.
CVE-2023-48232:
Vim is an open source command line text editor. A floating point exception may occur when calculating the
line offset for overlong lines and smooth scrolling is enabled and the cpo-settings include the 'n' flag.
This may happen when a window border is present and when the wrapped line continues on the next physical
line directly in the window border because the 'cpo' setting includes the 'n' flag. Only users with non-
default settings are affected and the exception should only result in a crash. This issue has been
addressed in commit `cb0b99f0` which has been included in release version 9.0.2107. Users are advised to
upgrade. There are no known workarounds for this vulnerability.
CVE-2023-48233:
Vim is an open source command line text editor. If the count after the :s command is larger than what fits
into a (signed) long variable, abort with e_value_too_large. Impact is low, user interaction is required
and a crash may not even happen in all situations. This issue has been addressed in commit `ac6378773`
which has been included in release version 9.0.2108. Users are advised to upgrade. There are no known
workarounds for this vulnerability.
CVE-2023-48235:
Vim is an open source command line text editor. When parsing relative ex addresses one may unintentionally
cause an
overflow. Ironically this happens in the existing overflow check, because the line number becomes negative
and LONG_MAX - lnum will cause the overflow. Impact is low, user interaction is required and a crash may
not even happen in all situations. This issue has been addressed in commit `060623e` which has been
included in release version 9.0.2110. Users are advised to upgrade. There are no known workarounds for
this vulnerability.
CVE-2023-48236:
Vim is an open source command line text editor. When using the z= command, the user may overflow the count
with values larger
than MAX_INT. Impact is low, user interaction is required and a crash may not even happen in all
situations. This vulnerability has been addressed in commit `73b2d379` which has been included in release
version 9.0.2111. Users are advised to upgrade. There are no known workarounds for this vulnerability.
CVE-2023-48237:
Vim is an open source command line text editor. In affected versions when shifting lines in operator
pending mode and using a very large value, it may be possible to overflow the size of integer. Impact is
low, user interaction is required and a crash may not even happen in all situations. This issue has been
addressed in commit `6bf131888` which has been included in version 9.0.2112. Users are advised to upgrade.
There are no known workarounds for this vulnerability.
CVE-2023-48234:
Vim is an open source command line text editor. When getting the count for a normal mode z command, it may
overflow for large counts given. Impact is low, user interaction is required and a crash may not even
happen in all situations. This issue has been addressed in commit `58f9befca1` which has been included in
release version 9.0.2109. Users are advised to upgrade. There are no known workarounds for this
vulnerability.
CVE-2023-48706:
Vim is a UNIX editor that, prior to version 9.0.2121, has a heap-use-after-free vulnerability. When
executing a `:s` command for the very first time and using a sub-replace-special atom inside the
substitution part, it is possible that the recursive `:s` call causes free-ing of memory which may later
then be accessed by the initial `:s` command. The user must intentionally execute the payload and the
whole process is a bit tricky to do since it seems to work only reliably for the very first :s command. It
may also cause a crash of Vim. Version 9.0.2121 contains a fix for this issue.
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-20240584.xml");
script_set_attribute(attribute:"solution", value:
"Update the affected packages.");
script_set_cvss_base_vector("CVSS2#AV:L/AC:L/Au:N/C:C/I:C/A:C");
script_set_cvss_temporal_vector("CVSS2#E:POC/RL:OF/RC:C");
script_set_cvss3_base_vector("CVSS:3.0/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H");
script_set_cvss3_temporal_vector("CVSS:3.0/E:P/RL:O/RC:C");
script_set_attribute(attribute:"cvss_score_source", value:"CVE-2024-22667");
script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available");
script_set_attribute(attribute:"exploit_available", value:"true");
script_set_attribute(attribute:"vuln_publication_date", value:"2024/10/21");
script_set_attribute(attribute:"patch_publication_date", value:"2024/10/21");
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:4");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:tencent:tencentos_server:vim");
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:"^4([^0-9]|$)", string:os_version)) audit(AUDIT_OS_NOT, 'TencentOS 4.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': '4',
'pkgs': [
{'reference':'vim-common-9.0.2092-2.tl4', 'cpu':'aarch64', 'rpm_spec_vers_cmp':TRUE},
{'reference':'vim-common-9.0.2092-2.tl4', 'cpu':'x86_64', 'rpm_spec_vers_cmp':TRUE},
{'reference':'vim-common-debuginfo-9.0.2092-2.tl4', 'cpu':'aarch64', 'rpm_spec_vers_cmp':TRUE},
{'reference':'vim-common-debuginfo-9.0.2092-2.tl4', 'cpu':'x86_64', 'rpm_spec_vers_cmp':TRUE},
{'reference':'vim-data-9.0.2092-2.tl4', 'rpm_spec_vers_cmp':TRUE},
{'reference':'vim-debugsource-9.0.2092-2.tl4', 'cpu':'aarch64', 'rpm_spec_vers_cmp':TRUE},
{'reference':'vim-debugsource-9.0.2092-2.tl4', 'cpu':'x86_64', 'rpm_spec_vers_cmp':TRUE},
{'reference':'vim-enhanced-9.0.2092-2.tl4', 'cpu':'aarch64', 'rpm_spec_vers_cmp':TRUE},
{'reference':'vim-enhanced-9.0.2092-2.tl4', 'cpu':'x86_64', 'rpm_spec_vers_cmp':TRUE},
{'reference':'vim-enhanced-debuginfo-9.0.2092-2.tl4', 'cpu':'aarch64', 'rpm_spec_vers_cmp':TRUE},
{'reference':'vim-enhanced-debuginfo-9.0.2092-2.tl4', 'cpu':'x86_64', 'rpm_spec_vers_cmp':TRUE},
{'reference':'vim-filesystem-9.0.2092-2.tl4', 'rpm_spec_vers_cmp':TRUE},
{'reference':'vim-minimal-9.0.2092-2.tl4', 'cpu':'aarch64', 'rpm_spec_vers_cmp':TRUE},
{'reference':'vim-minimal-9.0.2092-2.tl4', 'cpu':'x86_64', 'rpm_spec_vers_cmp':TRUE},
{'reference':'vim-minimal-debuginfo-9.0.2092-2.tl4', 'cpu':'aarch64', 'rpm_spec_vers_cmp':TRUE},
{'reference':'vim-minimal-debuginfo-9.0.2092-2.tl4', 'cpu':'x86_64', 'rpm_spec_vers_cmp':TRUE},
{'reference':'vim-X11-9.0.2092-2.tl4', 'cpu':'aarch64', 'rpm_spec_vers_cmp':TRUE},
{'reference':'vim-X11-9.0.2092-2.tl4', 'cpu':'x86_64', 'rpm_spec_vers_cmp':TRUE},
{'reference':'vim-X11-debuginfo-9.0.2092-2.tl4', 'cpu':'aarch64', 'rpm_spec_vers_cmp':TRUE},
{'reference':'vim-X11-debuginfo-9.0.2092-2.tl4', '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, 'vim-X11 / vim-X11-debuginfo / vim-common / 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