CentOS Linux 7 [TuxCare] セキュリティ更新プログラム:bpftool/kernel/kernel-debug/kernel-debug-devel/kernel-devel/etcの複数の脆弱性(CENTOS7:CLSA-2026:1791730242)

high Nessus プラグイン ID 366515

概要

CentOS Linux ホストに 1 つ以上のセキュリティ更新プログラムが欠落しています。

説明

CentOS Linux 7ホストには、TuxCare CENTOS7:CLSA-2026:1791730242アドバイザリに記載されている複数の脆弱性の影響を受けるパッケージがインストールされています。

- Linux カーネルの netfilter: nf_tables コンポーネントに存在するメモリ解放後使用 (Use After Free) の脆弱性が悪用されると、ローカルの権限昇格が達成される可能性があります。nf_tables netlink コントロールプレーントランザクションと nft_set 要素のガベージコレクション間の競合状態により、参照カウンターをアンダーフローさせ、メモリ解放後使用 (Use After Free) の脆弱性を引き起こす可能性があります。過去のコミット 3e91b0ebd994635df2346353322ac51ce84ce6d8 へのアップグレードをお勧めします。(CVE-2023-4244)

- Linux カーネルでは、以下の脆弱性が解決されています: crypto: af_alg - Disallow concurrent writes in af_alg_sendmsg Issuing two writes to the same af_alg socket is bogus as the data will be interleaved in an unpredictable fashion. Furthermore, concurrent writes may create inconsistencies in the internal socket state. Disallow this by adding a new ctx->write field that indiciates exclusive ownership for writing. (CVE-2025-39964)

- Linux カーネルでは、以下の脆弱性が解決されています: net: atm: fix crash due to unvalidated vcc pointer in sigd_send() Reproducer available at [1]. The ATM send path (sendmsg -> vcc_sendmsg -> sigd_send) reads the vcc pointer from msg->vcc and uses it directly without any validation. This pointer comes from userspace via sendmsg() and can be arbitrarily forged: int fd = socket(AF_ATMSVC, SOCK_DGRAM, 0); ioctl(fd, ATMSIGD_CTRL); // become ATM signaling daemon struct msghdr msg = { .msg_iov = &iov, ... };
*(unsigned long *)(buf + 4) = 0xdeadbeef; // fake vcc pointer sendmsg(fd, &msg, 0); // kernel dereferences 0xdeadbeef In normal operation, the kernel sends the vcc pointer to the signaling daemon via sigd_enq() when processing operations like connect(), bind(), or listen(). The daemon is expected to return the same pointer when responding. However, a malicious daemon can send arbitrary pointer values. Fix this by introducing find_get_vcc() which validates the pointer by searching through vcc_hash (similar to how sigd_close() iterates over all VCCs), and acquires a reference via sock_hold() if found. Since struct atm_vcc embeds struct sock as its first member, they share the same lifetime. Therefore using sock_hold/sock_put is sufficient to keep the vcc alive while it is being used. Note that there may be a race with sigd_close() which could mark the vcc with various flags (e.g., ATM_VF_RELEASED) after find_get_vcc() returns. However, sock_hold() guarantees the memory remains valid, so this race only affects the logical state, not memory safety. [1]:
https://gist.github.com/mrpre/1ba5949c45529c511152e2f4c755b0f3 (CVE-2026-31411)

- Linux カーネルでは、以下の脆弱性が解決されています: ipc: limit next_id allocation to the valid ID range The checkpoint/restore sysctl path can request the next SysV IPC id through ids->next_id.
ipc_idr_alloc() currently forwards that request to idr_alloc() with an open-ended upper bound. If the valid tail of the SysV IPC id space is full, the allocation can spill beyond ipc_mni. The returned SysV IPC id still uses the normal index encoding, so later lookup and removal can target the wrong slot. This leaves the real IDR entry behind and breaks the IDR state for the object. The bug is in ipc_idr_alloc() in the checkpoint/restore path. 1. ids->next_id is passed to: idr_alloc(&ids->ipcs_idr, new, ipcid_to_idx(next_id), 0, ...) 2. The zero upper bound makes the allocation effectively open-ended. Once the valid SysV IPC tail is occupied, idr_alloc() can spill past ipc_mni and allocate an entry beyond the valid IPC id range. 3. The new object id is still encoded with the narrower SysV IPC index width: new->id = (new->seq << ipcmni_seq_shift()) + idx 4. Later removal goes through ipc_rmid(), which uses:
ipcid_to_idx(ipcp->id) That truncates the real IDR index. An object actually stored at a high index can then be removed as if it lived at a low in-range index. 5. For shared memory, shm_destroy() frees the current object anyway, but the real high IDR slot is left behind as a dangling pointer. 6. A subsequent walk of /proc/sysvipc/shm reaches the stale IDR entry and dereferences freed memory. Prevent this by bounding the requested allocation to ipc_mni so the checkpoint/restore path fails once the valid range is exhausted. (CVE-2026-52923)

