CVE-2022-22978源碼分析與漏洞復現

漏洞概述

CVE-2022-22978 是 Spring Security 框架中的一個高危認證繞過漏洞,影響版本包括 Spring Security 5.5.x < 5.5.75.6.x < 5.6.4 及更早的不受支持版本。攻擊者可通過構造包含換行符(如 %0a)的 URL 路徑,繞過正則表達式匹配規則,導致權限校驗失效,實現未授權訪問受保護資源。


技術細節分析

1. 漏洞成因
  • 正則表達式匹配模式缺陷
    Spring Security 的 RegexRequestMatcher 在處理 URL 路徑匹配時,若正則表達式中包含 . 字符(例如 /admin/.*),默認情況下 . 不會匹配換行符(\n\r)。攻擊者可通過在 URL 中插入 URL 編碼的換行符(%0a%0d)繞過校驗。
  • 安全上下文配置缺失
    漏洞版本的 RegexRequestMatcher 未啟用 Pattern.DOTALL 標志,導致正則表達式未覆蓋換行符等特殊字符,從而產生邏輯漏洞。
2. 源碼分析
關鍵代碼 1:RegexRequestMatcher 構造函數(漏洞版本)
public RegexRequestMatcher(String pattern, String httpMethod, boolean caseInsensitive) {// 漏洞點:未設置 Pattern.DOTALL,導致 . 不匹配換行符this.pattern = Pattern.compile(pattern, caseInsensitive ? CASE_INSENSITIVE : DEFAULT);this.httpMethod = StringUtils.hasText(httpMethod) ? HttpMethod.valueOf(httpMethod) : null;
}

問題點

  • DEFAULT 模式未包含 Pattern.DOTALL,導致 . 無法匹配換行符(如 \n)。
關鍵代碼 2:修復版本代碼對比
public final class RegexRequestMatcher implements RequestMatcher {
- private static final int DEFAULT = 0;
+ private static final int DEFAULT = Pattern.DOTALL; // 修復點:默認啟用 DOTALL

修復邏輯

  • 強制啟用 Pattern.DOTALL,使 . 匹配所有字符(包括換行符)。
關鍵代碼 3:SpringSecurityConfig配置問題
 protected void configure(HttpSecurity httpSecurity) throws Exception {    
((ExpressionUrlAuthorizationConfigurer.AuthorizedUrl)httpSecurity.authorizeRequests().regexMatchers(new String[] { "/admin/.*" })).authenticated();}
  • 使用/admin/.*進行匹配
漏洞觸發示例
  • 惡意 URL/admin/111%0a
    • 漏洞版本正則 /admin/.* 不會匹配 %0a(即 \n),導致路徑 /admin/111\n 被誤判為合法路徑,繞過權限校驗。

漏洞復現

環境搭建
1.使用 Vulhub 環境啟動漏洞靶機:
docker-compose up -d

在這里插入圖片描述

2.訪問 http://target:8080,確認服務正常運行

在這里插入圖片描述

攻擊步驟
  1. 正常訪問受限接口
    訪問 /admin,觸發 302 跳轉至登錄頁。
    在這里插入圖片描述

  2. 構造繞過請求
    訪問 /admin/%0a,成功繞過認證并訪問受保護資源。
    在這里插入圖片描述


修復方案

  1. 升級版本
    升級至 Spring Security 5.5.7+5.6.4+,修復了 RegexRequestMatcher 的正則匹配邏輯。
  2. 輸入過濾
    對 URL 路徑進行規范化處理,過濾 %0a%0d 等特殊字符。
  3. 安全配置強化
    避免在正則表達式中過度依賴 .,改用更精確的匹配規則(如 [^/]+)。

總結

CVE-2022-22978 暴露了 Spring Security 在正則表達式匹配模式配置上的安全隱患。其根本原因在于默認未啟用 Pattern.DOTALL,導致攻擊者可利用換行符繞過權限校驗。修復方案通過強制啟用 DOTALL 標志,確保正則表達式匹配覆蓋所有字符。開發者應避免在權限規則中使用寬松的正則表達式。


參考鏈接

