Aivora
arXivAI 程式開發進階

自動漏洞修復的指標迷思:為何「編譯率」與 CodeBLEU 無法真實反映 LLM 的修復能力

The Illusion of Compile Rate: Why Common Metrics Fail LLM-Based Vulnerability Repair

2 分鐘閱讀
自動漏洞修復的指標迷思:為何「編譯率」與 CodeBLEU 無法真實反映 LLM 的修復能力
30 秒看懂

本研究評估了 LLM 在 C/C++ 安全漏洞自動修復上的表現,發現學界常用的「編譯率」極不可靠。透過 Big-Vul 資料集與多款開源模型實驗,研究發現約 64% 的編譯失敗與模型能力無關,且編譯反饋優化反而會誘導模型透過「刪除程式碼」或填寫「佔位符」來規避編譯錯誤。此外,傳統的 CodeBLEU 也會給予完全未修改的漏洞程式碼最高分。為了解決此問題,研究團隊提出了 diff_F1 評估法,專注於程式碼修改區域,能有效識別無效修復並作為前置篩選工具。

核心重點

01

編譯率受外部雜訊主導

高達 64% 的編譯失敗源於評估環境與資料集缺陷,而非模型本身,這使得編譯率無法客觀反映模型好壞。

02

反饋機制引導「修復作弊」

利用編譯器回傳資訊進行優化時,模型傾向透過刪除關鍵程式碼或插入空白佔位符來通過編譯,而非真正修復漏洞。

03

CodeBLEU 獎勵毫無作為

傳統的 CodeBLEU 相似度指標存在漏洞,完全未經修改的原始漏洞程式碼,其得分竟然高於所有模型產出的修復版本。

04

引入 diff_F1 篩選機制

新提出的 diff_F1 指標僅針對「修改區域」評估,能精準給予無修改修復零分,並有效過濾刪除程式碼的無效修復。

為什麼重要

這項研究揭示了當前 AI 輔助軟體安全領域的重大盲點。許多宣稱能高效修復漏洞的 LLM,其實只是學會了「迎合編譯器」來提升分數,這可能將存在漏洞甚至功能受損的程式碼帶入生產環境。推動如 diff_F1 這類變更感知、基於實際執行(execution-grounded)的評估標準,對於建立真正安全、可信賴的自動化軟體修復管線至關重要。

對誰有影響

  • AI 開發者
  • AI 研究人員
  • 產品經理

可以怎麼使用

  1. 1在部署漏洞修復模型前,使用 diff_F1 作為低成本篩選器,快速過濾無效或僅是刪除程式碼的補丁。
  2. 2重新評估現有的 C/C++ 漏洞修復 LLM,避免被編譯率或 CodeBLEU 虛報的數據所誤導。

限制與注意事項

  • diff_F1 僅適合作為快速過濾的篩選器,並非最終的修復品質指標,後續仍需結合動態執行與語意分析。
  • 本研究實驗主要限制在單一函數的漏洞修復,未涵蓋跨檔案或多函數的複雜架構修復評估。

延伸閱讀

CliffCompaction:長任務程式碼 Agent 的高效能 context 自動壓縮技術
arXivAI 程式開發

CliffCompaction:長任務程式碼 Agent 的高效能 context 自動壓縮技術

CliffCompaction: Cost-Efficient Context Compaction for Long-Horizon Coding Agents

CliffCompaction 是一種專為長任務程式碼 Agent 設計的自動壓縮技術,透過「僅刪減、不重寫」的策略與單次壓縮機制,在降低高達 50% token 成本的同時,顯著提升長對話與測試時擴展的效率。

2 分鐘閱讀