FreeBSD : xorg server -- Multiple vulnerabilities (f4297478-fa62-11ef-b597-001fc69cd6dc)

high Nessus Plugin ID 232323

Language:

Synopsis

The remote FreeBSD host is missing one or more security-related updates.

Description

The version of FreeBSD installed on the remote host is prior to tested version. It is, therefore, affected by multiple vulnerabilities as referenced in the f4297478-fa62-11ef-b597-001fc69cd6dc advisory.

The X.Org project reports:
The root cursor is referenced in the xserver as a global variable. If a client manages to free the root cursor, the internal reference points to freed memory and causes a use-after-free.
The code in XkbVModMaskText() allocates a fixed sized buffer on the stack and copies the names of the virtual modifiers to that buffer.
The code however fails to check the bounds of the buffer correctly and would copy the data regardless of the size, which may lead to a buffer overflow.
The computation of the length in XkbSizeKeySyms() differs from what is actually written in XkbWriteKeySyms(), which may lead to a heap based buffer overflow.
If XkbChangeTypesOfKey() is called with 0 group, it will resize the key symbols table to 0 but leave the key actions unchanged.
If later, the same function is called with a non-zero value of groups, this will cause a buffer overflow because the key actions are of the wrong size.
The function GetBarrierDevice() searches for the pointer device based on its device id and returns the matching value, or supposedly NULL if no match was found.
However the code will return the last element of the list if no matching device id was found which can lead to out of bounds memory access.
The function compCheckRedirect() may fail if it cannot allocate the backing pixmap. In that case, compRedirectWindow() will return a BadAlloc error without the validation of the window tree marked just before, which leaves the validate data partly initialized, and the use of an uninitialized pointer later.
When a device is removed while still frozen, the events queued for that device remain while the device itself is freed and replaying the events will cause a use after free.
When changing an alarm, the values of the change mask are evaluated one after the other, changing the trigger values as requested and eventually, SyncInitTrigger() is called.
If one of the changes triggers an error, the function will return early, not adding the new sync object.
This can be used to cause a use after free when the alarm eventually triggers.

Tenable has extracted the preceding description block directly from the FreeBSD security advisory.

Note that Nessus has not tested for these issues but has instead relied only on the application's self-reported version number.

Solution

Update the affected packages.

See Also

https://lists.x.org/archives/xorg-announce/2025-February/003584.html

http://www.nessus.org/u?c099d62b

Plugin Details

Severity: High

ID: 232323

File Name: freebsd_pkg_f4297478fa6211efb597001fc69cd6dc.nasl

Version: 1.1

Type: local

Published: 3/10/2025

Updated: 3/10/2025

Supported Sensors: Nessus

Risk Information

VPR

Risk Factor: Medium

Score: 6.7

CVSS v2

Risk Factor: Medium

Base Score: 6

Temporal Score: 4.4

Vector: CVSS2#AV:L/AC:H/Au:S/C:C/I:C/A:C

CVSS Score Source: CVE-2025-26601

CVSS v3

Risk Factor: High

Base Score: 7.8

Temporal Score: 6.8

Vector: CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

Temporal Vector: CVSS:3.0/E:U/RL:O/RC:C

Vulnerability Information

CPE: p-cpe:/a:freebsd:freebsd:xorg-nextserver, p-cpe:/a:freebsd:freebsd:xephyr, p-cpe:/a:freebsd:freebsd:xorg-server, p-cpe:/a:freebsd:freebsd:xwayland, p-cpe:/a:freebsd:freebsd:xorg-vfbserver, cpe:/o:freebsd:freebsd

Required KB Items: Host/local_checks_enabled, Host/FreeBSD/release, Host/FreeBSD/pkg_info

Exploit Ease: No known exploits are available

Patch Publication Date: 3/6/2025

Vulnerability Publication Date: 2/25/2025

Reference Information

CVE: CVE-2025-26594, CVE-2025-26595, CVE-2025-26596, CVE-2025-26597, CVE-2025-26598, CVE-2025-26599, CVE-2025-26600, CVE-2025-26601

IAVA: 2025-A-0135