一行被打錯(cuò)的文件,演變?yōu)?100個(gè)GitHub倉(cāng)庫(kù)被一刀切下架。
代碼泄露之后,Anthropic選擇用版權(quán)法(DMCA)快速清理擴(kuò)散內(nèi)容,但這次操作的影響遠(yuǎn)遠(yuǎn)超出預(yù)期——整個(gè)fork網(wǎng)絡(luò)被連帶波及。
約8100個(gè)倉(cāng)庫(kù)被一并處理,不僅包含泄露代碼的倉(cāng)庫(kù),也波及到了Claude Code相關(guān)的公開(kāi)倉(cāng)庫(kù)及其合法fork,甚至一些開(kāi)發(fā)者的個(gè)人項(xiàng)目。
隨著大量倉(cāng)庫(kù)被下架,相關(guān)討論在社交媒體上迅速發(fā)酵。
Claude Code負(fù)責(zé)人Boris Cherny出面回應(yīng),稱這是一次意外操作。
目前,Anthropic已撤回大部分下架請(qǐng)求,僅保留針對(duì)1個(gè)倉(cāng)庫(kù)以及96個(gè)確實(shí)包含泄露源碼的fork的處理。GitHub也恢復(fù)了對(duì)其余受影響倉(cāng)庫(kù)的訪問(wèn)權(quán)限。
01
這次事件的源頭是一次內(nèi)部發(fā)布流程中的失誤。
周二,一位軟件工程師發(fā)現(xiàn),Anthropic最近一次發(fā)布中似乎意外包含了其主打產(chǎn)品——Claude Code命令行應(yīng)用的源碼訪問(wèn)權(quán)限。
具體來(lái)說(shuō),在Claude Code的npm發(fā)布包中,出現(xiàn)了一個(gè)關(guān)鍵文件:package/cli.js.map
這是一個(gè) source map(源碼映射文件),作用是將編譯后的代碼(如壓縮或轉(zhuǎn)譯后的 Javascript)映射回原始源碼。
換句話說(shuō):只要有.map,就可以在一定程度上“還原”源碼結(jié)構(gòu)。
這意味著即使Anthropic并沒(méi)有直接公開(kāi)完整源碼,但由于這一文件的存在,源碼具備了被還原的可能。
情況被發(fā)現(xiàn)后,大量AI愛(ài)好者和開(kāi)發(fā)者開(kāi)始分析這些文件,試圖從中了解Claude Code的內(nèi)部實(shí)現(xiàn)方式。
同時(shí)這些文件也被分享到了GitHub上,并以各種方式傳播。
結(jié)果就是,Anthropic泄露了512,000行源代碼、內(nèi)部模型代號(hào)和他們的產(chǎn)品路線圖。
02
確認(rèn)源碼泄露后,Anthropic需要盡快清理這些已經(jīng)擴(kuò)散的代碼,他們選擇了最直接也最干脆的一種方法:DMCA(美國(guó)數(shù)字版權(quán)法)下架請(qǐng)求。
這種方式有著非常高效的優(yōu)點(diǎn):快速執(zhí)行、優(yōu)先保護(hù)版權(quán)方、通常不做復(fù)雜判斷。
但問(wèn)題在于,根據(jù)GitHub的處理邏輯,倉(cāng)庫(kù)如果屬于同一個(gè)fork網(wǎng)絡(luò),就可能會(huì)被整體納入處理范圍。
而Claude Code本身存在一個(gè)公開(kāi)倉(cāng)庫(kù)和大量的合法fork,fork之間形成了復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu)。
于是就出現(xiàn)了一個(gè)連鎖反應(yīng):包含泄露代碼的fork被標(biāo)記的同時(shí),同一fork網(wǎng)絡(luò)中的其他倉(cāng)庫(kù)也被波及,官方倉(cāng)庫(kù)的正常fork被一并處理,一些開(kāi)發(fā)者基于該項(xiàng)目的衍生項(xiàng)目也被下架。
最終,這一DMCA請(qǐng)求影響了約8100個(gè)倉(cāng)庫(kù)。
面對(duì)這一情況,Anthropic很快進(jìn)行了調(diào)整:公司撤回了絕大多數(shù)DMCA請(qǐng)求,僅保留了1個(gè)明確包含泄露源碼的倉(cāng)庫(kù)和96個(gè)相關(guān)fork。
GitHub也隨之恢復(fù)了“被誤傷”的倉(cāng)庫(kù)的訪問(wèn)權(quán)限。
不過(guò),TechCrunch報(bào)道稱,這次“清理事故”也對(duì)Anthropic帶來(lái)了新的負(fù)面影響。公司正計(jì)劃IPO,而上市通常意味著更高的執(zhí)行力和合規(guī)要求。
如果類似情況發(fā)生在上市公司,通常可能引發(fā)股東層面的關(guān)注,甚至帶來(lái)潛在的法律風(fēng)險(xiǎn)。
03
在其他的任何公司,剛剛泄露了512,000行源代碼、內(nèi)部模型代號(hào)和整套產(chǎn)品路線圖的人,都免不了要拎包走人。
但Anthropic并沒(méi)有這么做:團(tuán)隊(duì)和領(lǐng)導(dǎo)一起公開(kāi)地承擔(dān)了責(zé)任,認(rèn)為問(wèn)題不在人,而是容易出錯(cuò)的基礎(chǔ)設(shè)施。任何人都有可能無(wú)意中犯同樣的錯(cuò)誤。
按照公開(kāi)表述,出錯(cuò)環(huán)節(jié)在于打包與發(fā)布流程,手動(dòng)步驟缺乏自動(dòng)化約束。
因此,后續(xù)的重點(diǎn)在于修復(fù)流程、減少該步驟的人為操作、提升打包和發(fā)布的自動(dòng)化程度。而并非對(duì)個(gè)人問(wèn)責(zé)。
在技術(shù)層面,Anthropic也很快發(fā)布了新版本,對(duì)問(wèn)題進(jìn)行修復(fù)。
最新版本Claude Code 2.1.90移除了上一版本中的源碼映射文件(導(dǎo)致泄露的罪魁禍?zhǔn)祝㈩~外做了兩類“泄露/隱私”相關(guān)的修補(bǔ):取消了Get-DnsClientCache和ipconfig /displaydns的自動(dòng)允許,使Claude Code 默認(rèn)不再訪問(wèn)本地DNS緩存。
新版本還對(duì)PowerShell執(zhí)行權(quán)限進(jìn)行了強(qiáng)化,增加了權(quán)限校驗(yàn)邏輯并修復(fù)了多種可能的繞過(guò)路徑,提升了系統(tǒng)在本地執(zhí)行層面的安全性。
目前,Claude Code已恢復(fù)正常更新節(jié)奏,相關(guān)討論仍在持續(xù)。








