IPBUF安全漏洞报告
English
CVE-2025-54965 CVSS 6.1 中危

CVE-2025-54965 BAE SOCET GXP Job Status Service XSS漏洞

披露日期: 2025-10-27

漏洞信息

漏洞编号
CVE-2025-54965
漏洞类型
XSS(跨站脚本攻击)
CVSS评分
6.1 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
BAE SOCET GXP

相关标签

CVE-2025-54965XSS跨站脚本攻击BAE SOCET GXP存储型XSSJob Status Service地理空间软件CVSS 6.1中危漏洞需要用户交互

漏洞概述

CVE-2025-54965是BAE SOCET GXP地理空间开发产品中的一个存储型跨站脚本(Stored XSS)漏洞。该漏洞存在于SOCET GXP的Job Status Service组件中,由于应用程序在处理用户提交的job ID参数时未能进行充分的输入验证和安全消毒,导致恶意构造的脚本代码可以被存储在服务器端,并在其他用户访问作业状态页面时执行。攻击者利用此漏洞可以通过社会工程学手段,诱骗具有合法账户的目标用户点击包含恶意payload的链接,从而在受害者浏览器会话中窃取敏感信息、劫持用户会话或执行其他恶意操作。由于SOCET GXP通常用于地理空间情报分析处理,攻击者可能借此获取关键的地理空间数据或执行进一步的内网渗透。该漏洞的CVSS评分为6.1,属于中等严重程度,主要因为其利用需要用户交互,但攻击复杂度较低且影响范围涵盖机密性和完整性。

技术细节

该漏洞的根本原因在于BAE SOCET GXP的Job Status Service在接收job ID参数后,直接将其呈现到Web界面的作业状态页面中,而没有对特殊字符进行HTML实体编码或执行其他形式的安全消毒处理。在典型的XSS攻击场景中,攻击者首先需要识别系统中存在的作业提交功能,然后构造包含JavaScript代码的恶意job ID参数。例如,攻击者可能提交一个类似<script>alert(document.cookie)</script>的作业名称或标识符。当系统管理员或其他用户通过Job Status Service查看作业列表或详细信息时,恶意代码将被浏览器解析执行。由于该参数存储在数据库中,这种攻击方式属于存储型XSS,其危害性高于反射型XSS,因为恶意代码会持久存在于系统中,影响所有访问相关页面的用户。攻击者还可能利用此漏洞窃取会话cookie、伪造表单提交或进行钓鱼攻击。修复方案需要在数据输出点实施上下文感知的输出编码,并对用户输入进行严格的 whitelist 验证。

攻击链分析

STEP 1
侦察阶段
攻击者识别目标BAE SOCET GXP系统,确认Job Status Service的访问入口和参数传递方式
STEP 2
payload构造
攻击者构造包含恶意JavaScript代码的job ID参数,如<script>alert(document.cookie)</script>
STEP 3
恶意作业提交
通过系统的作业提交功能将恶意payload作为job ID参数提交到服务器,payload被存储在数据库中
STEP 4
社会工程攻击
攻击者通过钓鱼邮件或其他方式诱骗目标用户点击包含恶意job ID的链接,或等待用户访问作业状态页面
STEP 5
XSS执行
当受害者浏览器加载包含恶意代码的作业状态页面时,JavaScript代码被解析执行,攻击者可在用户会话中执行任意操作
STEP 6
数据窃取/会话劫持
攻击者利用执行的JavaScript窃取用户cookie、会话令牌或其他敏感信息,进而实现账户劫持或横向移动

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import urllib.parse # CVE-2025-54965 PoC - BAE SOCET GXP XSS # This PoC demonstrates the XSS vulnerability in Job Status Service TARGET_URL = "https://vulnerable-server/socet-gxp/job-status" ATTACK_PAYLOAD = '<script>alert(document.cookie)</script>' def create_malicious_job(): """Create a job with XSS payload in job ID parameter""" payload = { 'job_id': ATTACK_PAYLOAD, 'job_name': 'Malicious Job', 'action': 'submit' } print(f"[*] Submitting malicious job with payload: {ATTACK_PAYLOAD}") response = requests.post(TARGET_URL, data=payload) if response.status_code == 200: print("[+] Malicious job created successfully") return True return False def trigger_xss(): """Trigger the XSS by accessing job status page""" malicious_url = f"{TARGET_URL}?job_id={urllib.parse.quote(ATTACK_PAYLOAD)}" print(f"[*] Malicious URL: {malicious_url}") print("[+] When victim visits this URL, XSS will be executed") if __name__ == "__main__": create_malicious_job() trigger_xss()

影响范围

BAE SOCET GXP < 4.6.0.2

防御指南

临时缓解措施
在官方补丁发布前,可采取以下临时缓解措施:1)通过Web应用防火墙规则对包含script标签和JavaScript事件处理器的请求进行过滤和阻断;2)限制Job Status Service的访问权限,仅允许受信任的内部用户访问;3)实施严格的输入验证规则,拒绝包含特殊字符的job ID;4)对Web界面输出实施统一的XSS过滤机制;5)提醒用户不要点击来源不明的链接,特别是包含可疑参数的URL;6)监控日志中的异常请求模式,及时发现潜在的攻击尝试。

参考链接

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