ภาพประกอบนามธรรมที่สร้างขึ้นบนพื้นสีกรมท่าเข้ม: ถาดหน่วยความจำสีฟ้าไซแอนบางจำนวนห้าถาดที่มองเห็นในลักษณะภาพตัดขวาง แต่ละถาดมีแถวของบล็อกสีเทาขนาดเล็ก โดยมีลูกบาศก์สีอำพันเล็กหนึ่งลูกสอดอยู่ระหว่างถาดที่สามกับถาดที่สี่; จากลูกบาศก์นั้น เส้นใยสีอำพันบางๆ ของอนุภาคโค้งพาดผ่านความว่างเปล่าที่มืดมิดไปทางขวาสู่โหนดสีแดงส้มเล็กๆ สามโหนดที่จัดเรียงเป็นรูปสามเหลี่ยม ด้านหลังถาดมีป้ายสีเทาหมองๆ แขวนจากพวงกุญแจด้วยห่วงบางๆ ไม่มีข้อความ ผู้คน หรือโลโก้องค์กรปรากฏอยู่ โลโก้ OrcaRouter ถูกคอมโพสิตไว้ที่มุมขวาล่าง
AI Safety Incidents

sckit: แพ็กเกจ AI Memory ของ MemTensor ถูกฝังแบ็กดอร์เพื่อขโมยข้อมูลรับรองและพรอมต์ของเอเจนต์

ผู้เขียน

Rowan Sterling

วันที่เผยแพร่

โมเดลล่าสุด · 20ดูโมเดลทั้งหมด →
เบนช์มาร์ก: Artificial Analysis · อัปเดตทุกวัน
กลับไปยังโพสต์ทั้งหมด

รีลีส MemTensor สี่รายการที่เผยแพร่เมื่อ 23 กันยายน 2026 มาพร้อมอิมแพลนต์ Go แบบ stripped ตัวเดียวกัน และแต่ละรายการเป็นเวอร์ชันใหม่ล่าสุดบนรีจิสทรีของตนขณะที่ยังเปิดให้ใช้งานอยู่ ส่วนของ npm @memtensor/memos-cloud-openclaw-plugin ถูกเผยแพร่เป็น 0.1.21 เมื่อเวลา 02:23 UTC, 0.1.23 เมื่อเวลา 03:49 และ 0.1.25 เมื่อเวลา 04:36; ส่วนของ PyPI MemoryOS ถูกเผยแพร่เป็น 2.0.34 เมื่อเวลา 05:25. ทั้งสี่รายการจัดส่ง sckit ซึ่งเริ่มทำงานเมื่อเกตเวย์เอเจนต์ OpenClaw บูต เริ่มทำงานอีกครั้งทุกครั้งที่มีการเรียกคืนความจำ — โดยข้อความพรอมต์ของผู้ใช้ถูกส่งผ่านตัวแปรสภาพแวดล้อม — และในแพ็กเกจ Python จะเริ่มทำงานเมื่อนำเข้าโมดูล memos ตามปกติ จากนั้นมันจะกวาดสแกนไดเรกทอรี home เพื่อค้นหาข้อมูลลับของ npm, PyPI, GitHub, GitLab, AWS, Vault และ SSH แล้วส่งสิ่งที่พบไปยังเซิร์ฟเวอร์ภายใต้ skyleen[.]fr. Socket, StepSecurity, SafeDep และ Aikido บันทึกเหตุการณ์การถูกเจาะระบบนี้แยกจากกันในวันนั้น และไม่มีรายใดรายงานหลักฐานว่าอิมแพลนต์ได้ทำงานบนโฮสต์จริง The Orca AI Incident Archive เก็บรายการนี้ไว้อย่างครบถ้วน พร้อมกับ ทุกเหตุการณ์ในห่วงโซ่อุปทานอื่น ๆ ที่ได้บันทึกไว้ และแต่ละบันทึกมีระดับความเชื่อมั่นและสถานะความเสียหายของตนเอง

สี่รีลีส และรายงานบั๊กสาธารณะที่อยู่ตรงกลางระหว่างนั้น