  1. Spring 官方安全公告
  2. 漏洞修復 Commit 記錄
  3. 漏洞復現環境(GitHub)
  4. NVD 漏洞數據庫條目
  5. FreeBuf 技術分析

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/80705.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/80705.shtml
英文地址,請注明出處:http://en.pswp.cn/web/80705.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

PostGIS實現柵格數據入庫【raster2pgsql】

raster2pgsql使用與最佳實踐 一、工具概述 raster2pgsql是PostGIS提供的命令行工具,用于將GDAL支持的柵格格式(如GeoTIFF、JPEG、PNG等)導入PostgreSQL數據庫,支持批量加載、分塊切片、創建空間索引及金字塔概覽,是柵格數據入庫的核心工具。 二、核心功能與典型用法 1…

Redis企業級開發實戰:核心應用場景與最佳實踐

引言 Redis&#xff08;Remote Dictionary Server&#xff09;作為一款高性能的內存數據庫&#xff0c;在企業級開發中扮演著至關重要的角色。無論是緩存加速、分布式鎖、實時統計&#xff0c;還是消息隊列&#xff0c;Redis都能以極低的延遲和極高的吞吐量滿足業務需求。本文…

深入解析Spring Boot與Spring Cloud在微服務架構中的實踐

深入解析Spring Boot與Spring Cloud在微服務架構中的實踐 引言 隨著云計算和分布式系統的快速發展&#xff0c;微服務架構已成為現代軟件開發的主流模式。Spring Boot和Spring Cloud作為Java生態中微服務開發的核心框架&#xff0c;為開發者提供了強大的工具和組件&#xff0…

AI量化交易是什么?它是如何重塑金融世界的?

第一章&#xff1a;證券交易的進化之路 1.1 從喊價到代碼&#xff1a;交易方式的革命性轉變 在電子交易普及之前&#xff0c;證券交易依賴于交易所內的公開喊價系統。交易員通過手勢、喊話甚至身體語言傳遞買賣信息&#xff0c;這種模式雖然直觀&#xff0c;但效率低下且容易…

芯馳科技與安波福聯合舉辦技術研討會,深化智能汽車領域合作交流

5月15日&#xff0c;芯馳科技與全球移動出行技術解決方案供應商安波福&#xff08;Aptiv&#xff09;在上海聯合舉辦以“芯智融合&#xff0c;共贏未來”為主題的技術研討會。會上&#xff0c;雙方聚焦智能座艙與智能車控的發展趨勢&#xff0c;展開深入交流與探討&#xff0c;…

大數據Spark(五十九):Standalone集群部署

文章目錄 Standalone集群部署 一、節點劃分 二、搭建Standalone集群 1、將下載好的Spark安裝包上傳解壓 2、配飾spark-env.sh 3、配置workers 4、將配置好的安裝包發送到node2、node3節點上 5、啟動Standalone集群 三、提交任務測試 Standalone集群部署 Standalone 模…

Feign異步模式丟失上下文問題

Feign異步模式丟失上下文問題 問題描述 當我們使用異步對我們代碼進行操作優化時&#xff0c;代碼中使用了RequestContextHolder去獲取上下文的數據&#xff0c;當我們執行原來可以執行的業務時發現報了空指針異常或數據為空&#xff0c;這是為什么呢&#xff1f; 原理解釋 …

JavaScript作用域和作用域鏈

在JavaScript中&#xff0c;作用域和作用域鏈是理解代碼執行和變量訪問的關鍵概念。它們決定了變量和函數在代碼中的可見性和生命周期。 一、作用域&#xff08;Scope&#xff09; &#xff08;一&#xff09;什么是作用域&#xff1f; 作用域是在運行時代碼中的某些特定部分…

人工智能的“歧視”:“她數據”在算法運行中隱形

縱觀人類的發展史&#xff0c;每一次科技進步都將對性別平等產生深刻影響。尤其是當下&#xff0c;人們對于借助人工智能技術快速發展來彌合性別不平等寄予厚望。 但很多人沒想過&#xff0c;人工智能技術本身是客觀中立、不存在“算法歧視”“性別偏見的嗎&#xff1f; 弗吉…

設備全生命周期管理:從采購到報廢的數字化閉環方案

在當今數字化時代&#xff0c;企業對設備的管理已不再局限于簡單的維護與修理&#xff0c;而是追求從采購到報廢的全生命周期數字化閉環管理。易點易動設備管理系統&#xff0c;正是這一趨勢下的佼佼者&#xff0c;它為企業提供了一套高效便捷的設備管理解決方案。 采購階段&a…

React中useState中更新是同步的還是異步的?

文章目錄 前言一、useState 的基本用法二、useState 的更新機制1. 內部狀態管理2. 狀態初始化3. 狀態更新 三、useState 的更新頻率與異步行為1. 異步更新與批量更新2. 為什么需要異步更新&#xff1f; 四、如何正確處理 useState 的更新1. 使用回調函數形式的更新2. 理解異步更…

FEKO許可證與其他電磁仿真軟件的比較

在電磁仿真領域&#xff0c;眾多軟件工具競相爭艷&#xff0c;而FEKO軟件及其許可證制度在其中獨樹一幟。本文將對比FEKO許可證與其他電磁仿真軟件&#xff0c;突出FEKO在許可證方面的卓越性能與獨特優勢&#xff0c;幫助您做出明智的選擇。 一、許可證成本與價值比較 相較于其…

綠色云計算:數字化轉型與可持續發展的完美融合

目錄 引言 綠色云計算的概念與定義 云計算的環境影響與綠色云計算的重要性 綠色云計算的技術實踐與策略 綠色云計算的案例研究與最佳實踐 綠色云計算的挑戰與限制 綠色云計算的未來趨勢與預測 結論與展望 引言 隨著云計算技術的迅猛發展和廣泛應用&#xff0c;其環境影…

在innovus中如何設置讓信號線打上雙孔

知識星球【芯冰樂】入口 為了讓設計的芯片良率能得到顯著提升,一般在繞線資源允許的情況下,我們會在盡可能多的signal線上打上雙孔,然而在進行某個項目的時候,小編驚訝的發現,在數字的layout上一個雙孔都沒出現,這是為什么呢?今天就讓小編分享一下這次新奇的發現; 經…

DevExpress GridControl 復選列實時獲取選中狀態的解決方案

問題核心分析 用戶在使用 DevExpress GridControl 的復選列時遇到兩個關鍵問題&#xff1a; 1.使用 CellValueChanged 事件需要點擊其他列才會觸發&#xff0c;無法實時響應勾選動作 2.使用 CheckedChanged 事件并調用 PostEditor() 會導致復選框無法選中 這主要是因為 DevExp…

數據一致性校驗算法

數據完整性校驗 在 數據錄入、通信協議&#xff08;CAN、LIN、Ethernet&#xff09; 和 存儲&#xff08;Flash、EEPROM&#xff09; 領域&#xff0c;數據校驗&#xff08;Error Checking&#xff09; 是確保 數據完整性和正確性的關鍵技術 示例&#xff1a;當我們從互聯網上…

101個α因子#9

((0 < ts_min(delta(close, 1), 5)) ? delta(close, 1) : ((ts_max(delta(close, 1), 5) < 0) ? delta(close, 1) : (-1 * delta(close, 1))))worldquant brain平臺上調整后的語法&#xff1a; ((0 < min(close-ts_delay(close, 1), ts_delay(close, 1)-ts_delay(c…

國產視頻轉換LT6211UX:HDMI2.0轉LVDS/MIPI芯片簡介,支持4K60Hz

1. LT6211UX HDMI2.0信號輸入 支持HDMI2.0b, HDMI1.4和DVI1.0 支持HDCP2.2和HDCP1.4 數據速率高達6Gbps 自適應接收機均衡 支持4k60Hz 支持的3D格式&#xff1a; 對于HDMI -> LVDS&#xff1a; 直接3D輸出 2路2D L/R輸出 對于HDMI -> MIPI&#xff1a; 框架包裝&#x…

華三(H3C)IRF堆疊心跳的LACP MAD、BFD MAD和ARP MAD差異

華三&#xff08;H3C&#xff09;IRF堆疊心跳的三種MAD&#xff08;多主檢測&#xff09;機制——LACP MAD、BFD MAD和ARP MAD在實現原理、組網要求及適用場景上存在顯著差異。以下是三者的對比分析&#xff1a; 一、核心區別對比 特性LACP MADBFD MADARP MAD檢測原理擴展LAC…

宿州金博學校開展防震演練:夯實安全根基,守護校園平安

5月13日上午9點30分&#xff0c;金博學校原本寧靜的校園被一陣急促的警報聲打破&#xff0c;一場精心籌備、緊張有序的防震演練正式開啟。本次演練意義重大&#xff0c;旨在強化全體師生的防震減災意識&#xff0c;提高大家在地震突發時的應急反應與自我保護能力。 緊急避險&am…