
Clinejection: ชื่อเรื่องของ issue ไปถึง npm token ของ Cline ได้อย่างไร
- Orcaใหม่OrcaCyber: GLM 5.3 Abliterated / Uncensored2026-11-04$3.00 / $5.00 ต่อ 1 ล้านโทเค็น · 74 tok/s
- Orcaใหม่OrcaCyber: Hy4 Abliterated / Uncensored2026-11-04$0.80 / $1.60 ต่อ 1 ล้านโทเค็น · 113 tok/s
- Orcaใหม่OrcaCyber: Kimi K3.1 Pro Abliterated / Uncensored2026-11-04$4.00 / $20.00 ต่อ 1 ล้านโทเค็น · 43 tok/s
- orcaใหม่Orca: OrcaC2 1.02026-10-303 tok/s
- Orcaใหม่OrcaCyber: MiniMax M3.1 Flash Abliterated / Uncensored2026-10-29$0.80 / $1.60 ต่อ 1 ล้านโทเค็น · 100 tok/s
- Orcaใหม่OrcaCyber: GLM 5.3 Flash Abliterated / Uncensored2026-10-27$0.80 / $1.60 ต่อ 1 ล้านโทเค็น · 101 tok/s
- Orcaใหม่OrcaCyber: Qwen3.8 Flash Next Abliterated / Uncensored2026-10-26$0.80 / $1.60 ต่อ 1 ล้านโทเค็น · 100 tok/s
- Orcaใหม่OrcaCyber: MiMo V2.6 Flash Abliterated / Uncensored2026-10-26$0.80 / $1.60 ต่อ 1 ล้านโทเค็น · 49 tok/s
- Moonshotใหม่MoonshotAI: Kimi K3.1 Pro2026-10-2447ความฉลาด
- Orcaใหม่OrcaCyber: DeepSeek V4.1 Flash Abliterated / Uncensored2026-10-23$0.80 / $1.60 ต่อ 1 ล้านโทเค็น · 76 tok/s
- minimaxMiniMax: M3.1 Flash2026-10-1929ความฉลาด
- OrcaOrca: OrcaCyber Ultra 1.02026-10-17$5.00 / $10.00 ต่อ 1 ล้านโทเค็น · 111 tok/s
- deepseekDeepSeek: DeepSeek V4.1 Flash 10172026-10-1733ความฉลาด
- DeepSeekDeepSeek: DeepSeek V4.1 Flash2026-10-1740ความฉลาด
- OrcaOrca: OrcaCyber Zero 1.52026-10-10$3.00 / $7.50 ต่อ 1 ล้านโทเค็น · 57 tok/s
- openaiOpenAI: GPT-6.1 Sol2026-09-2955ความฉลาด
- anthropicAnthropic: Claude Sonnet 5.52026-09-2855ความฉลาด
- typesafeTypeSafe: Jev 1.132026-09-24$0.04 / $0.00 ต่อ 1 ล้านโทเค็น · 163 tok/s
- OpenAIOpenAI: GPT-6 Luna2026-09-2228ความฉลาด
- OpenAIOpenAI: GPT-6 Sol2026-09-2244ความฉลาด
เมื่อวันที่ 9 กุมภาพันธ์ 2026 นักวิจัยด้านความปลอดภัย Adnan Khan ได้เผยแพร่บันทึกเกี่ยวกับช่องโหว่ที่เขาได้รายงานเป็นการส่วนตัวต่อ Cline เมื่อวันที่ 1 มกราคม: ผู้ช่วยเขียนโค้ด AI แบบโอเพนซอร์สได้เชื่อมต่อตัวคัดแยก issue อัตโนมัติ ซึ่งสร้างขึ้นบน GitHub Action ชื่อ claude-code-action ของ Anthropic เข้ากับพรอมต์ที่วางชื่อ issue ของ GitHub ที่เข้ามาใด ๆ ลงในคำสั่งของโมเดลโดยตรง บัญชี GitHub ใดก็ตามสามารถกระตุ้นมันได้ด้วยการเปิด issue และในการจำลองของ Khan ชื่อที่เขียนในรูปแบบคำสั่งทำให้เอเจนต์รันคำสั่งเชลล์ภายในเวิร์กโฟลว์ เขาจากนั้นติดตามเส้นทางจากจุดยึดนั้น ผ่านการเป็นพิษแคชของ GitHub Actions ไปจนถึงข้อมูลรับรองการเผยแพร่สำหรับ VS Code Marketplace, OpenVSX และ npm แปดวันหลังจาก Cline แก้ไขเวิร์กโฟลว์ โทเค็นเผยแพร่ npm ที่ Cline เชื่อว่าได้เปลี่ยนใหม่แล้วถูกใช้เพื่อเผยแพร่ cline 2.3.0 ซึ่งติดตั้ง OpenClaw บนทุกเครื่องที่ติดตั้งแพ็กเกจนี้ รายการฉบับเต็มพร้อมระดับความรุนแรงและระดับความมั่นใจอยู่ที่ Orca AI Incident Archive เคียงข้างบันทึกห่วงโซ่อุปทานข้างเคียงจากช่วงเวลาเดียวกัน
สองวัน ไม่ใช่วันเดียว
ไฟล์เก็บถาวรระบุวันที่ของบันทึกนี้เป็นวันที่ 9 กุมภาพันธ์ 2026 ด้วยความแม่นยำระดับวัน และนั่นคือวันที่ Khan เผยแพร่บทความของเขาที่ adnanthekhan.com ไม่ใช่วันที่แพ็กเกจอันตรายปรากฏขึ้น ตัวช่องโหว่เองถูกนำเข้ามาเมื่อวันที่ 21 ธันวาคม 2025 ในคอมมิตที่เพิ่มเวิร์กโฟลว์การคัดแยกเข้าสู่รีโพซิทอรี cline/cline และยังคงใช้งานอยู่จนกระทั่ง Cline ลบเวิร์กโฟลว์นั้นในวันที่ 9 กุมภาพันธ์ การเผยแพร่บน npm โดยไม่ได้รับอนุญาตเกิดขึ้นในวันที่ 17 กุมภาพันธ์ แปดวันหลังการแก้ไข และสี่สิบเจ็ดวันหลังรายงานส่วนตัวฉบับแรกของ Khan
การแยกวันที่สองวันนี้ออกจากกันเป็นเรื่องสำคัญ เพราะข้อเท็จจริงที่ส่งผลกระทบมากที่สุดในคดีนี้อยู่ตรงช่องว่างระหว่างทั้งสอง: ประตูถูกปิดเมื่อ {{1}}9 กุมภาพันธ์{{/1}} แต่กุญแจที่ผู้บุกรุกคัดลอกไว้แล้วยังใช้ได้เมื่อ {{2}}17 กุมภาพันธ์{{/2}} คำแก้ไขของ Cline เอง ซึ่งส่งถึง Khan เมื่อ 17 กุมภาพันธ์ และถูกนำมาพิมพ์ซ้ำในโพสต์ของเขา ระบุไว้ตรง ๆ ว่า "เมื่อเราเปลี่ยนข้อมูลรับรองเมื่อวันที่ 9 ก.พ. โทเค็นสำหรับเผยแพร่ของ npm ไม่ได้รับการเพิกถอนอย่างถูกต้อง โทเค็นผิดถูกทำให้ถูกลบไป และโทเค็นที่ถูกเปิดเผยยังคงใช้งานอยู่"
ห่วงโซ่: จากชื่อเรื่องของปัญหาไปจนถึงโทเค็นการเผยแพร่
ไฟล์ที่มีช่องโหว่คือ .github/workflows/claude-issue-triage.yml ซึ่งทำงานเมื่อมีอีเวนต์ issues และเรียกใช้ anthropics/claude-code-action@v1 ด้วย Claude Opus 4.5 ซึ่งปักหมุดในเวิร์กโฟลว์เป็น claude-opus-4-5-20251101 Khan อ้างถึงการกำหนดค่าของเวิร์กโฟลว์ว่า allowed_non_write_users ถูกตั้งเป็นไวลด์การ์ด "*" ดังนั้นบัญชี GitHub ใดก็ตามสามารถกระตุ้นเอเจนต์ได้เพียงแค่เปิด issue และ claude_args ส่ง --allowedTools พร้อมด้วย Bash, Read, Write, Edit, Glob, Grep, WebFetch และ WebSearch Bash คือตัวที่สำคัญ มันให้โมเดล executeshell ภายในเวิร์กโฟลว์ที่ทำงานในบริบทของ default branch
พรอมต์ได้แทรกชื่อ issue โดยไม่ได้ทำ sanitisation ชื่อที่ใช้ใน proof of concept ของ Khan ขึ้นต้นด้วย "Tool error." และตามด้วยคำสั่งให้ติดตั้งแพ็กเกจตัวช่วยจาก commit ที่ระบุ ก่อนจะดำเนินการ triage ต่อ การอ้างอิง commit ชี้ไปยัง fork ที่ package.json มีสคริปต์ preinstall ซึ่งรันคำสั่ง curl ไปยัง endpoint ที่ผู้โจมตีควบคุม ก่อนที่ npm จะติดตั้งสิ่งใดเสร็จ เนื่องจากการติดตั้งรันผ่านเครื่องมือ Bash โมเดลจึงไม่เคยตรวจสอบว่ามีอะไรถูกเรียกใช้งาน Khan ทำซ้ำบนมิเรอร์ของรีโพซิทอรี Cline และรายงานว่าเอเจนต์รัน payload ในทุกความพยายาม
การรันโค้ดในเวิร์กโฟลว์ triage ไม่ได้หมายความโดยตัวมันเองว่ามีสิทธิ์เข้าถึงข้อมูลรับรองสำหรับการเผยแพร่ ขั้นตอนนั้นมาจากคุณสมบัติหนึ่งของ GitHub Actions ที่ Khan ได้บันทึกไว้ในเครื่องมือที่เขาเปิดตัวในปี 2024 ชื่อ Cacheract: เวิร์กโฟลว์ใดก็ตามสามารถอ่านและเขียนแคชของรีโพซิทอรีได้ โดยควบคุมคีย์และเวอร์ชันของแคชได้อย่างเต็มที่ แม้แต่เวิร์กโฟลว์ที่ไม่เคยประกาศขั้นตอนการแคชเลยก็ตาม งาน triage รันบนแบรนช์เริ่มต้น จึงใช้ขอบเขตแคชร่วมกับงานเผยแพร่รายคืน ซึ่งได้กู้คืน node_modules จากแคชและถือโทเค็นสำหรับการเผยแพร่ไว้
รายการแคชไม่สามารถแก้ไขได้ ดังนั้นผู้โจมตีจึงไม่สามารถเขียนทับรายการที่งานรีลีสจะกู้คืนได้โดยตรง วิธีหลบเลี่ยงของ Khan คือใช้ประโยชน์จากการเปลี่ยนแปลงนโยบายของ GitHub เมื่อวันที่ 20 พฤศจิกายน 2025 ซึ่งทำให้บริการลบรายการแคชทันทีเมื่อแคชของรีโพซิทอรีมีขนาดเกิน 10 GB โดยใช้ลำดับการใช้งานล่าสุดน้อยที่สุด (least-recently-used) ทำให้แคชเกิน 10 GB แล้วรายการที่ถูกต้องจะหมดอายุไปตามลำดับ จากนั้นยึดคีย์ที่ว่างลงด้วยเนื้อหาที่ถูกวางยา และงานถัดไปที่กู้คืนรายการเหล่านั้นจะรันโค้ดของผู้โจมตี Cacheract ทำขั้นตอนทั้งหมดนี้โดยอัตโนมัติภายใน workflow run เดียว และมันคงอยู่ถาวรโดยการเขียนทับ action.yml ของ actions/checkout เพื่อให้ post step ของแอ็กชันรันเพย์โหลดเมื่อสิ้นสุดทุกงาน
ห่วงโซ่สุดท้ายคือ nightly job ซึ่งทำงานประมาณ 02:00 UTC กู้คืน node_modules ที่ถูกวางยาพิษ แล้วระเบิด สิ่งที่หลุดออกมาคือ VSCE_PAT, OVSX_PAT และ NPM_RELEASE_TOKEN ซึ่งเป็นข้อมูลรับรองสำหรับ VS Code Marketplace, OpenVSX และ npm ตามลำดับ การที่ทุกห่วงโซ่ทำงานกับ repository ของ Cline เองตามลำดับนั้นหรือไม่ เป็นคำถามแยกต่างหาก ซึ่งจะกล่าวถึงด้านล่าง