MemOS คือเฟรมเวิร์กหน่วยความจำโอเพนซอร์สของ MemTensor สำหรับเอเจนต์ LLM และแพ็กเกจ npm คือคอนเน็กเตอร์ที่ทำให้รันไทม์เอเจนต์ OpenClaw อ่านและเขียนไปยังบริการหน่วยความจำที่โฮสต์ไว้; StepSecurity ระบุว่าแพ็กเกจเดียวกันยังประกาศจุดเชื่อมต่อสำหรับรันไทม์ Clawdbot และ Moltbot ด้วย Socket วัดรีโพซิทอรีได้ประมาณ 11,500 ดาว และ 1,100 ฟอร์ก ณ เวลาที่เผยแพร่ ตำแหน่งนั้นเป็นเหตุผลที่การถูกบุกรุกนี้ดึงดูดการสอบสวนแยกกันถึงสี่ครั้ง: ตามที่ StepSecurity ระบุ สิ่งนี้ "วางปลั๊กอินไว้ภายในโพรเซสที่จัดการอินพุตของผู้ใช้เป็นประจำและอาจสืบทอดข้อมูลรับรองที่มีมูลค่า" ผู้ที่ตกอยู่ในความเสี่ยงคือผู้ที่ติดตั้งแพ็กเกจใดแพ็กเกจหนึ่ง — นักพัฒนาบนเครื่องของตนเอง และ CI runner กับคอนเทนเนอร์ที่เพียงรันชุดทดสอบเท่านั้น

ลำดับเหตุการณ์ของ npm เป็นส่วนที่ชัดเจนที่สุดของบันทึก เพราะการประทับเวลาใน registry เป็นข้อมูลสาธารณะ และมีหลายบริษัทที่บันทึกข้อมูลเหล่านั้นอย่างเป็นอิสระต่อกัน บทความของ Socket และไทม์ไลน์ของ SafeDep ตรงกันทุกนาที: 0.1.21 เมื่อเวลา 02:23:04, 0.1.22 เมื่อเวลา 03:45:44, 0.1.23 เมื่อเวลา 03:49:20, 0.1.24 เมื่อเวลา 04:33:30 และ 0.1.25 เมื่อเวลา 04:36:58 เวอร์ชัน 0.1.22 และ 0.1.24 สะอาด — Socket กล่าวว่าทั้งสองตรงกับ 0.1.20 ยกเว้นสตริงเวอร์ชัน — และเพย์โหลดกลับมาอีกสามนาทีครึ่งหลังจากแต่ละเวอร์ชันนั้น

การกระโดดของขนาดไฟล์คือเบาะแส Socket วัดขนาดของ 0.1.20 ได้ประมาณ272 KBเมื่อแตกไฟล์ และ 0.1.21 มีขนาด43.6 MB เนื่องจากรีลีสที่เป็นอันตรายเหล่านั้นได้รวมไบนารีของแพลตฟอร์มที่ลิงก์แบบสแตติกไว้หกไฟล์ โดยแต่ละไฟล์มีขนาดราว 7.4 MB PyPI ก็แสดงรูปแบบเดียวกัน: ไฟล์ wheel เวอร์ชัน 2.0.34 มีขนาด19,201,772 ไบต์เทียบกับ951,210ไบต์สำหรับเวอร์ชัน 2.0.33 ตามข้อมูลของ Socket

เมื่อเวลา 04:17 UTC — สิบหกนาทีก่อนเวอร์ชัน 0.1.24 ที่สะอาด และสิบเก้านาทีก่อนที่ payload จะกลับมาเป็น 0.1.25 — ผู้ใช้ GitHub ชื่อomeridel ได้เปิด issue #173 บนที่เก็บปลั๊กอิน โดยใช้ชื่อว่า "เวอร์ชันที่เป็นอันตราย 0.1.21 และ 0.1.23 ถูกเผยแพร่ไปยัง npm — โทเค็นสำหรับเผยแพร่ดูเหมือนจะถูกบุกรุก" issue ระบุว่า 0.1.23 เป็นแท็กล่าสุดในขณะนั้น ว่าทั้งสองเวอร์ชันไม่ตรงกับคอมมิตหรือแท็กใด ๆ ในที่เก็บ และว่าคอมมิตที่ถูกต้องล่าสุดลงวันที่ 14 สิงหาคม ปัจจุบันยังเปิดอยู่โดยไม่มีความคิดเห็นจากผู้ดูแล ณ วันที่ 26 ตุลาคม 2026

