F5 網路 BIG-IP:Linux 核心弱點 (K000148479)

high Nessus Plugin ID 210745

概要

遠端裝置缺少廠商提供的安全性修補程式。

說明

遠端主機上安裝的 F5 Networks BIG-IP 版本為 16.1.6/17.1.2.2/17.5.0 之前的版本。因此,此版本會受到 K000148479 公告中提及的一個弱點影響。

在 Linux 核心中下列弱點已解決 tcp: do not accept ACK of bytes we never sent This patch is based on a detailed report and ideas from Yepeng Pan and Christian Rossow. ACK seq validation is currently following RFC 5961 5.2 guidelines: The ACK value is considered acceptable only if it is in the range of ((SND.UNA - MAX.SND.WND) <= SEG.ACK <= SND.NXT). All incoming segments whose ACK value doesn't satisfy the above condition MUST be discarded and an ACK sent back. It needs to be noted that RFC 793 on page 72 (fifth check) says: If the ACK is a duplicate (SEG.ACK < SND.UNA), it can be ignored. If the ACK acknowledges something not yet sent (SEG.ACK > SND.NXT) then send an ACK, drop the segment, and return. The ignored above implies that the processing of the incoming data segment continues, which means the ACK value is treated as acceptable. This mitigation makes the ACK check more stringent since any ACK < SND.UNA wouldn't be accepted, instead only ACKs that are in the range ((SND.UNA
- MAX.SND.WND) <= SEG.ACK <= SND.NXT) get through. This can be refined for new (and possibly spoofed) flows, by not accepting ACK for bytes that were never sent. This greatly improves TCP security at a little cost. I added a Fixes: tag to make sure this patch will reach stable trees, even if the 'blamed' patch was adhering to the RFC. tp->bytes_acked was added in linux-4.2 Following packetdrill test (courtesy of Yepeng Pan) shows the issue at hand: 0 socket(..., SOCK_STREAM, IPPROTO_TCP) = 3 +0 setsockopt(3, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0 +0 bind(3, ..., ...) = 0 +0 listen(3, 1024) = 0 // ---------------- Handshake
------------------- // // when window scale is set to 14 the window size can be extended to // 65535 * (2^14) = 1073725440. Linux would accept an ACK packet // with ack number in (Server_ISN+1-1073725440.
Server_ISN+1) // ,though this ack number acknowledges some data never // sent by the server. +0 < S 0:0(0) win 65535 +0 > S. 0:0(0) ack 1 <...> +0 < . 1:1(0) ack 1 win 65535 +0 accept(3, ..., ...) = 4 // For the established connection, we send an ACK packet, // the ack packet uses ack number 1 - 1073725300 + 2^32, // where 2^32 is used to wrap around. // Note: we used 1073725300 instead of 1073725440 to avoid possible // edge cases. // 1 - 1073725300 + 2^32 = 3221241997 // Oops, old kernels happily accept this packet. +0 < .
1:1001(1000) ack 3221241997 win 65535 // After the kernel fix the following will be replaced by a challenge ACK, // and prior malicious frame would be dropped. +0 > . 1:1(0) ack 1001(CVE-2023-52881)

Tenable 已直接從 F5 Networks BIG-IP 安全公告中擷取前置描述區塊。

請注意,Nessus 並未測試此問題,而是僅依據應用程式自我報告的版本號碼作出判斷。

解決方案

升級至 F5 解決方案 K000148479 中列出的其中一個無弱點版本。

另請參閱

https://my.f5.com/manage/s/article/K000148479

Plugin 詳細資訊

嚴重性: High

ID: 210745

檔案名稱: f5_bigip_SOL000148479.nasl

版本: 1.4

類型: local

已發布: 2024/11/11

已更新: 2025/4/24

組態: 啟用 Paranoid 模式

支援的感應器: Nessus

風險資訊

VPR

風險因素: Medium

分數: 6.0

CVSS v2

風險因素: High

基本分數: 7.1

時間性分數: 5.3

媒介: CVSS2#AV:N/AC:H/Au:N/C:N/I:C/A:C

CVSS 評分資料來源: CVE-2023-52881

CVSS v3

風險因素: High

基本分數: 7.4

時間性分數: 6.4

媒介: CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:H

時間媒介: CVSS:3.0/E:U/RL:O/RC:C

弱點資訊

CPE: cpe:/a:f5:big-ip_irules_lx, cpe:/h:f5:big-ip_protocol_security_manager, cpe:/a:f5:big-ip_domain_name_system, cpe:/a:f5:big-ip_ssl_orchestrator, cpe:/a:f5:big-ip_policy_enforcement_manager, cpe:/a:f5:big-ip_wan_optimization_manager, cpe:/h:f5:big-ip, cpe:/a:f5:big-ip_iapps_lx, cpe:/a:f5:big-ip_advanced_firewall_manager, cpe:/a:f5:big-ip_local_traffic_manager, cpe:/a:f5:big-ip_access_policy_manager, cpe:/a:f5:big-ip_global_traffic_manager, cpe:/a:f5:big-ip_application_security_manager

必要的 KB 項目: Host/local_checks_enabled, Settings/ParanoidReport, Host/BIG-IP/hotfix, Host/BIG-IP/modules, Host/BIG-IP/version

可輕鬆利用: No known exploits are available

弱點發布日期: 2024/1/19

參考資訊

CVE: CVE-2023-52881