Lucene search

K
nessusThis script is Copyright (C) 2024 and is owned by Tenable, Inc. or an Affiliate thereof.VIM_9_1_0689.NASL
HistoryAug 30, 2024 - 12:00 a.m.

Vim < 9.1.0689 Heap Buffer Overflow

2024-08-3000:00:00
This script is Copyright (C) 2024 and is owned by Tenable, Inc. or an Affiliate thereof.
www.tenable.com
2
vim vulnerability
windows host
heap buffer overflow
search pattern
right-left mode
ascii nul characters
buffer overflow vulnerability
application version.

CVSS3

4.5

Attack Vector

LOCAL

Attack Complexity

HIGH

Privileges Required

NONE

User Interaction

REQUIRED

Scope

UNCHANGED

Confidentiality Impact

LOW

Integrity Impact

LOW

Availability Impact

LOW

CVSS:3.1/AV:L/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:L

AI Score

5.1

Confidence

High

The version of Vim installed on the remote Windows host is after 9.1.0425 and prior to 9.1.0689. It is, therefore, affected by a heap buffer overflow vulnerability. When performing a search and displaying the search-count message is disabled (:set shm+=S), the search pattern is displayed at the bottom of the screen in a buffer (msgbuf). When right-left mode (:set rl) is enabled, the search pattern is reversed. This happens by allocating a new buffer. If the search pattern contains some ASCII NUL characters, the buffer allocated will be smaller than the original allocated buffer (because for allocating the reversed buffer, the strlen() function is called, which only counts until it notices an ASCII NUL byte ) and thus the original length indicator is wrong. This causes an overflow when accessing characters inside the msgbuf by the previously (now wrong) length of the msgbuf.

Note that Nessus has not tested for these issues 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(206347);
  script_version("1.3");
  script_set_attribute(attribute:"plugin_modification_date", value:"2024/09/06");

  script_cve_id("CVE-2024-43790");
  script_xref(name:"IAVA", value:"2024-A-0526-S");

  script_name(english:"Vim < 9.1.0689 Heap Buffer Overflow");

  script_set_attribute(attribute:"synopsis", value:
"A text editor installed on the remote Windows host is affected by a heap buffer overflow vulnerability.");
  script_set_attribute(attribute:"description", value:
"The version of Vim installed on the remote Windows host is after 9.1.0425 and prior to 9.1.0689. It is, therefore,
affected by a heap buffer overflow vulnerability. When performing a search and displaying the search-count message is 
disabled (:set shm+=S), the search pattern is displayed at the bottom of the screen in a buffer (msgbuf). When 
right-left mode (:set rl) is enabled, the search pattern is reversed. This happens by allocating a new buffer. If the
search pattern contains some ASCII NUL characters, the buffer allocated will be smaller than the original allocated
buffer (because for allocating the reversed buffer, the strlen() function is called, which only counts until it notices
an ASCII NUL byte ) and thus the original length indicator is wrong. This causes an overflow when accessing characters
inside the msgbuf by the previously (now wrong) length of the msgbuf.

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://github.com/vim/vim/security/advisories/GHSA-v2x2-cjcg-f9jm");
  script_set_attribute(attribute:"solution", value:
"Upgrade to Vim version 9.1.0689 or later.");
  script_set_attribute(attribute:"agent", value:"windows");
  script_set_cvss_base_vector("CVSS2#AV:L/AC:H/Au:N/C:P/I:P/A:P");
  script_set_cvss_temporal_vector("CVSS2#E:U/RL:OF/RC:C");
  script_set_cvss3_base_vector("CVSS:3.0/AV:L/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:L");
  script_set_cvss3_temporal_vector("CVSS:3.0/E:U/RL:O/RC:C");
  script_set_attribute(attribute:"cvss_score_source", value:"CVE-2024-43790");

  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/08/22");
  script_set_attribute(attribute:"patch_publication_date", value:"2024/05/21");
  script_set_attribute(attribute:"plugin_publication_date", value:"2024/08/30");

  script_set_attribute(attribute:"plugin_type", value:"local");
  script_set_attribute(attribute:"cpe", value:"cpe:/a:vim:vim");
  script_set_attribute(attribute:"stig_severity", value:"I");
  script_end_attributes();

  script_category(ACT_GATHER_INFO);
  script_family(english:"Windows");

  script_copyright(english:"This script is Copyright (C) 2024 and is owned by Tenable, Inc. or an Affiliate thereof.");

  script_dependencies("vim_win_installed.nbin");
  script_require_keys("installed_sw/Vim", "SMB/Registry/Enumerated");

  exit(0);
}

include('vcf.inc');

var app = 'Vim';

var app_info = vcf::get_app_info(app:app, win_local:TRUE);

var constraints = [
  {'min_version':'9.1.0426', 'fixed_version':'9.1.0689'}
];

vcf::check_version_and_report(app_info:app_info, constraints:constraints, severity:SECURITY_NOTE);

CVSS3

4.5

Attack Vector

LOCAL

Attack Complexity

HIGH

Privileges Required

NONE

User Interaction

REQUIRED

Scope

UNCHANGED

Confidentiality Impact

LOW

Integrity Impact

LOW

Availability Impact

LOW

CVSS:3.1/AV:L/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:L

AI Score

5.1

Confidence

High