A self-built HTML card headed 'Supply chain, 23 September 2026, all times UTC', titled 'Four and a half hours on npm and PyPI', subtitled 'Each malicious release was the registry's newest version while it was live'. Nine rows, each with a time, an event, a detail and a status chip: 00:48 attacker branch first pushed, pipeline; 02:23 npm 0.1.21 published, 43.6 MB unpacked up from 272 KB, malicious; 03:17 MemOS commit b52958f, six sckit binaries and a CI token stealer, malicious; 03:45 npm 0.1.22 published, matches 0.1.20 apart from version strings, clean; 03:49 npm 0.1.23 published, payload restored three minutes later, malicious; 04:17 GitHub issue 173 filed, disclosure; 04:33 npm 0.1.24 published, clean again and the latest tag for three minutes; 04:36 npm 0.1.25 published, payload back and this one takes the latest tag, malicious; 05:25 PyPI MemoryOS 2.0.34, 19.2 MB wheel against 951 KB in 2.0.33, malicious. A footer reads 'Timestamps from Socket and SafeDep, which agree to the minute. Sizes from Socket.' The OrcaRouter logo is composited in the bottom-right corner.

sckit ทำอะไรหลังจากโหลดแพ็กเกจแล้ว

ทั้งสองแพ็กเกจไม่ได้ใช้ install hook ซึ่งเป็นเหตุผลว่าคำแนะนำตามปกติเกี่ยวกับ --ignore-scriptsจึงใช้ไม่ได้ การวิเคราะห์ของ StepSecurity เกี่ยวกับตัวแปร npm อธิบายถึงไฟล์ใหม่ lib/sckit.jsที่ส่งออกตัวเรียกใช้งาน (launcher) ซึ่งโค้ดเริ่มต้นทำงานและโค้ดเรียกคืนความจำที่มีอยู่เดิมของปลั๊กอินนำเข้าและเรียกใช้ เมื่อเริ่มทำงาน มันจะสร้างโปรเซส .sckit/<os>-<arch>/sckitแบบแยกเดี่ยว (detached) ด้วย stage0 --config64และสภาพแวดล้อมทั้งหมดของโปรเซสแม่ เมื่อมีการเรียกคืนความจำ มันก็ทำเช่นเดียวกันและส่งพรอมป์ของผู้ใช้ที่ถูกตัดออกผ่านตัวแปรสภาพแวดล้อมชื่อ SCKIT_EVENT_TEXTSocket กล่าวถึงผลลัพธ์อย่างตรงไปตรงมา: ดังนั้นไบนารีจึงถูกเรียกทำงานอีกครั้งทุกครั้งที่มีการเรียกคืนความจำ

เวอร์ชันบน PyPI นั้นสั้นกว่า และในทางปฏิบัติแล้วยากที่จะหลีกเลี่ยง Socket พบว่า memos/log.py เรียกฟังก์ชันทริกเกอร์ภายใน memos/_stage0.py เมื่อกำหนดค่าการบันทึกแล้ว ว่ามี 149 โมดูลที่เรียกตัวบันทึกที่ระดับโมดูล และด้วยเหตุนี้การนำเข้าโมดูล memos แบบธรรมดาจึงเพียงพอที่จะเริ่มเพย์โหลดหนึ่งครั้งต่อโปรเซส การวิเคราะห์แพ็กเกจเดียวกันของ StepSecurity เป็นการวิเคราะห์แบบสแตติกโดยสมบูรณ์ — ไม่ได้ติดตั้ง นำเข้า บิลด์ หรือเรียกใช้งานมัน

