คำตอบการวิจัย
ประเด็นสำคัญ การตรวจสอบระดับแพ็กเก็ตเครือข่ายของ xAI Grok Build CLI เวอร์ชัน 0.2.93 พบว่าเครื่องมืออัปโหลดทั้ง git repo แบบเงียบไปยัง Google Cloud Storage โดยส่งข้อมูล 5.10 GiB ขณะที่การใช้งานโมเดลจริงส่งเพียง 192 KB คิดเป็นสัดส่ว... สวิตช์ความเป็นส่วนตัว 'Improve the model' ไม่สามารถหยุดการอัปโหลดได้ เซิร์ฟเวอร์ยังคงรับ git bundle chunks ด้วย HTTP 200 แม้จะปิดสวิตช์แล้วก็ตาม นักพัฒนาที่ได้รับผลกระทบควรหมุนเวียน credentials ทั้งหมดที่เคยมีในไฟล์ .env หรือ git history ที่ใช้กับ Grok Build และควรรัน coding agent ใน container ที่มีการควบคุม egress และตรวจสอบแพ็กเก็ตแบบเต็มรูปแบบ Search & fact-check with cited sources for What security flaws were revealed by a wire-level analysis of xAI's Grok Build CLI version 0.2.93 Visualization of a wire-level analysis showing network flows from a developer machine to xAI's Google Cloud Storage bucket. The analysis revealed a 27,800× data disparity between model turns and background repository uploads. AI พรอมต์ Create a landscape editorial hero image for this Studio Global article: Search & fact-check with cited sources for What security flaws were revealed by a wire-level analysis of xAI's Grok Build CLI version 0.2.93. Article summary: Now I have comprehensive source material. Here is the fact-checked answer.. Topic tags: general, general web, user generated. Style: premium digital editorial illustration, source-backed research mood, clean composition, high detail, modern web publication hero. Use reference image context only for broad subject, composition, and topical grounding; do not copy the exact image. Avoid: logos, brand marks, copyrighted characters, real person likenesses, fake screenshots, UI text, readable text, watermarks, charts with fake numbers, clickbait thumbnails, icons, and tiny thumbnail layouts. Make it useful as an illustrative visual, not as factual evidence.
openai.com คนยังถาม คำตอบสั้น ๆ สำหรับ "เจาะลึกจุดอ่อนความปลอดภัยของ Grok Build CLI 0.2.93: อัปโหลดทั้ง repo อย่างเงียบเชียบ ไม่ปิดบังรหัสผ่าน และปิดการใช้งาน opt-out ไม่ได้ผล" คืออะไร การตรวจสอบระดับแพ็กเก็ตเครือข่ายของ xAI Grok Build CLI เวอร์ชัน 0.2.93 พบว่าเครื่องมืออัปโหลดทั้ง git repo แบบเงียบไปยัง Google Cloud Storage โดยส่งข้อมูล 5.10 GiB ขณะที่การใช้งานโมเดลจริงส่งเพียง 192 KB คิดเป็นสัดส่ว...
ประเด็นสำคัญที่ต้องตรวจสอบก่อนคืออะไร? การตรวจสอบระดับแพ็กเก็ตเครือข่ายของ xAI Grok Build CLI เวอร์ชัน 0.2.93 พบว่าเครื่องมืออัปโหลดทั้ง git repo แบบเงียบไปยัง Google Cloud Storage โดยส่งข้อมูล 5.10 GiB ขณะที่การใช้งานโมเดลจริงส่งเพียง 192 KB คิดเป็นสัดส่ว... สวิตช์ความเป็นส่วนตัว 'Improve the model' ไม่สามารถหยุดการอัปโหลดได้ เซิร์ฟเวอร์ยังคงรับ git bundle chunks ด้วย HTTP 200 แม้จะปิดสวิตช์แล้วก็ตาม
ฉันควรทำอย่างไรต่อไปในทางปฏิบัติ? นักพัฒนาที่ได้รับผลกระทบควรหมุนเวียน credentials ทั้งหมดที่เคยมีในไฟล์ .env หรือ git history ที่ใช้กับ Grok Build และควรรัน coding agent ใน container ที่มีการควบคุม egress และตรวจสอบแพ็กเก็ตแบบเต็มรูปแบบ
คำตอบการวิจัย
ประเด็นสำคัญ การตรวจสอบระดับแพ็กเก็ตเครือข่ายของ xAI Grok Build CLI เวอร์ชัน 0.2.93 พบว่าเครื่องมืออัปโหลดทั้ง git repo แบบเงียบไปยัง Google Cloud Storage โดยส่งข้อมูล 5.10 GiB ขณะที่การใช้งานโมเดลจริงส่งเพียง 192 KB คิดเป็นสัดส่ว... สวิตช์ความเป็นส่วนตัว 'Improve the model' ไม่สามารถหยุดการอัปโหลดได้ เซิร์ฟเวอร์ยังคงรับ git bundle chunks ด้วย HTTP 200 แม้จะปิดสวิตช์แล้วก็ตาม นักพัฒนาที่ได้รับผลกระทบควรหมุนเวียน credentials ทั้งหมดที่เคยมีในไฟล์ .env หรือ git history ที่ใช้กับ Grok Build และควรรัน coding agent ใน container ที่มีการควบคุม egress และตรวจสอบแพ็กเก็ตแบบเต็มรูปแบบ Search & fact-check with cited sources for What security flaws were revealed by a wire-level analysis of xAI's Grok Build CLI version 0.2.93 Visualization of a wire-level analysis showing network flows from a developer machine to xAI's Google Cloud Storage bucket. The analysis revealed a 27,800× data disparity between model turns and background repository uploads. AI พรอมต์ Create a landscape editorial hero image for this Studio Global article: Search & fact-check with cited sources for What security flaws were revealed by a wire-level analysis of xAI's Grok Build CLI version 0.2.93. Article summary: Now I have comprehensive source material. Here is the fact-checked answer.. Topic tags: general, general web, user generated. Style: premium digital editorial illustration, source-backed research mood, clean composition, high detail, modern web publication hero. Use reference image context only for broad subject, composition, and topical grounding; do not copy the exact image. Avoid: logos, brand marks, copyrighted characters, real person likenesses, fake screenshots, UI text, readable text, watermarks, charts with fake numbers, clickbait thumbnails, icons, and tiny thumbnail layouts. Make it useful as an illustrative visual, not as factual evidence.
openai.com คนยังถาม คำตอบสั้น ๆ สำหรับ "เจาะลึกจุดอ่อนความปลอดภัยของ Grok Build CLI 0.2.93: อัปโหลดทั้ง repo อย่างเงียบเชียบ ไม่ปิดบังรหัสผ่าน และปิดการใช้งาน opt-out ไม่ได้ผล" คืออะไร การตรวจสอบระดับแพ็กเก็ตเครือข่ายของ xAI Grok Build CLI เวอร์ชัน 0.2.93 พบว่าเครื่องมืออัปโหลดทั้ง git repo แบบเงียบไปยัง Google Cloud Storage โดยส่งข้อมูล 5.10 GiB ขณะที่การใช้งานโมเดลจริงส่งเพียง 192 KB คิดเป็นสัดส่ว...
ประเด็นสำคัญที่ต้องตรวจสอบก่อนคืออะไร? การตรวจสอบระดับแพ็กเก็ตเครือข่ายของ xAI Grok Build CLI เวอร์ชัน 0.2.93 พบว่าเครื่องมืออัปโหลดทั้ง git repo แบบเงียบไปยัง Google Cloud Storage โดยส่งข้อมูล 5.10 GiB ขณะที่การใช้งานโมเดลจริงส่งเพียง 192 KB คิดเป็นสัดส่ว... สวิตช์ความเป็นส่วนตัว 'Improve the model' ไม่สามารถหยุดการอัปโหลดได้ เซิร์ฟเวอร์ยังคงรับ git bundle chunks ด้วย HTTP 200 แม้จะปิดสวิตช์แล้วก็ตาม
ฉันควรทำอย่างไรต่อไปในทางปฏิบัติ? นักพัฒนาที่ได้รับผลกระทบควรหมุนเวียน credentials ทั้งหมดที่เคยมีในไฟล์ .env หรือ git history ที่ใช้กับ Grok Build และควรรัน coding agent ใน container ที่มีการควบคุม egress และตรวจสอบแพ็กเก็ตแบบเต็มรูปแบบ
พฤติกรรมการขโมยข้อมูลที่ขัดกับแนวคิด 'Local-First' นักวิจัยระบุ ช่องทางส่งข้อมูลที่แตกต่างกัน 2 เส้นทาง ที่ออกจากเครื่องของนักพัฒนา :
ช่องทาง model-turn (POST /v1/responses): ไฟล์ที่ agent เปิดอ่านจะถูกแปลงเป็นคำขอของโมเดล นี่คือพฤติกรรมที่คาดหวังได้จาก cloud coding agent ทั่วไป
ช่องทาง storage (POST /v1/storage): ทั้ง repository จะถูกบรรจุเป็น git bundle และอัปโหลดเป็นชิ้นส่วนขนาด ~75 MB ไปยัง bucket ชื่อ grok-code-session-traces ของ Google Cloud Storage
ประเภทของความลับและไฟล์ที่ถูกส่งโดยไม่ปิดบัง
ไฟล์ .env ที่มี API keys, รหัสผ่านฐานข้อมูล และข้อมูลรับรองอื่นๆ ถูกส่ง ตามตัวอักษร โดยไม่มีการปกปิดหรือซ่อน ผ่านทั้งสองช่องทาง ในการทดสอบที่ควบคุม ไฟล์ 48 KB ที่มีข้อมูลรับรองฐานข้อมูลและ API keys ปรากฏในรูปแบบข้อความธรรมดาใน request body
ทุกไฟล์ที่ถูกติดตาม (tracked file) ใน repository รวมถึง ประวัติ git ทั้งหมด (ทุก commit, branch, tag) ถูกบรรจุและอัปโหลด ซึ่งหมายความว่าความลับที่ถูกลบไปเมื่อหลายเดือนก่อนแต่ถูกหมุนเวียนแล้วอาจยังคงอยู่ในข้อมูลที่อัปโหลด
กลไกการอัปโหลดถูกระบุว่าเป็น first-party Rust crate (xai-data-collector) ที่อยู่ใน binary โดยมี source paths เช่น crates/codegen/xai-data-collector/src/gcs.rs และ crates/codegen/xai-grok-shell/src/upload/
ใน codebase จริงขนาด 12 GB ของไฟล์สุ่มที่ไม่เคยถูกอ่าน endpoint storage ยังคงยอมรับการอัปโหลดโดยไม่มีการปฏิเสธตามขนาด การตอบกลับที่ไม่ใช่ 200 เพียงอย่างเดียวคือข้อผิดพลาดโควตาการใช้โมเดล (402/429) ไม่ใช่ความล้มเหลวในการจัดเก็บ
ความล้มเหลวของปิดการใช้งาน Opt-Out
หลังจากปิดสวิตช์และรีสตาร์ท endpoint การตั้งค่าเซิร์ฟเวอร์ยังคงส่งกลับ trace_upload_enabled: true
ช่องทาง storage ยังคงรับ git-bundle chunks ด้วยการตอบกลับ HTTP 200
มีตัวเลือก disable_codebase_upload=true ในการตั้งค่า harness แต่ความสัมพันธ์กับพฤติกรรมฝั่งเซิร์ฟเวอร์นั้นไม่มีเอกสาร และการทดสอบของนักวิจัยแสดงให้เห็นว่าเซิร์ฟเวอร์ไม่เคารพการตั้งค่าฝั่งไคลเอ็นต์
คำแนะนำการป้องกันสำหรับนักพัฒนาที่ได้รับผลกระทบ การดำเนินการทันทีสำหรับทีมที่ใช้ Grok Build CLI กับ private repos:
หมุนเวียน credentials ทั้งหมด ที่เคยอยู่ในไฟล์ .env ใดๆ, ไฟล์กำหนดค่า หรือ git history ภายใน repositories ที่ใช้กับ Grok Build เนื่องจากข้อมูลเหล่านี้อาจถูกส่งและจัดเก็บใน GCS bucket grok-code-session-traces
ตรวจสอบ git history หาความลับที่อาจมีอยู่ใน commit ใดๆ ในอดีต เนื่องจาก CLI ส่งประวัติการ commit ทั้งหมด
สันนิษฐานว่าข้อมูลถูกจัดเก็บ ไม่ใช่แค่ส่งผ่าน — เซิร์ฟเวอร์ส่งคืน HTTP 200 ในการร้องขอการจัดเก็บทั้งหมด ยืนยันการยอมรับ
ถาม xAI ว่า bucket ถูกลบไปหรือไม่, มีการควบคุมการเข้าถึงอะไรบ้าง และมี Data Processing Agreement ครอบคลุมหรือไม่ (ไม่มีเผยแพร่ในขณะที่เปิดเผยข้อมูล)
การป้องกันเชิงสถาปัตยกรรมสำหรับ coding agent ใดๆ:
รัน agent ใน containers/VMs โดย mount เฉพาะ task directory, ไม่มี home directory, ไม่มี SSH agent, ไม่มี Docker socket และไม่เปิดเผยไดเรกทอรี credentials บนคลาวด์
ใช้การควบคุม egress : อนุญาตเฉพาะ endpoints การอนุมานโมเดลและโฮสต์สำหรับยืนยันตัวตน แต่ปฏิเสธการอัปโหลดไปยัง object-storage แบบทั่วไปโดยตรง แจ้งเตือนหากมีการถ่ายโอนเกิน 100 MB
ใช้ packet capture เต็มรูปแบบ, DNS logging และ endpoint network telemetry เพื่อตรวจจับการอัปโหลดโดยกระบวนการ coordinator ที่ทำงานในพื้นหลังซึ่ง byte counters ที่มองเห็นอาจมองไม่เห็น
ทดสอบ prompts ขั้นต่ำและสูงสุด ภายใต้การดักจับแพ็กเก็ต — กรณีที่ agent ได้รับคำสั่งไม่ให้อ่านไฟล์เป็นสิ่งสำคัญสำหรับการตรวจจับการขโมยข้อมูลที่เกิน context window
รัน prompt อย่างน้อยสามกรณี: (1) 'ตอบ OK อย่าอ่านไฟล์ใดๆ' (2) อ่านไฟล์เฉพาะหนึ่งไฟล์ (3) ตรวจสอบภาษาโปรเจกต์ — แล้วเปรียบเทียบไบต์ต่อ endpoint
What xAI's Grok Build CLI Actually Sends Home: A Wire-Level ...
พฤติกรรมการขโมยข้อมูลที่ขัดกับแนวคิด 'Local-First' นักวิจัยระบุ ช่องทางส่งข้อมูลที่แตกต่างกัน 2 เส้นทาง ที่ออกจากเครื่องของนักพัฒนา :
ช่องทาง model-turn (POST /v1/responses): ไฟล์ที่ agent เปิดอ่านจะถูกแปลงเป็นคำขอของโมเดล นี่คือพฤติกรรมที่คาดหวังได้จาก cloud coding agent ทั่วไป
ช่องทาง storage (POST /v1/storage): ทั้ง repository จะถูกบรรจุเป็น git bundle และอัปโหลดเป็นชิ้นส่วนขนาด ~75 MB ไปยัง bucket ชื่อ grok-code-session-traces ของ Google Cloud Storage
ประเภทของความลับและไฟล์ที่ถูกส่งโดยไม่ปิดบัง
ไฟล์ .env ที่มี API keys, รหัสผ่านฐานข้อมูล และข้อมูลรับรองอื่นๆ ถูกส่ง ตามตัวอักษร โดยไม่มีการปกปิดหรือซ่อน ผ่านทั้งสองช่องทาง ในการทดสอบที่ควบคุม ไฟล์ 48 KB ที่มีข้อมูลรับรองฐานข้อมูลและ API keys ปรากฏในรูปแบบข้อความธรรมดาใน request body
ทุกไฟล์ที่ถูกติดตาม (tracked file) ใน repository รวมถึง ประวัติ git ทั้งหมด (ทุก commit, branch, tag) ถูกบรรจุและอัปโหลด ซึ่งหมายความว่าความลับที่ถูกลบไปเมื่อหลายเดือนก่อนแต่ถูกหมุนเวียนแล้วอาจยังคงอยู่ในข้อมูลที่อัปโหลด
กลไกการอัปโหลดถูกระบุว่าเป็น first-party Rust crate (xai-data-collector) ที่อยู่ใน binary โดยมี source paths เช่น crates/codegen/xai-data-collector/src/gcs.rs และ crates/codegen/xai-grok-shell/src/upload/
ใน codebase จริงขนาด 12 GB ของไฟล์สุ่มที่ไม่เคยถูกอ่าน endpoint storage ยังคงยอมรับการอัปโหลดโดยไม่มีการปฏิเสธตามขนาด การตอบกลับที่ไม่ใช่ 200 เพียงอย่างเดียวคือข้อผิดพลาดโควตาการใช้โมเดล (402/429) ไม่ใช่ความล้มเหลวในการจัดเก็บ
ความล้มเหลวของปิดการใช้งาน Opt-Out
หลังจากปิดสวิตช์และรีสตาร์ท endpoint การตั้งค่าเซิร์ฟเวอร์ยังคงส่งกลับ trace_upload_enabled: true
ช่องทาง storage ยังคงรับ git-bundle chunks ด้วยการตอบกลับ HTTP 200
มีตัวเลือก disable_codebase_upload=true ในการตั้งค่า harness แต่ความสัมพันธ์กับพฤติกรรมฝั่งเซิร์ฟเวอร์นั้นไม่มีเอกสาร และการทดสอบของนักวิจัยแสดงให้เห็นว่าเซิร์ฟเวอร์ไม่เคารพการตั้งค่าฝั่งไคลเอ็นต์
คำแนะนำการป้องกันสำหรับนักพัฒนาที่ได้รับผลกระทบ การดำเนินการทันทีสำหรับทีมที่ใช้ Grok Build CLI กับ private repos:
หมุนเวียน credentials ทั้งหมด ที่เคยอยู่ในไฟล์ .env ใดๆ, ไฟล์กำหนดค่า หรือ git history ภายใน repositories ที่ใช้กับ Grok Build เนื่องจากข้อมูลเหล่านี้อาจถูกส่งและจัดเก็บใน GCS bucket grok-code-session-traces
ตรวจสอบ git history หาความลับที่อาจมีอยู่ใน commit ใดๆ ในอดีต เนื่องจาก CLI ส่งประวัติการ commit ทั้งหมด
สันนิษฐานว่าข้อมูลถูกจัดเก็บ ไม่ใช่แค่ส่งผ่าน — เซิร์ฟเวอร์ส่งคืน HTTP 200 ในการร้องขอการจัดเก็บทั้งหมด ยืนยันการยอมรับ
ถาม xAI ว่า bucket ถูกลบไปหรือไม่, มีการควบคุมการเข้าถึงอะไรบ้าง และมี Data Processing Agreement ครอบคลุมหรือไม่ (ไม่มีเผยแพร่ในขณะที่เปิดเผยข้อมูล)
การป้องกันเชิงสถาปัตยกรรมสำหรับ coding agent ใดๆ:
รัน agent ใน containers/VMs โดย mount เฉพาะ task directory, ไม่มี home directory, ไม่มี SSH agent, ไม่มี Docker socket และไม่เปิดเผยไดเรกทอรี credentials บนคลาวด์
ใช้การควบคุม egress : อนุญาตเฉพาะ endpoints การอนุมานโมเดลและโฮสต์สำหรับยืนยันตัวตน แต่ปฏิเสธการอัปโหลดไปยัง object-storage แบบทั่วไปโดยตรง แจ้งเตือนหากมีการถ่ายโอนเกิน 100 MB
ใช้ packet capture เต็มรูปแบบ, DNS logging และ endpoint network telemetry เพื่อตรวจจับการอัปโหลดโดยกระบวนการ coordinator ที่ทำงานในพื้นหลังซึ่ง byte counters ที่มองเห็นอาจมองไม่เห็น
ทดสอบ prompts ขั้นต่ำและสูงสุด ภายใต้การดักจับแพ็กเก็ต — กรณีที่ agent ได้รับคำสั่งไม่ให้อ่านไฟล์เป็นสิ่งสำคัญสำหรับการตรวจจับการขโมยข้อมูลที่เกิน context window
รัน prompt อย่างน้อยสามกรณี: (1) 'ตอบ OK อย่าอ่านไฟล์ใดๆ' (2) อ่านไฟล์เฉพาะหนึ่งไฟล์ (3) ตรวจสอบภาษาโปรเจกต์ — แล้วเปรียบเทียบไบต์ต่อ endpoint
What xAI's Grok Build CLI Actually Sends Home: A Wire-Level ...