- Linux カーネルでは、以下の脆弱性が解決されています: dm log: fix out-of-bounds write due to region_count overflow The local variable region_count in create_log_context() is declared as unsigned int (32-bit), but dm_sector_div_up() returns sector_t (64-bit). When a device-mapper target has a sufficiently large ti->len with a small region_size, the division result can exceed UINT_MAX. The truncated value is then used to calculate bitset_size, causing clean_bits, sync_bits, and recovering_bits to be allocated far smaller than needed for the actual number of regions. Subsequent log operations (log_set_bit, log_clear_bit, log_test_bit) use region indices derived from the full untruncated region space, causing out-of-bounds writes to kernel heap memory allocated by vmalloc. This can be reproduced by creating a mirror target whose region_count overflows 32 bits: dmsetup create bigzero --table '0 8589934594 zero' dmsetup create mymirror --table '0 8589934594 mirror \ core 2 2 nosync 2 /dev/mapper/bigzero 0 \ /dev/mapper/bigzero 0' The status output confirms the truncation (sync_count=1 instead of 4294967297, because 0x100000001 was truncated to 1): $ dmsetup status mymirror 0 8589934594 mirror 2 254:1 254:1 1/4294967297 ... This leads to a kernel crash in core_in_sync: BUG: scheduling while atomic: (udev-worker)/9150/0x00000000 RIP: 0010:core_in_sync+0x14/0x30 [dm_log] CR2: 0000000000000008 Fixing recursive fault but reboot is needed! Fix by widening the local region_count to sector_t and adding an explicit overflow check before the value is assigned to lc->region_count. (CVE-2026-53059)

Nessus はこれらの問題をテストしておらず、代わりにアプリケーションが自己報告するバージョン番号にのみ依存していることに注意してください。

ソリューション

TuxCareアドバイザリCENTOS7:CLSA-2026:1791730242のガイダンスに基づいて、影響を受けるパッケージを更新してください。

参考資料

https://cve.tuxcare.com/els/releases/CLSA-2026:1791730242

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

プラグインの詳細

深刻度: High

ID: 366515

ファイル名: tuxcare_centos_7_CLSA-2026-1791730242.nasl

バージョン: 1.1

タイプ: Local

エージェント: unix

公開日: 2026/10/16

更新日: 2026/10/16

サポートされているセンサー: Nessus Agent, Continuous Assessment, Tenable Cloud Security, Tenable Self-Hosted Container Security, Nessus

リスク情報

VPR

リスクファクター: Critical

スコア: 9.3

パーセンタイル: 99.82

Vendor

Vendor Severity: Important

CVSS v2

リスクファクター: High

基本値: 7.2

現状値: 6

ベクトル: CVSS2#AV:L/AC:L/Au:N/C:C/I:C/A:C

CVSS スコアのソース: CVE-2026-53196

CVSS v3

リスクファクター: High

基本値: 7.8

現状値: 7.2

ベクトル: CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

現状ベクトル: CVSS:3.0/E:F/RL:O/RC:C

CVSS スコアのソース: CVE-2026-64343

脆弱性情報

必要な KB アイテム: Host/local_checks_enabled, Host/CentOS/release, Host/CentOS/rpm-list, Host/OS/extended-third-party

エクスプロイトが利用可能: true

エクスプロイトの容易さ: Exploits are available

パッチ公開日: 2026/10/11

脆弱性公開日: 2023/9/6

CISA の既知の悪用された脆弱性の期限日: 2026/9/21

参照情報

CVE: CVE-2023-4244, CVE-2025-39964, CVE-2026-31411, CVE-2026-31688, CVE-2026-52923, CVE-2026-53059, CVE-2026-53195, CVE-2026-53196, CVE-2026-53266, CVE-2026-64191, CVE-2026-64340, CVE-2026-64343, CVE-2026-64372, CVE-2026-64375, CVE-2026-68106, CVE-2026-68111, CVE-2026-68175, CVE-2026-68218, CVE-2026-68234, CVE-2026-68299, CVE-2026-68425, CVE-2026-72005, CVE-2026-72019, CVE-2026-72020, CVE-2026-72036, CVE-2026-72039, CVE-2026-72083, CVE-2026-72106, CVE-2026-74720, CVE-2026-80844, CVE-2026-81000

CLSA: 2026:1791730242