ขอบเขตการเก็บรวบรวมคือไดเรกทอรีโฮมทั้งหมด SafeDep ระบุรากของอินเวนทอรีเป็น $HOME และไฟล์เป้าหมายเป็น .npmrc, .pypirc, .git-credentials, .netrc, id_rsa, id_ecdsa, id_ed25519, .vault-token, msal_token_cache, access_tokens.json และ access_tokens.db, รวมถึงตัวแปรสภาพแวดล้อมที่ชื่อมีคำว่า token, secret, password, API key หรือ database URL รวมถึงรูปแบบโทเค็นที่รู้จักสำหรับ GitHub, GitLab, npm, PyPI, Hugging Face, Slack, Stripe, AWS และ SendGrid ระเบียน OSV สำหรับแพ็กเกจทั้งสอง, MAL-2026-16476 สำหรับ npm และ MAL-2026-16475 สำหรับ PyPI อธิบายรายการไฟล์เดียวกัน และเสริมว่าโปรโตคอลสั่งการและควบคุมใช้ CBOR, การแลกเปลี่ยนคีย์ X25519 และ XChaCha20-Poly1305 พร้อมสัญญาเช่าที่ลงนามแล้วและโมดูลที่ส่งมอบในขณะรันไทม์ — ดังนั้นจึงไม่เคยมีการสังเกตเนื้อหาของโมดูลเลย มีเพียงตัวโหลดที่ดึงโมดูลเหล่านั้นเท่านั้น

รายละเอียดสองประการเป็นตัวกำหนดสิ่งที่ผู้ป้องกันยังคงกู้คืนได้ ไบนารีมีรูทีนลบตัวเองชื่อ scheduleSelfDelete และ deleteExecutable ตามบันทึก OSV ซึ่งเป็นเหตุผลที่คำแนะนำคือให้ตามล่าอาร์ติแฟกต์ของโปรเซสและเครือข่ายแทนไฟล์ และ 0.1.25 ได้เพิ่ม lib/tls-trust.js ซึ่งตั้งค่า SSL_CERT_FILE เป็นไฟล์ CA ที่บันเดิลมาซึ่งรวมใบรับรอง 145 ใบบนระบบ Linux แบบมินิมอล ตามข้อมูลจาก StepSecurity — เป็นการแก้ไขที่มุ่งทำให้ทราฟฟิกของตัวเองทำงานได้บนคอนเทนเนอร์ที่ไม่มีที่จัดเก็บความเชื่อถือของระบบ

A generated abstract illustration on a dark navy field: at left, a dim cyan isometric tree of folders, several leaves carrying small grey key and badge silhouettes; from those keys a cluster of amber threads lifts away, braids into one bright cord and runs right through a narrow vertical cyan gateway frame that carries an amber keyhole, toward three small red-orange receivers with faint pulse rings on the far right. No text, people or organisation logos appear. The OrcaRouter logo is composited in the bottom-right corner.

ไปป์ไลน์การปล่อยเวอร์ชันคือช่องทางเข้า

การสร้างภาพเหตุการณ์ขึ้นใหม่ของ SafeDep ถือเป็นบันทึกการเข้าถึงครั้งแรกที่ละเอียดที่สุด และชี้ไปที่ GitHub Actions มากกว่ารหัสผ่านของ registry ที่ถูกขโมย ระหว่าง00:48 ถึง 02:03 UTC บัญชี GitHub ที่ดำเนินการในชื่อ Memtensor-AI ได้สร้าง push และลบสาขาชื่อ sc/release-0.1.21-20260922-cloud ถึงห้าครั้ง คอมมิต 9b97ec6 แก้ไขสคริปต์ workflow .github/scripts/validate-release-confirmation.mjs โดยทำให้สคริปต์ดังกล่าวต่อท้ายค่า BASH_ENV ลงใน $GITHUB_ENV ซึ่งส่งผลให้ขั้นตอนเชลล์แบบ non-interactive ในภายหลังต้อง source sckit-publish-bridge.sh ที่ผู้โจมตีจัดเตรียมไว้ ก่อนที่จะรันคำสั่งของตนเอง บริดจ์ตัวนั้นตรวจสอบชื่อแพ็กเกจและ timeout 150 วินาทีของขั้นตอน publish แล้วเรียกตัวเก็บ token ด้วย NPM_TOKEN หรือ NODE_AUTH_TOKEN จากนั้นลบตัวเองทิ้งและ exit 1 — ดังนั้นการ publish จึงล้มเหลวหลังจากที่ token ถูกนำออกไปแล้ว รีลีส npm ที่เป็นอันตรายรายการแรกปรากฏขึ้นยี่สิบนาทีหลังจากการ push สาขาครั้งสุดท้าย

