F5 Networks BIG-IP:Linux 内核漏洞 (K000148479)

high Nessus 插件 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

插件详情

严重性: High

ID: 210745

文件名: f5_bigip_SOL000148479.nasl

版本: 1.4

类型: local

发布时间: 2024/11/11

最近更新时间: 2025/4/24

配置: 启用偏执模式

支持的传感器: Nessus

风险信息

VPR

风险因素: Medium

分数: 4.4

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_policy_enforcement_manager, cpe:/a:f5:big-ip_domain_name_system, cpe:/a:f5:big-ip_advanced_firewall_manager, cpe:/a:f5:big-ip_irules_lx, cpe:/a:f5:big-ip_local_traffic_manager, cpe:/a:f5:big-ip_application_security_manager, cpe:/h:f5:big-ip_protocol_security_manager, cpe:/a:f5:big-ip_wan_optimization_manager, cpe:/a:f5:big-ip_ssl_orchestrator, cpe:/h:f5:big-ip, cpe:/a:f5:big-ip_access_policy_manager, cpe:/a:f5:big-ip_global_traffic_manager, cpe:/a:f5:big-ip_iapps_lx

必需的 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