
Claude Code ซึ่งเป็น AI ช่วยเขียนโค้ดของ Anthropic มีช่องโหว่ระดับ Critical ที่สามารถ Bypass ระบบ network sandbox ซึ่งซ่อนอยู่เป็นเวลานานกว่า 5 เดือน ทำให้ผู้โจมตีสามารถขโมย Credentials, Source Code และ Environment Variables ออกไปจากระบบของนักพัฒนาได้ ยิ่งไปกว่านั้น ทางบริษัทไม่ได้มีการออกประกาศแจ้งเตือนต่อสาธารณะเกี่ยวกับเหตุการณ์ที่เกิดขึ้นทั้งสองครั้งแต่อย่างใด
นักวิจัยด้านความปลอดภัย Aonan Guan ได้เปิดเผยต่อสาธารณะถึงช่องโหว่การ Bypass ระบบ network sandbox ใน Claude Code ได้อย่างสมบูรณ์เป็นครั้งที่สอง พร้อมทั้งระบุว่าเป็นความล้มเหลวในการใช้งานอย่างต่อเนื่อง ไม่ใช่แค่ Bug หรือข้อผิดพลาดที่เกิดขึ้นเพียงครั้งคราว
ช่องโหว่ดังกล่าว เป็นการแทรก Null-Byte เข้าไปในชื่อโฮสต์ของโปรโตคอล SOCKS5 ซึ่งส่งผลกระทบต่อ Claude Code ทุกเวอร์ชันตั้งแต่เวอร์ชัน v2.0.24 (ซึ่งเป็นเวอร์ชันที่เปิดตัวระบบ Sandbox ให้ใช้งานทั่วไป หรือ GA เมื่อวันที่ 20 ตุลาคม 2025) ไปจนถึงเวอร์ชัน v2.1.89 ครอบคลุมเวอร์ชันที่ปล่อยออกมาประมาณ 130 เวอร์ชัน ตลอดระยะเวลาราว ๆ 5.5 เดือน
Anthropic ได้ออกแพตช์แก้ไขช่องโหว่นี้อย่างเงียบ ๆ ในเวอร์ชัน v2.1.90 เมื่อวันที่ 1 เมษายน 2026 ที่ผ่านมา โดยไม่มีการกล่าวถึงการแก้ไขช่องโหว่ด้านความปลอดภัยในบันทึกการอัปเดตแต่อย่างใด
เหตุการณ์นี้เกิดขึ้นต่อเนื่องมาจากช่องโหว่การ bypass ระบบ Sandbox ครั้งแรก ที่มีหมายเลข CVE-2025-66479 ซึ่งในตอนนั้น การตั้งค่าให้อนุญาตเฉพาะโดเมนที่กำหนดไว้เป็นค่าว่าง หรือ allowedDomains: [] โดยมีวัตถุประสงค์เพื่อบล็อก Traffic ขาออกทั้งหมด แต่ถูกโปรแกรม Claude Code อ่านผิดพลาดเป็น 'อนุญาตทั้งหมด' เนื่องจากช่องโหว่ในการเขียนโค้ดในการตรวจสอบเงื่อนไขความยาวของข้อมูล หรือ allowedDomains.length > 0
ช่องโหว่ดังกล่าวได้รับการแก้ไขอย่างเงียบ ๆ ในเวอร์ชัน 2.0.55 เมื่อวันที่ 26 พฤศจิกายน 2025 ซึ่งเป็นเวอร์ชันเดียวกันกับที่ยังคงมีช่องโหว่ injection ค่า Null-Byte ในโปรโตคอล SOCKS5 อยู่
ช่องโหว่ Network Sandbox ใน Claude Code
การโจมตีนี้ใช้ประโยชน์จากความแตกต่างในการประมวลผลคำสั่ง ระหว่างภาษา JavaScript กับ Library ในโปรแกรมภาษา C (libc) ที่อยู่เบื้องหลัง โดยระบบ Sandbox ของ Claude Code จะส่ง Traffic ขาออกทั้งหมดผ่าน SOCKS5 Proxy ซึ่งจะใช้ฟังก์ชัน endsWith() ของ JavaScript ในการตรวจสอบว่าชื่อโฮสต์นั้นตรงกับรายชื่อโดเมนที่ผู้ใช้อนุญาตหรือไม่ เช่น *.google.com เป็นต้น
ผู้โจมตีจะสร้างชื่อโฮสต์ปลอมขึ้นมาในลักษณะ เช่น attacker-host.com\x00.google.com ซึ่งเมื่อส่งไปตรวจ จะทำให้ตัวกรองของ JavaScript มองเห็นคำลงท้ายเป็น .google.com จึงอนุญาตให้ผ่านการเชื่อมต่อ แต่ในขณะเดียวกัน ฟังก์ชัน getaddrinfo() ของ library ในโปรแกรมภาษา C (libc) จะหยุดประมวลผลทันทีเมื่อเจอค่า Null-Byte (\x00) และทำการแปลงชื่อโดเมนปลายทางเป็น attacker-host.com ซึ่งเป็นโฮสต์ที่ถูกบล็อกไว้แทน