เส้นทาง PyPI ใช้กลอุบายเดียวกันกับไปป์ไลน์ที่แตกต่างออกไป SafeDep รายงานว่าแท็ก v2.0.34 ชี้ไปยังคอมมิตที่ไม่ได้ลงลายเซ็นซึ่งไม่ได้อยู่บน main และคอมมิต b52958f ซึ่งระบุผู้เขียนเป็น "MemTensor CI Review" ได้เพิ่มไบนารีหกไฟล์ ตัวโหลด Python และแบ็กเอนด์สำหรับ build แบบกำหนดเองชื่อ sckit_poetry_build แบ็กเอนด์นั้นเขียน BASH_ENV ที่ชี้ไปยัง _pypi_bridge.sh ลงใน $GITHUB_ENV; บริดจ์ทำงานเฉพาะภายในตัวห่อการอัปโหลดของ twine ดึงดัชนีที่ลงลายเซ็นจากโฮสต์ skyleen[.]fr ตรวจสอบ emitter ด้วยการใช้งาน Ed25519 พิมพ์บรรทัดเครื่องหมาย ล้างรหัสผ่านการอัปโหลด และออกโดยไม่อัปโหลดสิ่งใดเลย ประมาณสองชั่วโมงต่อมา คอมมิต 41bf5c7 ได้ลบการเรียกนั้นออกพร้อมข้อความ "chore: allow native PyPI upload [skip ci]" แท็กถูกลบและสร้างใหม่ภายในสิบวินาที และการอัปโหลดไปยัง PyPI ก็ตามมาอีก 62 วินาทีหลังจากนั้น SafeDep ตีความคอมมิตแรกว่าเป็นการรันเพื่อดักจับโทเคน และคอมมิตที่สองว่าเป็นการรันที่ทำให้เวิร์กโฟลว์ของ MemTensor เองสร้างและเผยแพร่แพ็กเกจอันตรายด้วยโทเคนจริงของโปรเจกต์

ไม่ใช่ทุกคำอธิบายจะสอดคล้องกันในประเด็นนี้ Socket สังเกตว่าการเผยแพร่บน npm มาจากบัญชี npm เดียวกับเวอร์ชันที่ถูกต้องก่อนหน้า และไม่มี gitHead ซึ่ง Socket ตีความว่าเป็นสัญญาณว่าสิ่งเหล่านั้นไม่ได้ถูกสร้างโดย CI ของโปรเจกต์ และระบุว่าไม่สามารถยืนยันได้ว่าผู้โจมตีได้สิทธิ์ในการเผยแพร่มาได้อย่างไร SC Media ซึ่งรายงานผลการค้นพบของ Socket เมื่อวันที่ 24 กันยายน ได้อนุมานไปในทางเดียวกันว่าบัญชีถูกบุกรุก ทั้งสองฉบับเห็นตรงกันว่าข้อมูลรับรองการเผยแพร่ถูกนำออกจากไปป์ไลน์การรีลีส และต่างกันในเรื่องวิธีที่อาร์ติแฟกต์ npm เองถูกสร้างขึ้น ไม่มีใครเผยแพร่บันทึกเวิร์กโฟลว์ เพราะ API Actions ของ GitHub ไม่แสดงการรันใด ๆ หลังวันที่ 7 กันยายน และ SafeDep อนุมานว่าบันทึกเหล่านั้นถูกลบไปแล้ว วิธีที่บัญชี Memtensor-AI ได้รับสิทธิ์ในการพุชตั้งแต่แรกยังไม่เป็นที่ทราบในทั้งสองฉบับ SafeDep ระบุว่าเป็นไปได้ว่ามีการขโมยโทเค็นบัญชี แต่ยังไม่ยืนยัน

ยืนยันแล้ว อนุมานได้ และไม่มี

ระดับความเชื่อมั่นของบันทึกนี้คือ A และไม่มีการโต้แย้ง ซึ่งเป็นเรื่องที่ควรระบุให้ชัดเจน เพราะความแน่นอนนั้นผูกอยู่กับสิ่งที่ได้รับการเผยแพร่ ไม่ใช่กับสิ่งที่มันได้ทำลงไป

