Google engineer uses Gemini 4 Argon and Z3 to catch Go bounds bugs
เนื้อหานี้ยังไม่มีในภาษาของคุณ จึงแสดงเป็นEnglish
เริ่มตรงนี้
A Google engineer who leads the company's agent skills program built a pipeline in which Gemini 4 Argon reads Go source and RISC-V disassembly and converts surviving runtime.panicBounds traps into Z3 constraints; go test then replays any satisfying input as a real reproducer. According to the engineer's account, the workflow caught all three planted bugs and three latent bugs in skill-lint. Unseeded go test -fuzz missed two of the planted crashes, because Go checks slices against capacity rather than length. Clipping capacity to length with data[:len(data):len(data)] made the fuzzer crash both overrun bugs in all three runs, with medians of 0.28 s and 0.17 s.
สร้างจากรายงาน · อัปเดต 14 ชม. ที่แล้ว
ไทม์ไลน์รายงาน
ไล่ตามรายงานเพื่อดูเหตุการณ์นี้จากหลายด้าน
- Google Developers Blogวิศวกร Google ใช้ Gemini 4 Argon และ Z3 จับบั๊ก bounds-check ใน Go ที่ fuzzing พลาด
วิศวกร Google ซึ่งเป็นผู้นำโปรแกรม agent skills ของบริษัทได้สร้างไปป์ไลน์ที่ Gemini 4 Argon อ่านซอร์สโค้ด Go และดิสแอสเซมบลี RISC-V แล้วแปลงกับดัก runtime.panicBounds ที่ยังหลงเหลือให้เป็นข้อจำกัด Z3 จากนั้น go test จะเล่นซ้ำอินพุตที่ตรงเงื่อนไขใดๆ เป็นตัวสร้างซ้ำจริง เวิร์กโฟลว์นี้จับบั๊กที่ฝังไว้ทั้งสามตัวและบั๊กแฝงสามตัวใน skill-lint ขณะที่ go test -fuzz แบบไม่กำหนด seed พลาดการ crash ที่ฝังไว้สองตัว เพราะ Go ตรวจสอบสไลซ์เทียบกับ capacity ไม่ใช่ length การตัด capacity ให้เท่ากับ length ด้วย data[:len(data):len(data)] ทำให้ fuzzer crash บั๊ก overrun ทั้งสองตัวในการรันทั้งสามครั้ง โดยมีค่ามัธยฐาน 0.28 วินาที และ 0.17 วินาที
ความร้อนแรงของเหตุการณ์นี้
ยังมีการเฝ้าดูต่อเนื่องไม่พอจะวาดแนวโน้ม