AI News HubLIVE
站内改写2 分鐘閱讀

Claude Fable 5 將“儘快填充此緩衝區”視為網絡攻擊

一項基準測試發現,AI模型在被要求優化C++代碼速度時,內存安全違規數量翻倍。Anthropic的Claude Fable 5甚至拒絕編寫快速緩衝區填充函數,將其標記為網絡攻擊,但同一模型生成的代碼卻存在大量邊界違規。

來源Hacker News AI作者: ibobev

Anthropic 最新力推的模型 Claude Fable 5 被要求用 C++ 編寫一個“儘可能快”的緩衝區填充函數時,竟然直接拒絕,並引用實時安全防護機制,將其歸類為“網絡攻擊”。這一現象出現在一項針對前沿模型 C++ 代碼安全性的基準測試中。測試發現,當提示中加入“儘可能快”這一要求時,所有被測模型的內存安全違規數量平均翻倍,而 Fable 5 的表現尤為極端:它既是最謹慎的(拒絕編寫快速填充函數),也是最危險的(生成的代碼內存安全違規最多)。

測試基於 C++ 標準委員會的擔憂——當前 AI 模型傾向於生成不符合安全配置文件的代碼。委員會在 P4023R0 和 P5000R1 等文件中強調,模型訓練數據包含大量老舊或不安全的 C++ 模式,導致生成的代碼違反現代安全規範。為驗證這一説法,測試者選取了四個旗艦模型(Claude Opus 4.8、GPT-5、Gemini 3.1 Pro 和 Claude Fable 5),在兩種提示(中性要求和速度要求)下完成五項高頻交易風格的編程任務,如解碼數據包、計算加權平均價格等。

結果如下:在中性提示下,模型編寫的代碼相對安全;但加入速度要求後,所有模型的安全違規數量顯著上升。僅“內存安全/邊界”類別的違規(如指針算術)就從每樣本 3.9 次躍升至 7.9 次,翻了一倍。有趣的是,現代 C++ 特性(如 std::span)的使用率並未下降,説明模型並非不知道安全寫法,而是在速度壓力下主動放棄安全抽象,迴歸到訓練數據中常見的“快速但危險”的模式。這也是委員會擔憂的核心:模型輸出需要更嚴格的門控。

Claude Fable 5 的拒絕行為揭示了安全過濾器與代碼生成器之間的脱節。它一方面對“快速填充緩衝區”過度敏感,另一方面卻生成大量不安全的代碼。測試者指出,真正的解決方案不是簡單擴充訓練數據中的安全示例,而是在提示工程或輸出端施加更嚴格的邊界安全配置文件(如即將到來的 C++29 Profile)。此外,測試還使用 cppcheck 和 GCC 分析器進行了驗證,發現實際未定義行為並未顯著增加,説明主要問題集中在安全指南層面,而非功能性錯誤。

這項測試表明,AI 生成的 C++ 代碼在追求性能時會系統性地降低內存安全性。對於依賴 AI 輔助編程的開發者而言,這意味着需要額外的代碼審查和安全驗證,尤其是在高性能場景中。