• ยืนยันแล้ว: เนื้อหาของอาร์ติแฟกต์ทั้งสี่ ซึ่งสร้างขึ้นใหม่โดยการวิเคราะห์เชิงสถิตที่ Socket, StepSecurity และ SafeDep; เวลาเผยแพร่บน npm และแท็ก latest บน 0.1.25; การเพิ่มขึ้นของขนาดในทั้งสองอีโคซิสเต็ม; คอมมิต แท็ก และประวัติสาขาในสองรีโพซิทอรี; โครงสร้างพื้นฐาน skyleen[.]fr และตัวระบุแคมเปญ cloud-openclaw-semi-nuclear และ memos-semi-nuclear; และการกำหนดค่าของเพย์โหลด ซึ่งหมดอายุในวันที่ 22–23 ตุลาคม 2026 ตามข้อมูลของ Socket และ SafeDep

• อนุมานว่า: เครื่องมือนี้ถูกเขียนขึ้นโดยได้รับความช่วยเหลือจากโมเดลภาษา ซึ่ง SafeDep ระบุโดยตรงและเรียกสิ่งนี้ว่าการอนุมาน; และโทเค็นสำหรับเผยแพร่ที่ถูกขโมยนั้นมีไว้เพื่อนำกลับมาใช้ซ้ำ ซึ่งสตริงช่องทางของการกำหนดค่า — "exact-ref-one-use-NPM_TOKEN" — สนับสนุนข้อนี้แต่ไม่ได้พิสูจน์

• ยังไม่ได้รับการยืนยัน:ผู้โจมตีเป็นใคร; มีสำเนาของ sckit ใดบ้างที่เคยทำงานนอกแซนด์บ็อกซ์หรือไม่; มีข้อมูลรับรองใดหลุดออกจากโฮสต์ไปหรือไม่; มีพรอมต์ใดที่พิมพ์ลงในเอเจนต์ OpenClaw แล้วไปถึงผู้โจมตีหรือไม่; และมีแพ็กเกจปลายน้ำใดถูกเผยแพร่ซ้ำหรือไม่ ทั้ง Socket และ StepSecurity ต่างดำเนินการวิเคราะห์แบบสถิต และ StepSecurity ระบุว่าไม่พบการรันโปรเซส การส่งข้อมูลลับ การขโมยข้อมูลที่สำเร็จ การติดตั้งเวิร์กโฟลว์ หรือการเผยแพร่แพ็กเกจเพิ่มเติมใด ๆ ในการวิเคราะห์ของตน

ช่องว่างนั้นคือเหตุผลที่คลังบันทึกเหตุการณ์นี้โดยทำเครื่องหมายว่าความเสียหายจริงเป็นเท็จ การเปิดเผยนั้นเป็นเรื่องจริงและกว้างขวาง — ใครก็ตามที่ติดตั้งเวอร์ชันที่ได้รับผลกระทบได้รับคำแนะนำให้ถือว่าโฮสต์ถูกบุกรุก — แต่ความเสียหาย ในความหมายของข้อมูลรับรองที่ถูกนำไปใช้อย่างพิสูจน์ได้ หรือระบบที่ถูกเข้าถึงอย่างพิสูจน์ได้ ยังไม่ถูกบันทึกโดยบริษัทสืบสวนทั้งสี่แห่ง

A self-built HTML card headed 'What the record supports', titled 'Four investigating firms, no confirmed victim', subtitled 'Socket, StepSecurity, SafeDep and Aikido documented the same four artefacts on 23 September 2026'. The left column, headed 'Established by static analysis', lists: four malicious releases, npm 0.1.21, 0.1.23 and 0.1.25 and PyPI MemoryOS 2.0.34; one implant, the same stripped Go binary sckit in all four; the publish window 02:23 to 05:25 UTC with 0.1.25 tagged latest; package growth from 272 KB to 43.6 MB on npm and 951 KB to 19.2 MB for the PyPI wheel; six builds per package for Linux, macOS and Windows on amd64 and arm64; collection scoped to the whole home directory across registry, source-control, cloud, Vault and SSH secrets; exfiltration to servers under skyleen[.]fr; and OSV tracking as MAL-2026-16476 and MAL-2026-16475. The right column, headed 'Not established', lists: the attacker's identity; how Memtensor-AI obtained push access; whether any copy ever executed outside static analysis; whether a stolen secret reached the attacker; whether any prompt text was received; and whether any downstream package was republished. A footer reads 'Archive classification for this record: incident, severity high, confidence A, real harm false.' The OrcaRouter logo is composited in the bottom-right corner.