ทำไมข้อมูลรับรองของ nightly จึงเป็นข้อมูลรับรองของ production
ข้อโต้แย้งที่ชัดเจนคือ nightly และ production release ควรใช้ความลับคนละชุด คำตอบของ Khan คือการแยกนั้นเป็นเพียงในนามเท่านั้น OpenVSX และ VS Code Marketplace ผูกโทเค็นการเผยแพร่กับตัวตนของผู้เผยแพร่ ไม่ใช่กับส่วนขยายแต่ละตัว และส่วนขยาย Cline ทั้งเวอร์ชัน stable และ nightly ถูกเผยแพร่ภายใต้ตัวตนเดียวกัน ซึ่ง Khan ระบุบน OpenVSX ว่า saoudrizwan บน npm โมเดลโทเค็นแบบละเอียดผูกกับแพ็กเกจ และ Cline เผยแพร่บิลด์ CLI เวอร์ชัน stable และ nightly ไปยังแพ็กเกจ cline เดียวกัน โทเค็นที่ออกให้งาน nightly จึงสามารถเผยแพร่ production artefact ได้ ซึ่งเป็นสิ่งที่เกิดขึ้นจริงในอีกแปดวันต่อมา
การวางกรอบผลกระทบของ Khan เองนั้นขึ้นอยู่กับขนาด: เขาอ้างถึงประกาศของ Cline ที่ว่ามีการติดตั้งเกิน 5 ล้านครั้งแล้ว และตั้งข้อสังเกตว่าการอัปเดตส่วนขยายที่ถูกผลักผ่านข้อมูลรับรองที่ถูกขโมยจะทำงานในบริบทของผู้พัฒนาทุกคนที่เอดิเตอร์อัปเดตโดยอัตโนมัติ ด้วยสิทธิ์ของนักพัฒนาคนนั้นและคีย์ โทเค็น และซอร์สโค้ดใด ๆ ที่อยู่ในเครื่อง
สิ่งที่เผยแพร่ออกมาจริง และสิ่งที่มันทำ
อาร์ติแฟกต์ที่เผยแพร่คือ cline 2.3.0 และมีขนาดเล็ก เวลาประทับของ npm registry เองระบุว่า 2.3.0 เผยแพร่เมื่อ 11:26:51 UTC ของวันที่ 17 กุมภาพันธ์ 2026 และ 2.4.0 ที่สะอาดเผยแพร่เมื่อ 19:23:08 UTC ของวันเดียวกัน ซึ่งคำแนะนำของ Cline ระบุว่ามีระยะเวลาการเปิดเผยประมาณแปดชั่วโมง จนกระทั่ง 2.3.0 ถูกเลิกใช้เมื่อเวลา 11:30 น. ตามเวลแปซิฟิก package.json ของแพ็กเกจมีหนึ่งบรรทัดที่ถูกเพิ่มเข้ามา ซึ่งเป็นสคริปต์ postinstall ที่มีข้อความว่า npm install -g openclaw@latest คำแนะนำของ Cline หมายเลข GHSA-9ppg-jx86-fqw7 ระบุว่าไม่มีไฟล์แพ็กเกจอื่นถูกแก้ไข และ dist/cli.mjs เหมือนกันทุกไบต์กับการ build 2.2.3 ที่ถูกต้องตามจริง
OpenClaw เป็นเฟรมเวิร์กเอเจนต์ AI โอเพนซอร์สจริง ไม่ใช่มัลแวร์ และคำเตือนของ Cline ระบุไว้อย่างชัดเจนว่าเป็นโปรเจกต์ที่ถูกต้องตามกฎหมาย แต่การติดตั้งไม่ได้ได้รับอนุญาตหรือไม่ได้ตั้งใจให้เกิดขึ้น Endor Labs ซึ่งวิเคราะห์ไฟล์ tarball ประเมินผลกระทบโดยรวมอยู่ในระดับต่ำ โดยให้เหตุผลว่าการติดตั้งไม่ได้เริ่ม Gateway daemon ของ OpenClaw บทวิเคราะห์ของ StepSecurity มองอีกด้านหนึ่ง: การติดตั้งแบบ global ทำให้เฟรมเวิร์กยังคงอยู่บนดิสก์ พร้อมด้วยข้อมูลรับรองและสิทธิ์การเข้าถึงไฟล์เท่าที่ผู้ใช้ที่ติดตั้งมี และการออกแบบของ OpenClaw ซึ่งเป็นเกตเวย์โลคัลแบบถาวรที่มี operator API ทำให้มันเป็นสิ่งที่คุ้มค่าสูงหากพบอยู่ที่นั่น การประเมินทั้งสองไม่ได้ขัดแย้งกัน ฝ่ายหนึ่งอธิบายสิ่งที่ทำงานในช่วงเวลานั้น อีกฝ่ายอธิบายสิ่งที่ถูกทิ้งไว้เบื้องหลังหลังจากนั้น
จำนวนดาวน์โหลดเป็นตัวเลขเดียวที่ต้องจัดการอย่างระมัดระวัง StepSecurity รายงานว่าเวอร์ชันที่ถูกบุกรุกนั้นถูกดาวน์โหลดประมาณ 4,000 ครั้งก่อนที่จะถูกเลิกใช้ และ The Register ได้รายงานตัวเลขนั้นซ้ำ Endor Labs ระบุว่าจำนวนดาวน์โหลดรายเดือนของ cline สำหรับช่วงวันที่ 19 มกราคมถึง 17 กุมภาพันธ์อยู่ที่ 418,545 ซึ่งเป็นตัวเลขที่สะท้อนปริมาณการใช้งานปกติของแพ็กเกจ ไม่ใช่บิลด์ที่เป็นอันตราย ไม่มีตัวเลขใดนับเป็นจำนวนเครื่อง: จำนวนดาวน์โหลดไม่ใช่จำนวนนักพัฒนาที่ได้รับผลกระทบ และยังไม่มีฝ่ายใดเผยแพร่ตัวเลขฐานผู้ติดตั้งสำหรับ 2.3.0 ทีม Threat Intelligence ของ Microsoft กล่าวบน X ว่าได้พบ "การเพิ่มขึ้นเล็กน้อยแต่สังเกตได้" ของการติดตั้ง OpenClaw เมื่อวันที่ 17 กุมภาพันธ์ ซึ่งเกิดจากสคริปต์ติดตั้งของ Cline ตามที่ The Hacker News รายงาน
บันทึกคำแนะนำของ GitHub สำหรับ GHSA-9ppg-jx86-fqw7 ไม่มี CVE และไม่มี CWE และความรุนแรงอยู่ในระดับต่ำ การจัดระดับนั้นเกี่ยวกับเพย์โหลดที่ไม่เป็นอันตราย ไม่ใช่เกี่ยวกับการขโมยข้อมูลรับรอง และดูขัดกันอย่างแปลก ๆ กับระดับวิกฤตของไฟล์เก็บถาวรสำหรับเหตุการณ์นั้นเอง บันทึกคำแนะนำระบุว่า 2.3.0 เป็นเวอร์ชันที่ได้รับผลกระทบ และ 2.4.0 เป็นเวอร์ชันที่แก้ไข
การเปิดเผยที่ Cline ไม่ได้ตอบ
ไทม์ไลน์ก่อนการเผยแพร่ของ Khan เป็นส่วนของบันทึกที่เกี่ยวกับตัวโมเดลน้อยที่สุดและเกี่ยวกับกระบวนการมากที่สุด เขาส่ง GHSA ผ่านระบบรายงานช่องโหว่แบบส่วนตัวของ GitHub เมื่อ {{1}}1 มกราคม 2026{{/1}} และส่งอีเมลถึงผู้ติดต่อด้านความปลอดภัยที่ระบุไว้บนหน้าความน่าเชื่อถือของ Cline ในวันเดียวกัน เขาส่งข้อความติดตามผลถึงนักพัฒนาของ Cline เมื่อ {{2}}8 มกราคม{{/2}} เขาลองส่งข้อความโดยตรงถึง CEO ของ Cline ทาง X เมื่อ {{3}}18 มกราคม{{/3}} เขาเขียนอีกครั้งเมื่อ {{4}}7 กุมภาพันธ์{{/4}} และได้รับเพียงหมายเลขตั๋วอัตโนมัติเท่านั้น เขาเผยแพร่เมื่อ {{5}}9 กุมภาพันธ์{{/5}}
Cline ได้ merge การแก้ไขนี้ คือ pull request 9211 ประมาณสามสิบถึงหกสิบนาทีต่อมา PR นี้ลบไฟล์ workflow สามไฟล์ ได้แก่ claude-issue-triage.yml, claude-pr-review.yml และ cline-pr-review.yml และนำการแคชออกจาก publish.yml, publish-nightly.yml, npm-nightly.yaml และ npm-main.yaml รวมทั้งหมดเจ็ดไฟล์ โดยขั้นตอนการติดตั้งถูกทำให้ไม่มีเงื่อนไขแล้ว เนื่องจากตอนนี้ไม่มี cache hit ให้พึ่งพาอีกต่อไป
การตอบกลับสาธารณะของ Cline เมื่อวันที่ 10 กุมภาพันธ์ ซึ่งถูกอ้างถึงในโพสต์ของ Khan ยอมรับข้อค้นพบและระบุมาตรการบรรเทาผลกระทบทันที ได้แก่ การนำเวิร์กโฟลว์การรีวิวโดยบอตสำหรับ issue และ PR ออก การนำ actions/cache ออกจากเวิร์กโฟลว์การเผยแพร่ที่จัดการข้อมูลรับรองสำหรับการรีลีส และการหมุนเวียนข้อมูลรับรองที่เกี่ยวข้อง รวมถึงโทเค็นของบอต โทเค็นของผู้ให้บริการ และโทเค็นการเผยแพร่ นอกจากนี้ยังยอมรับเกี่ยวกับการดำเนินการว่า “เราขอรับทราบว่าเวลาตอบสนองของเราต่อรายงานเริ่มต้นของคุณเป็นสิ่งที่ยอมรับไม่ได้ รายงานที่ส่งเมื่อวันที่ 1 มกราคม ไม่ควรต้องอาศัยการเปิดเผยต่อสาธารณะในวันที่ 9 กุมภาพันธ์เพื่อให้ได้รับการจัดการ”
เมื่อวันที่ 11 กุมภาพันธ์ Cline กล่าวว่าได้หมุนเวียน VSCE_PAT, OVSX_PAT และ NPM_RELEASE_TOKEN ครบทั้งหมดแล้ว และการตรวจสอบทุกรีลีสบนช่องทางจัดจำหน่ายทั้งสามช่องทางระหว่างวันที่ 21 ธันวาคม 2025 ถึง 9 กุมภาพันธ์ 2026 พบว่าทุกเวอร์ชันบน Marketplace และ OpenVSX เชื่อมโยงกับรีลีส GitHub ที่ติดแท็ก และ npm ทั้ง 41 เวอร์ชันสอดคล้องกับซอร์สโค้ด โดยสรุปว่าไม่มีการเผยแพร่รีลีสที่ไม่ได้รับอนุญาต “ในช่วงเวลาที่อ้างว่ามีการเปิดเผย” หกวันต่อมา Cline ได้แก้ไขข้อมูลที่บันทึกไว้ในข้อความที่ยกมาข้างต้น: โทเค็น npm ไม่ได้ถูกเพิกถอน และ 2.3.0 ถูกเผยแพร่โดยใช้โทเค็นนั้น