ช่องโหว่ดังกล่าวเกิดขึ้นใน sandbox-runtime เวอร์ชันที่ต่ำกว่าหรือเท่ากับ 0.0.42
เนื่องจากระบบจะนำข้อมูล Raw ของชื่อโดเมน (DOMAINNAME bytes) ที่ได้จาก SOCKS5 CONNECT Request ไปประมวลผลในตัวตรวจสอบเงื่อนไขโดยตรง โดยไม่มีกระบวนการ Sanitization เช่น การบล็อก Null-byte, การจำกัดความยาวข้อความ หรือการทำ Character Whitelisting
การแก้ไขใน sandbox-runtime เวอร์ชัน 0.0.43 ได้มีการเพิ่มฟังก์ชัน isValidHost() เข้ามาใช้ ซึ่งทำหน้าที่ปฏิเสธค่า \x00, เครื่องหมาย %, อักขระ CRLF รวมถึงตัวอักษรอื่น ๆ ที่ไม่ใช่รูปแบบของ DNS ก่อนที่ตัวตรวจสอบเงื่อนไขจะเริ่มทำงาน
ช่องโหว่ในการ Bypass ระบบป้องกันนี้ จะยิ่งอันตรายมากขึ้น เมื่อถูกนำไปใช้ร่วมกับการโจมตีประเภท Prompt Injection
คำสั่งที่เป็นอันตรายซึ่งซ่อนอยู่ในช่องความคิดเห็นของ GitHub Issue, ไฟล์ README หรือไฟล์เอกสารที่ Claude Code เข้าไปอ่าน สามารถทำให้โค้ดที่ผู้โจมตีควบคุมอยู่เริ่มทำงานภายในระบบ Sandbox ได้ ซึ่งซอฟต์แวร์ในเวอร์ชันก่อนหน้า v2.1.90 โค้ดอันตรายดังกล่าวจะสามารถใช้ช่องโหว่การ Bypass ระบบป้องกันนี้ แอบลักลอบส่งข้อมูลออกไปภายนอกอย่างเงียบ ๆ ได้แก่:
- ข้อมูลสิทธิ์การเข้าใช้งาน AWS จากโฟลเดอร์ ~/.aws/ และ GitHub Tokens จากโฟลเดอร์ ~/.config/gh/
- ข้อมูล Meta-data ของ Cloud Instance จาก IP 169.254.169.254
- จุดเชื่อมต่อ API ภายใน และทรัพยากรต่าง ๆ บนเครือข่ายอินทราเน็ตขององค์กร
- Environment variables และคีย์สำหรับเข้าใช้งาน API ของโมเดลต่าง ๆ โดยข้อมูลทั้งหมดนี้จะถูกส่งออกไปผ่านโปรโตคอล SOCKS5 ซึ่งทำให้สามารถหลบเลี่ยงระบบ HTTP egress logs ตามปกติได้

Anthropic ได้ปิดรายงานแจ้งเตือนของ Guan บนแพลตฟอร์ม HackerOne (หมายเลขรายงาน #3646509) โดยระบุว่าเป็นรายงานที่ซ้ำซ้อน และ ณ วันที่ 10 พฤษภาคม 2026 ทางบริษัทยังไม่ได้มีการเผยแพร่หมายเลขช่องโหว่ (CVE) สำหรับช่องโหว่การ Bypass ระบบ SOCKS5 นี้ ทั้งในฐานข้อมูลช่องโหว่แห่งชาติ (NVD) หรือในฐานข้อมูลแจ้งเตือนของ GitHub แต่อย่างใด
หมายเลข CVE-2025-66479 ยังคงเป็น CVE เดียวที่มีการบันทึกเหตุการณ์ช่องโหว่ระบบ Sandbox ทั้งสองครั้ง และหมายเลขดังกล่าวถูกออกให้สำหรับ sandbox-runtime ไม่ใช่สำหรับตัวโปรแกรม Claude Code โดยตรง
หน้าคำแนะนำด้านความปลอดภัยของ Claude Code ไม่มีรายชื่อของช่องโหว่ระบบ Sandbox นี้ปรากฏอยู่ ผู้ใช้งานจึงควรทำการอัปเดต Claude Code เป็นเวอร์ชัน v2.1.90 หรือเวอร์ชันที่ใหม่กว่าในทันที (สามารถใช้คำสั่ง claude --version เพื่อตรวจสอบเวอร์ชันที่ใช้งานอยู่ได้)
ผู้ใดก็ตามที่ตั้งค่าอนุญาตโดเมนแบบ Wildcard บนระบบที่มีการเก็บ Credentials ในช่วงระหว่างวันที่ 20 ตุลาคม 2025 จนถึงวันที่ทำการอัปเดตระบบ ควรตรวจสอบประวัติการบันทึก Traffic ขาออกที่ส่งผ่านโปรโตคอล SOCKS อย่างละเอียด และทำการเปลี่ยนรหัส หรือ Token ทั้งหมดที่อาจถูกเข้าถึงได้ในทันที
ดังที่นักวิจัยได้ระบุไว้ว่า อย่าไว้ใจ Sandbox ของผู้ให้บริการ โดยให้มองเป็นเพียงระบบป้องกันเสริมเท่านั้น ไม่สามารถใช้เป็นด่านหน้าหลักในการการันตีความปลอดภัยได้ และควรบังคับใช้มาตรการควบคุม Traffic ขาออก ในระดับเครือข่าย หรือระดับ Hypervisor ซึ่งเป็นพื้นที่ที่อยู่ภายนอกขอบเขตการเข้าถึงของตัว Agent เอง
ที่มา : cybersecuritynews

You must be logged in to post a comment.