หนอนที่ไม่เคยมีใครเห็นว่ามันแพร่กระจาย

ไบนารีเหล่านี้ไม่ได้มีแค่ตัวขโมยข้อมูล SafeDep ระบุฟังก์ชันที่ชื่อ recursivePublish, prepareRemoteNode, prepareRemotePython และ prepareRemoteWorkflow พร้อมเทมเพลต GitHub Actions ที่ฝังอยู่ซึ่งทริกเกอร์เมื่อมีการ push และความสามารถในการเขียนไฟล์ workflow ชื่อ runtime-update.yml ลงในรีโพซิทอรีที่ implant สามารถเข้าถึงได้ Socket พบสตริงเกี่ยวกับการเข้ารหัสแมนิเฟสต์ของแพ็กเกจและการติดตั้งไฟล์ในรีโพซิทอรี และประเมินว่าไบนารีเหล่านี้อาจสามารถเผยแพร่แพ็กเกจซ้ำโดยใช้โทเค็นรีจิสทรีที่ถูกขโมย

นี่คือการออกแบบเวิร์ม ไม่ใช่เวิร์มที่ถูกสังเกตเห็นว่าทำงานได้จริง StepSecurity ไม่พบหลักฐานว่าตรรกะนี้เคยถูกใช้เพื่อแพร่กระจาย และบันทึกการวิจัยของ Cloud Security Alliance ลงวันที่ 25 กันยายน ตีความขีดความสามารถนี้ว่ามีศักยภาพในการแพร่กระจายตัวเองอย่างจำกัด มากกว่าจะเป็นพฤติกรรมของเวิร์มที่ยืนยันแล้ว สื่อหลายสำนักอธิบายกรณีนี้ว่าเป็นเวิร์มในห่วงโซ่อุปทานตัวแรกที่มุ่งเป้าไปที่โครงสร้างพื้นฐานหน่วยความจำของเอเจนต์ AI คำอธิบายนี้สมเหตุสมผลในฐานะข้อความเกี่ยวกับการออกแบบ และรายงานต่าง ๆ ไม่สนับสนุนคำอธิบายนี้ในฐานะข้อความเกี่ยวกับสิ่งที่เกิดขึ้น

มีอะไรเปลี่ยนแปลงไปหลังจากนั้น

รีจิสทรีถูกทำความสะอาดในวันเดียวกัน เมื่อตรวจสอบเมื่อวันที่ 26 ตุลาคม 2026 เมทาดาทาแพ็กเกจ npm ไม่ได้ระบุ 0.1.21, 0.1.23 หรือ 0.1.25 ในรายการเวอร์ชันอีกต่อไป แท็ก latest ชี้ไปที่ 0.1.24 และแพ็กเกจถูกแก้ไขล่าสุดเมื่อเวลา 11:53 UTC วันที่ 23 กันยายน ยังคงมี dist-tag ที่ผิดปกติสองรายการติดอยู่ — clean-inverse-0-1-23 ชี้ไปที่ 0.1.22 และ clean-inverse-0-1-25 ชี้ไปที่ 0.1.24 — สะท้อนถึงรีลีสสะอาดสองรายการที่เข้ามาขัดจังหวะรีลีสที่เป็นอันตรายชั่วคราว บน PyPI นั้น MemoryOS 2.0.34 หายไปแล้ว และรีลีสใหม่ล่าสุดคือ 2.0.33 ซึ่งอัปโหลดเมื่อวันที่ 3 กันยายน 2026; ไม่มีรีลีส PyPI เพิ่มเติมอีกเลยในเจ็ดสัปดาห์นับจากนั้น

สิ่งที่ยังไม่เปลี่ยนแปลงคือบัญชีสาธารณะของโปรเจกต์ ที่เก็บโค้ดไม่ได้ระบุคำแนะนำด้านความปลอดภัยใด ๆ ปัญหาบน GitHub จากเวลา 04:17 ของวันเกิดเหตุยังคงเปิดอยู่และยังไม่ได้รับคำตอบ และไม่มีรายงานข่าวที่สำรวจในที่นี้ฉบับใดอ้างคำแถลงจาก MemTensor หรือจาก OpenClaw ทั้งแพ็กเกจอันตรายทั้งสองไม่มี provenance attestation ซึ่ง SafeDep ชี้ว่าการไม่มีสิ่งนี้ได้ตัดสัญญาณเดียวที่บ่งชี้ว่าอาร์ติแฟกต์ถูกสร้างจากคอมมิตที่ไม่คาดคิดออกไป