ยืนยันแล้ว ระบุที่มาแล้ว ยังไม่คลี่คลาย
• ยืนยันแล้ว การกำหนดค่าเวิร์กโฟลว์เป็นสาธารณะและถูกเผยแพร่ก่อนการแก้ไข Khan ได้จำลองพรอมต์อินเจกชันบนมิเรอร์ของที่เก็บโค้ด Cline ได้รวมการแก้ไขและออกคำแนะนำที่ยืนยันการเผยแพร่ 2.3.0, การเพิ่มบรรทัด postinstall, ไบนารี CLI ที่ไม่เปลี่ยนแปลง, ช่วงเวลาแปดชั่วโมง และความล้มเหลวของโทเค็น การประทับเวลาของ npm registry สำหรับ 2.3.0 และ 2.4.0 ตรงกับเวลาของคำแนะนำ คลังข้อมูลจัดระดับบันทึกนี้เป็นวิกฤต ที่ระดับความเชื่อมั่น A โดยมีการบันทึกความเสียหายจริงและไม่มีแฟล็กข้อพิพาท
• มีการระบุที่มา แต่ยังไม่ได้รับการยืนยัน ว่าใครเป็นผู้เผยแพร่ 2.3.0 ยังคงเป็นประเด็นการระบุที่มาที่ยังไม่มีข้อยุติ บทวิเคราะห์ทางนิติเวชดิจิทัลที่เผยแพร่โดย Michael Bargury และเครื่องมือสืบสวนอัตโนมัติชื่อ Raptor เมื่อวันที่ 19 กุมภาพันธ์ ระบุชื่อบัญชี GitHub ชื่อ glthub-actions และรายงานด้วยความมั่นใจสูงว่าบัญชีนี้ได้ fork cline/cline เปิด issue 8904 เมื่อวันที่ 28 มกราคม 2026 เวลา 03:51 UTC ด้วยชื่อเรื่องที่ถูกแทรกเข้าไป และใช้คอมมิตจาก fork เพื่อรัน payload จาก gist Khan ยืนยันว่าบัญชี gcbrun และ Dev11940518 เป็นของเขาเอง และ glthub-actions ไม่ใช่ของเขา บัญชีดังกล่าวถูกลบหรือระงับไปแล้วเมื่อบทวิเคราะห์ถูกเผยแพร่ และ Cline ยังไม่ได้ระบุชื่อผู้ใด ควรถือว่าตัวตนนี้เป็นข้อค้นพบจากบุคคลที่สาม
• เป็นที่โต้แย้งในเชิงลักษณะ ไม่ใช่ในเชิงข้อเท็จจริง Bargury ประเมินว่าเหตุการณ์นี้สอดคล้องกับการสาธิตงานวิจัยด้านความปลอดภัยมากกว่าแคมเปญที่เป็นอันตราย โดยอ้างถึงเพย์โหลดที่ไม่เป็นอันตรายและประวัติของผู้ก่อเหตุที่เคยกระทำต่อรีโพซิทอรีระบบอัตโนมัติของ New Relic Cline เรียกสิ่งนี้ว่าการเผยแพร่โดยไม่ได้รับอนุญาต และ Khan เขียนว่าผู้ที่เผยแพร่ 2.3.0 นั้น “สันนิษฐานว่า” เป็นรายเดียวกับผู้ที่วางยาพิษแคช ยังไม่มีใครแสดงให้เห็นถึงเจตนาที่จะก่อความเสียหาย และยังไม่มีใครแสดงให้เห็นว่าไม่มีเจตนาดังกล่าว
• ยังไม่คลี่คลาย บันทึกก่อนตีพิมพ์ของ Khan เองระมัดระวังในประเด็นหนึ่งที่การรายงานภายหลังบางครั้งทำให้คลาดเคลื่อน: ระหว่างวันที่ 31 มกราคม ถึง 3 กุมภาพันธ์ 2026 การรัน nightly หลายครั้งล้มเหลวที่ขั้นตอน Post Checkout ซึ่งไม่สร้างเอาต์พุตใด ๆ และเป็นตัวบ่งชี้การบุกรุกของ Cacheract และแม้เวิร์กโฟลว์ triage จะเป็นเส้นทางที่ชัดเจนที่สุด แต่ยังไม่ได้รับการพิสูจน์ว่าเป็นจุดเข้าสำหรับกิจกรรมนั้น เช่นเดียวกัน ไม่มีฝ่ายใดเผยแพร่หลักฐานว่าโทเค็น Marketplace หรือ OpenVSX ถูกใช้งาน สิ่งเดียวที่ใคร ๆ ได้ผลิตออกมาคือ npm build

