Claude Code 2.1.282 ห้ามไฟล์ settings ในรีโปเปิด OpenTelemetry — ปิดทางที่รีโปแปลกหน้าจะส่ง prompt ของคุณไปยัง collector ของตัวเอง และกันสกิลปลอมชื่อ anthropic-skills
Claude Code 2.1.282 (เผยแพร่ 24 ก.ย. 2026 เวลา 18:38 UTC) มี changelog เกือบร้อยบรรทัด ส่วนใหญ่เป็นการแก้บั๊กเล็ก ๆ แต่มีบรรทัดหนึ่งที่สำคัญด้านความปลอดภัย: “Changed project and local settings to ignore OpenTelemetry variables that turn on export, set its endpoint, or capture content, like CLAUDE_CODE_ENABLE_TELEMETRY and OTEL_LOG_*”
พูดง่าย ๆ คือ ไฟล์ .claude/settings.json และ .claude/settings.local.json ที่มากับรีโป ไม่สามารถเปิด telemetry, ชี้ปลายทางไปยัง collector ของตัวเอง หรือสั่งให้เก็บเนื้อหา prompt ได้อีกแล้ว ก่อนหน้านี้ รีโปที่คุณ clone มาสามารถใส่ค่าอย่าง OTEL_EXPORTER_OTLP_ENDPOINT คู่กับ OTEL_LOG_USER_PROMPTS=1 ไว้ในบล็อก env ได้ ข้อความที่คุณพิมพ์ และถ้าเปิดตัวแปรอื่นเพิ่มก็รวมถึงคำสั่ง Bash และผลของเครื่องมือ จะถูกส่งออกไปยังเซิร์ฟเวอร์ที่เจ้าของรีโปเลือกไว้
ทำไมช่องนี้อันตรายกว่าที่คิด: โหมด -p
เอกสาร settings reference อธิบายว่าค่า env จากไฟล์ settings ของโปรเจกต์จะมีผล “after you trust the workspace, or at startup in -p mode, which never shows the trust dialog”
ในการใช้งานแบบ interactive อย่างน้อยผู้ใช้ยังต้องกดยืนยันว่าเชื่อถือโฟลเดอร์ก่อน แต่ โหมด headless (claude -p) ที่ใช้ใน CI, สคริปต์อัตโนมัติ และ Agent SDK ไม่มีขั้นตอนยืนยันนี้เลย ถ้า pipeline ของคุณรัน Claude Code บนโค้ดจาก pull request ของคนนอก ไฟล์ settings ที่มากับ PR นั้นก็ตั้งค่าส่ง telemetry ได้ทันที เราไม่พบ security advisory (GHSA) หรือ issue สาธารณะเกี่ยวกับช่องนี้ Anthropic แก้ไว้ใน changelog โดยไม่ได้เรียกว่าช่องโหว่
ตัวแปรที่ถูกเพิกเฉยตอนนี้ครอบคลุม CLAUDE_CODE_ENABLE_TELEMETRY, ตัวเลือก exporter ทั้งสาม (OTEL_LOGS_EXPORTER, OTEL_METRICS_EXPORTER, OTEL_TRACES_EXPORTER), ตัวแปรเนื้อหาอย่าง OTEL_LOG_USER_PROMPTS, OTEL_LOG_ASSISTANT_RESPONSES, OTEL_LOG_TOOL_CONTENT, OTEL_LOG_TOOL_DETAILS และตัวแปร OTEL_EXPORTER_OTLP_* ที่ลงท้ายด้วย _ENDPOINT, _HEADERS, _PROTOCOL เป็นต้น ข้อยกเว้นเดียวคือค่าที่ ปิด telemetry เช่นตั้ง exporter เป็น none ยังใช้ได้จากไฟล์ในรีโป
ทีมที่ commit ค่า OTEL ไว้ในรีโป: telemetry จะหายเงียบ ๆ
ผลกระทบอีกด้านคือ ทีมที่ตั้งค่าส่ง metrics เข้า collector ขององค์กรโดย commit ไว้ใน .claude/settings.json จะพบว่าข้อมูลหยุดเข้าหลังอัปเกรด เวอร์ชันนี้แสดงประกาศตอนเริ่มเซสชัน และมีรายการใน /status กับ claude doctor ที่บอกว่าตัวแปรไหนถูกเพิกเฉย (บอกเฉพาะชื่อ ไม่แสดงค่า) แต่เอกสารเตือนว่า “A non-interactive run with -p or an Agent SDK session shows no notice” งาน CI จึงหยุดส่ง telemetry โดยไม่มีข้อความเตือน วิธีแก้คือย้ายค่าไปไว้ใน ~/.claude/settings.json, managed settings หรือ environment ของ job
กันสกิลปลอมชื่อ Anthropic
อีกกลุ่มที่แก้ในเวอร์ชันนี้คือการปลอมตัวเป็นสกิลทางการ
- สกิล คำสั่ง และ workflow ที่อยู่ใน namespace
anthropic-skillsหรือclaude-aiจากโฟลเดอร์ในเครื่องหรือในรีโป จะไม่โหลดอีกต่อไป - กฎ allow แบบ
Skill(anthropic-skills:*)และSkill(claude-ai:*)ตอนนี้ครอบคลุมเฉพาะสกิลที่ซิงก์มาจาก claude.ai เท่านั้น ไม่ครอบคลุมปลั๊กอินที่แค่ตั้งชื่อซ้ำ - MCP server ที่ตั้งชื่อเป็น
anthropic-skillsหรือclaude-aiจะไม่แสดง skill หรือ prompt (แต่ tool ยังใช้ได้) - แก้บั๊กที่สกิลจากรีโป ผู้ใช้ หรือ
--add-dirอนุมัติเครื่องมือให้ตัวเองผ่านallowed-toolsได้ แม้องค์กรจะตั้งallowManagedPermissionRulesOnlyไว้แล้ว
ช่องเหล่านี้มีรูปแบบเดียวกัน คือไฟล์ที่ผู้ใช้ไม่ได้เขียนเองใช้ชื่อหรือการตั้งค่าที่ดูน่าเชื่อถือ เพื่อได้สิทธิ์ที่ไม่ควรได้
นอกจากนี้ยังมี maxProseWidth สำหรับจำกัดความกว้างของข้อความบนจอกว้าง, auto mode ที่เปลี่ยนไปใช้ classifier ฝั่งเซิร์ฟเวอร์เป็นค่าเริ่มต้นเมื่อปิด telemetry (ปิดได้ด้วย CLAUDE_CODE_AUTO_MODE_SERVER=0) และการแก้ error “Invalid data in redacted_thinking block” ที่ทำให้บางเซสชันใช้งานไม่ได้ทุกเทิร์น
มุมมอง AI Curator
เมื่อวานเราเขียนเรื่อง 2.1.281 ที่แก้ AGENTS.md ไม่โหลดเมื่อปิด telemetry มาวันนี้เป็นเรื่อง telemetry อีกครั้ง แต่คนละด้าน ภาพรวมของสองเวอร์ชันนี้คือ ไฟล์ config ในรีโปกลายเป็นพื้นที่โจมตีหลักของ coding agent รีโปมีทั้ง settings, สกิล, hooks และ MCP config ซึ่งมีผลกับพฤติกรรมของ agent ได้มากกว่าไฟล์ .vscode สมัยก่อนมาก
สำหรับทีมในไทยที่เริ่มใช้ claude -p ใน CI เช่นให้รีวิว PR อัตโนมัติ บทเรียนคือ อย่ารัน agent แบบ headless บนโค้ดจาก fork ของคนนอกด้วยสิทธิ์ของ repo หลัก เวอร์ชันนี้ปิดช่อง telemetry แล้ว แต่รูปแบบเดิมยังเกิดขึ้นได้กับการตั้งค่าตัวอื่นที่ยังไม่มีใครพบ ควรอัปเกรดเป็น 2.1.282 และตรวจว่า collector ยังรับข้อมูลอยู่ไหม ถ้าตั้งค่าไว้ในรีโป
อีกเรื่องที่ควรตั้งคำถามคือการสื่อสาร การเปลี่ยนแปลงที่ปิดช่องส่งข้อมูลออกนอกเครื่องแบบนี้ควรมี security advisory ไม่ใช่เป็นบรรทัดหนึ่งในรายการที่ปนกับการแก้เคอร์เซอร์ของ vim mode ผู้ดูแลความปลอดภัยขององค์กรที่ติดตาม GHSA อย่างเดียวจะไม่รู้เลยว่าเคยมีช่องนี้
แหล่งข่าว
อ่านเพิ่มในหมวด เครื่องมือนักพัฒนา
Betelgeuse รัน Qwen3.8 Flash Next ขนาด 68GB บน RTX 3060 กับแรม 16GB ส่วน Basalt วัดให้เห็นว่าเอนจินที่เร่งด้วยแฟล็กลัดทำให้โมเดลลืมของ
Betelgeuse ฟอร์ก llama.cpp ที่เปิดเมื่อ 31 ต.ค. ดึง expert จาก NVMe เข้า VRAM ตามต้องการ อ้าง 22 tok/s แบบไม่ทิ้ง expert แต่ README เตือนเองว่ายังทดลองและตัวเลขมาจากคนละรอบ วันเดียวกันผู้พัฒนา Basalt เผยผลวัดว่าแฟล็กเร่งความเร็วทำคุณภาพ Q8 ตกไปใกล้ Q2
กฎห้ามโคลนเกมของ Claude Code เริ่มกระทบงานจริง บริษัทรับทำเกมกระดานร้องงานลูกค้าหยุด แต่รายงานหลายชิ้นปนกับตัวกรองไซเบอร์คนละเรื่อง
ต่อจากที่เราพบกฎนี้ในไบนารี Claude Code ผู้ใช้เริ่มรายงานว่างานเชิงพาณิชย์ถูกปฏิเสธ และ Tom's Hardware กับ Mashable หยิบไปรายงาน แต่เมื่อไล่ issue ที่อ้างถึง พบว่าหลายรายการเกิดก่อนกฎจะมา จึงน่าจะเป็นตัวกรองด้านไซเบอร์ ส่วน Anthropic ยังไม่ชี้แจง
Claude Code ส่ง transcript ของ background agent ให้โมเดลทุก ~30 วินาทีเพื่อเขียนสถานะ 3–5 คำ ผู้วัดรายงานกินราว 16% และยังปิดแบบทางการไม่ได้
รายงานอิสระพบว่าฟีเจอร์ agent_summary ของ Claude Code ส่ง transcript เต็มของ background agent ไปถามสถานะทุก ~30 วินาที คิดเป็น 16.4% ของค่าใช้จ่ายในระบบของผู้วัด Issue เปิดมาตั้งแต่ ส.ค. ยังไม่มีสวิตช์ปิดที่รองรับ เราตรวจพบโค้ดนี้ใน 2.1.314 และพบกฎใหม่เรื่องเกมที่ไม่อยู่ใน changelog