การตอบสนองที่มีอยู่นั้นอยู่ในฝั่งการตรวจจับ: StepSecurity ได้เพิ่มโดเมนสั่งการและควบคุม skyleen[.]fr เข้าในบัญชีบล็อกระดับโลกของตน และทั้งสองแพ็กเกจได้รับการติดตามใน OSV ในฐานะ MAL-2026-16476 และ MAL-2026-16475

หากมีการติดตั้งเวอร์ชันที่ได้รับผลกระทบ

คำแนะนำของ Socket เข้มงวดและเรียบง่ายที่สุด: หากมีการโหลดหรือนำเข้าเวอร์ชันใดก็ตามที่ระบุไว้ ให้ถือว่าโฮสต์นั้นถูกบุกรุก รวมถึง CI runner และคอนเทนเนอร์ที่เพียงแค่รันการทดสอบ ขั้นตอนที่เป็นรูปธรรมที่ทั้งสี่บริษัทเห็นพ้องตรงกัน:

• ถอนแพ็กเกจออกและปักหมุดไปยังเวอร์ชันที่สะอาด — npm 0.1.20, PyPI 2.0.33 โดย StepSecurity เตือนว่าการวิเคราะห์ของตนไม่ได้สร้างเกณฑ์พื้นฐานที่สะอาดของ PyPI ขึ้นมา ขณะที่ SafeDep และ SC Media ต่างระบุว่า 2.0.33 เป็นรีลีสดีตัวสุดท้าย

• ค้นหาคอมมานด์ไลน์ของโปรเซส เนื่องจากไฟล์ปฏิบัติการอาจลบตัวเอง: sckit stage0 --config64 และตัวแปรสภาพแวดล้อม SCKIT_EVENT_TEXT

• ลบไดเรกทอรีสถานะ ~/.openclaw/.cache/runtime และ ~/.memos/.cache/runtime และตรวจสอบรีโพซิทอรีว่ามีเวิร์กโฟลว์ runtime-update.yml หรือไดเรกทอรี .sckit/ ที่ไม่คาดคิดหรือไม่

ให้เปลี่ยนข้อมูลรับรองทุกตัวที่เข้าถึงได้จากโฮมไดเรกทอรีและสภาพแวดล้อมของโปรเซส โดยทำจากเครื่องที่สะอาด: npm, PyPI, GitHub, GitLab, AWS, Vault, SSH, Hugging Face, Slack, Stripe และ SendGrid รวมถึงค่า .env ใดๆ ทั้งหมด โทเค็นของ registry และระบบควบคุมซอร์สโค้ดให้ทำก่อนเป็นอันดับแรก

• ตรวจสอบการเผยแพร่ของแพ็กเกจของคุณเอง ในกรณีที่มีการใช้โทเค็นการเผยแพร่ที่ถูกขโมยเพื่อปล่อยเวอร์ชันที่คุณไม่ได้เขียน

• บล็อก skyleen[.]fr และโดเมนย่อยทั้งหมด และอ่านบันทึก egress ย้อนหลังไปถึงวันที่ 23 กันยายน

• ให้ถือว่าพรอมต์หรือความลับที่ถูกวางไว้ใด ๆ ที่ผ่านปลั๊กอินในขณะที่มันยังทำงานอยู่ถูกเปิดเผยแล้ว นี่คือส่วนของเหตุการณ์ที่เฉพาะเจาะจงกับหน่วยความจำของเอเจนต์: ตัวฝังไม่จำเป็นต้องคอยดึงข้อความบันทึกการสนทนาเลย เพราะข้อความบันทึกการสนทนาถูกส่งให้มันทุกครั้งที่มีการเรียกคืนความจำ

© 2026 OrcaRouter

สำหรับผู้ให้บริการ

ให้บริการแพลตฟอร์มการอนุมานอยู่หรือไม่ นำโมเดลของคุณขึ้น OrcaRouter

providers@orcarouter.ai

เข้าร่วมคอมมูนิตี้ของเรา

Discordsupport@orcarouter.aiXLinkedInGitHubYouTube