มีอะไรเปลี่ยนแปลงไปหลังจากนั้น
การแก้ไขเกิดขึ้นหลายชั้นพร้อมกัน และควรระบุแต่ละชั้นให้ชัด เพราะแต่ละชั้นตอบโจทย์ความล้มเหลวคนละส่วน เวิร์กโฟลว์ที่บุคคลภายนอกสามารถเข้าถึงได้ถูกลบออก แทนที่จะจำกัดขอบเขตให้แคบลง แคชถูกลบออกจากเวิร์กโฟลว์การเผยแพร่สี่รายการที่เก็บความลับสำหรับการเผยแพร่ แทนที่จะลบออกจากทั้งรีโพซิทอรี ซึ่งเป็นการเปลี่ยนแปลงที่ตัดจุดเปลี่ยนของการโจมตี มีการหมุนเวียนข้อมูลรับรอง และหลังการแก้ไขเมื่อวันที่ 17 กุมภาพันธ์ โทเค็น npm ที่ถูกต้องก็ถูกเพิกถอน คำแนะนำของ Cline ระบุว่าการเผยแพร่ผ่าน npm ตอนนี้ใช้ OIDC provenance ผ่าน GitHub Actions และการวิเคราะห์เมทาดาทาของ StepSecurity แสดงให้เห็นว่าเหตุใดเรื่องนี้จึงสำคัญ: รีลีสที่ถูกต้องตามกฎหมายได้แนบ provenance attestations อยู่แล้ว และ 2.3.0 เป็นกรณีผิดแผกที่ถูกเผยแพร่โดยบัญชีของมนุษย์ ช่องว่างคือเส้นทางโทเค็นอายุยาวยังคงเปิดอยู่ควบคู่กับ trusted publishing ซึ่งเป็นสิ่งที่ Endor Labs ระบุว่าผู้ดูแลควรปิด Cline เผยแพร่ GHSA-9ppg-jx86-fqw7 ประกาศเลิกใช้ 2.3.0 พร้อมข้อความว่าห้ามติดตั้ง และชี้แนะให้ผู้ใช้ไปใช้ 2.4.0 หรือใหม่กว่า
ข้อเสนอแนะเชิงโครงสร้างของ Khan ไปไกลกว่าสิ่งที่นำไปปฏิบัติจริง และควรบันทึกไว้ว่าเป็นของเขา ไม่ใช่ของ Cline: ให้ตัด Bash, Write และ Edit ออกจากเวิร์กโฟลว์การคัดแยกใด ๆ และเหลือไว้เพียงการอ่านไฟล์และการเรียก GitHub CLI เฉพาะที่จำเป็น; อย่าคืนค่าแคชในงานที่ถือความลับด้านการเผยแพร่สู่โปรดักชัน; และให้ nightly release มีเนมสเปซของรีจิสทรีเป็นของตัวเอง พร้อมทั้งมีตัวตนสำหรับการเผยแพร่ที่ไม่ใช่โปรดักชันโดยเฉพาะ เพื่อให้โทเค็น nightly ที่ถูกขโมยไม่สามารถเผยแพร่ stable release ได้เลย
ช่องว่างแปดวันระหว่างการแก้ไขกับการเผยแพร่ที่เป็นอันตรายคือรายละเอียดที่ทำให้บันทึกนี้ควรค่าแก่การเก็บไว้ ทุกขั้นตอนในห่วงโซ่นั้นเป็นเทคนิคที่รู้จักกันอยู่แล้ว Khan ได้เผยแพร่เครื่องมือแคชพอยซันนิง และงานวิจัย PromptPwnd ของ Aikido Security เมื่อเดือนธันวาคม 2025 ได้บันทึกรูปแบบการกำหนดค่าผิดพลาดในขั้นตอนคัดแยกแบบเดียวกันไว้ สิ่งที่ทำให้สิ่งเหล่านี้ประกอบกันเป็นเหตุการณ์ในห่วงโซ่อุปทาน คือเวิร์กโฟลว์ที่ปล่อยให้ข้อความของคนแปลกหน้าไปถึงเชลล์ แคชที่ใช้ร่วมกับงานซึ่งถือคีย์สำหรับการรีลีส และการหมุนเวียนโทเคนที่พลาดข้อมูลรับรองไปหนึ่งรายการ การแก้ไขทั้งสามจุดนั้น หากแยกกันแต่ละจุดก็เพียงพอจะตัดห่วงโซ่ได้ แต่จุดที่สามมาถึงช้าไปแปดวัน
