Blog

Claude Code 2.1.268: deny qoidalarida va MCP’da nimalar tuzatildi

Markdown

Claude Code 2.1.268–2.1.269 ruxsatlar bilan bog‘liq to‘rtta muammoni va /mcp’dagi maxfiy ma’lumotlar sizib chiqishini tuzatdi. Kimlarga ta’sir qiladi, qanday yangilash va qoidalaringizni qanday tekshirish mumkin.

Maqolani to‘liq o‘qish

Claude Code’ning 2.1.268 versiyasi 2026-yil 10-sentabrda, undan keyingi kuni esa 2.1.269 versiyasi chiqarildi. Darhol yangilashingiz kerak: ikki holatda agentning .env va xizmat papkalariga kirishini bloklash uchun ishlatadigan deny qoidalari jimgina samarasiz bo‘lgan. Bundan tashqari, /mcp buyrug‘i terminalda konfiguratsiyalaringizdagi maxfiy ma’lumotlarni chiqarishi mumkin edi.

Quyida keltirilganlarning barchasi 2026-yil 17-sentabrda — manba material tayyorlangan sanada — mavjud bo‘lgan Anthropic’ning rasmiy o‘zgarishlar jurnali va hujjatlariga asoslangan. O‘sha sanadagi eng so‘nggi versiya 2.1.274 edi. Xatolar qanday ishlaganini shu yozuvlarga tayangan holda tasvirlaymiz; zaif versiyadagi aylanib o‘tish usullari qayta sinab ko‘rilmagan.

Ailoot bilan ishlash bo‘yicha qo‘shimcha ko‘rsatmalar uchun hujjatlarga qarang.

Claude Code 2.1.268 va 2.1.269 da nimalar tuzatildi?

Asosiy xulosa

Ruxsatlar bilan bog‘liq to‘rtta muammo tuzatildi. Deny va ask qoidalari simvolik havolalar orqali o‘tadigan yo‘llarda ishlamagan, Read yoki Edit uchun deny esa env -C yoki eval qatnashgan satrlarda ishlamay qolishi mumkin edi. “!” bilan boshlangan qoida o‘z sozlamalar faylidan tashqariga ham tatbiq etilgan. tee buyrug‘i Edit uchun deny tomonidan bloklanmasdan fayllar yozgan. Bundan tashqari, /mcp va claude mcp list konfiguratsiyalardagi maxfiy ma’lumotlarni, plagin xatolari esa Git URLlaridagi tokenlarni ko‘rsatgan.

Ruxsat qoidalariga tegishli to‘rtta tuzatish bor:

  1. Simvolik havolalardagi taqiqlar ishlamagan. Simvolik havola qilingan kataloglar (/etc, /tmp, macOS’da /var, Linux’da /bin) uchun yozilgan deny va ask qoidalari yo‘l uning haqiqiy joylashuvi bilan ko‘rsatilganda ishga tushmagan. Bash buyruqlari ham simvolik havola orqali ko‘rsatilgan yo‘l uchun yozilgan deny qoidalarini e’tiborsiz qoldirgan.
  2. env -C yoki eval bilan birga o‘qish va tahrirlashni taqiqlash ishlamay qolgan. Agar ayni buyruq satrida ruxsatlar tekshiruvi tahlil qila olmaydigan konstruksiya bo‘lsa, Read yoki Edit uchun deny ishga tushmay qolishi mumkin edi.
  3. “!” bilan boshlangan qoida ko‘zlanganidan kengroq tatbiq etilgan. ! bilan boshlangan deny yoki ask qoidasi yozilgan sozlamalar faylidan tashqariga ham tatbiq etilgan. Endi u faqat o‘z manbasi doirasida amal qiladi, yolg‘iz ! esa e’tiborga olinmaydi.
  4. tee taqiqlarni chetlab fayl yozgan. Edit() uchun deny qoidalari va yozish yo‘lini tekshirish Bash’ning tee buyrug‘i yaratgan faylga tatbiq etilmagan. Bash(tee:*) ruxsati endi ishchi kataloglardan tashqariga yozishni qamrab olmaydi.

Bu versiyalar maxfiy ma’lumotlar oshkor bo‘lishiga oid yana ikkita muammoni ham tuzatdi. WebFetch ulanishni ochiq qoldiradigan server javobini cheksiz kutmaydi: endi so‘rov 300 soniyadan keyin muvaffaqiyatsiz tugaydi, vaqt chegarasini esa CLAUDE_CODE_WEBFETCH_DEADLINE_MS o‘zgaruvchisi orqali sozlash mumkin. Shuningdek, uzoq davom etadigan bo‘sh sessiyalardagi doimiy yuqori CPU yuklanishi bartaraf etildi.

Claude Code’da taqiqlar qanday ishlaydi?

Asosiy xulosa

Qoidalar settings.json faylining permissions blokida yoziladi: deny bloklaydi, ask tasdiq so‘raydi, allow esa amalni tasdiqsiz bajarishga ruxsat beradi. Tekshiruvlar quyidagi tartibda bajariladi: deny, keyin ask, so‘ng allow. Qoida Tool yoki Tool(detail) shaklida bo‘ladi, masalan, Read(./.env).

Claude Code’da qoidalarning uchta ro‘yxati bor: deny (doim taqiqlangan), ask (amalni bajarishdan oldin so‘rash) va allow (tasdiqsiz ruxsat berish). Agent biror amalni bajarmoqchi bo‘lganda, qoidalar aynan shu tartibda tekshiriladi. Mos keluvchi deny har qanday shu amal uchun berilgan allow’ni bekor qiladi: ruxsat beruvchi qoida taqiqdan istisno qila olmaydi.

Qoidalar uchta joyda saqlanadi: foydalanuvchi qoidalari ~/.claude/settings.json faylida, loyiha qoidalari repozitoriy ichidagi .claude/settings.json faylida, mahalliy qoidalar esa .claude/settings.local.json faylida. Kalitlar saqlangan faylni o‘qishni taqiqlovchi sozlamalar namunasi:

{
  "permissions": {
    "deny": [
      "Read(./.env)",
      "Read(./secrets/**)",
      "Bash(rm *)"
    ]
  }
}

Faol qoidalar va ularning har biri qaysi fayldan kelganini sessiyada /permissions buyrug‘ini bajarib ko‘rishingiz mumkin. Agar qoida o‘qishni bloklasa, taqiqda shu qoida nomi ko‘rsatiladi; bu quyidagi tekshiruvda asqotadi.

Qaysi xatolar taqiqlar va qoidalar doirasiga ta’sir qildi?

Xatolar yo‘l va buyruq tekshiruvlariga, shuningdek turli sozlamalar fayllaridagi qoidalarning amal qilish doirasiga ta’sir qildi.

Birinchi holat: simvolik havolalar. macOS’da /etc, /tmp va /var /private ichidagi haqiqiy papkalarga olib boruvchi simvolik havolalardir; Linux’da /bin ko‘pincha shunga o‘xshash simvolik havola bo‘ladi. Agar yo‘lning bir ko‘rinishi uchun deny qoidasini yozgan bo‘lsangiz-u, agent unga boshqa ko‘rinishi bilan (masalan, simvolik havola o‘rniga haqiqiy joylashuvi bilan) kirsa, qoida ishga tushmagan. Bash buyruqlari ham simvolik havola orqali ko‘rsatilgan yo‘l uchun yozilgan taqiqni e’tiborsiz qoldirgan. 2.1.268 da ikkala holat ham tuzatildi: endi yo‘l qaysi ko‘rinishda ishlatilishidan qat’i nazar, qoida tatbiq etiladi.

Ikkinchi holat: bir satrda env -C va eval. Ruxsatlar tekshiruvi qaysi fayllarga kirilishini aniqlash uchun buyruqni tahlil qiladi. U env -C yoki eval kabi konstruksiyalarni tahlil qila olmaydi. Xato shunda ediki, satrda shunday konstruksiya bo‘lsa, Read yoki Edit uchun deny qo‘llanmay qolishi mumkin edi. Natijada buyruq himoyalangan faylni o‘qish yoki tahrirlashga qo‘yilgan taqiqni chetlab o‘tishi mumkin edi.

Uchinchi holat: “!” bilan boshlangan qoida o‘z doirasidan tashqariga tatbiq etilgan. ! bilan boshlanuvchi qoida faqat o‘zi yozilgan sozlamalar fayli doirasida amal qilishi kerak. 2.1.269 dan oldin u boshqa sozlamalar manbalariga ham tatbiq etilgan. Endi uning amal qilish doirasi faqat o‘z fayli bilan cheklangan, yolg‘iz ! dan iborat qoida esa e’tiborga olinmaydi.

To‘rtinchi holat: tee orqali yozish. Bash’ning tee buyrug‘i faylga yozishi mumkin. Yozish yo‘lini tekshirish va Edit() uchun deny qoidalari o‘sha faylga tatbiq etilmagan. Shu bilan birga, Bash(tee:*) ruxsati ishchi kataloglardan tashqariga yozishni ham qamrab olgan. 2.1.269 da tee orqali yozishga nisbatan bu tekshiruvlar ishga tushdi: faylga qo‘yilgan taqiq kuchga kiradi, Bash(tee:*) esa faqat ishchi kataloglarni qamrab oladi.

Agar .env faylini, bir nechta xizmat papkasini yoki xavfli buyruqlarni bloklash uchun aniq deny qoidalaridan foydalansangiz, ularni ham tekshiring. Qadamlar quyida.

Nega /mcp kalitlaringizni ko‘rsatishi mumkin edi?

Asosiy xulosa

MCP konfiguratsiyalaridagi kalitlar ko‘pincha ${VAR} o‘zgaruvchilari orqali beriladi. /mcp, /plugin, claude mcp list va claude mcp get buyruqlari, shuningdek MCP tizimiga kirish xatolari almashtirilgan qiymatlarni, ya’ni kalitlarning o‘zini ko‘rsatgan. 2.1.268 da chiqishdagi maxfiy ma’lumotlar yashiriladi.

MCP serveri konfiguratsiyalarida kalitlar odatda muhit o‘zgaruvchilarida saqlanadi va ${VAR} orqali ularga murojaat qilinadi; shu tariqa faylni maxfiy ma’lumotlarsiz repozitoriyda saqlash mumkin. Muammo shunda ediki, ko‘rish buyruqlari (/mcp, /plugin, claude mcp list, claude mcp get) va MCP tizimiga kirish xabarlari konfiguratsiyani qiymatlar allaqachon almashtirilgan holda ko‘rsatgan. Ekranda kalitning o‘zi paydo bo‘lgan.

Yana bir tuzatish plagin va marketplace xatolariga tegishli: ular manba Git URLidagi token yoki parolni ko‘rsatishi mumkin edi.

Agar eski versiyadagi /mcp yoki claude mcp list chiqishi oqimda, skrinshotda, hamkasbga yuborilgan xabarda yoki mashinangizdan tashqariga chiqqan jurnalda, jumladan avtomatik ravishda, ko‘ringan bo‘lsa, MCP konfiguratsiyalaringizdagi kalitlar oshkor bo‘lgan deb hisoblang va ularni almashtiring. Agar chiqish hech qachon mashinangizdan tashqariga chiqmagan bo‘lsa, yangilash kifoya. MCP serverlari va tayyor sozlamalar haqida alohida qo‘llanmamiz bor: Claude Code MCP serverlari.

Bu versiyalardagi boshqa o‘zgarishlar

WebFetch va artefaktlar. Ilgari, deny yoki ask ichida tafsilotlarsiz yozilgan WebFetch qoidasi e’lon qilingan artefaktlarni o‘qish va o‘zgartirishga ham tatbiq etilardi. 2.1.268 dan boshlab u ularga tatbiq etilmaydi. Artefaktlarni bloklash uchun alohida Artifact qoidasi yoki domen uchun, masalan WebFetch(domain:claude.ai), qoida kerak. Agar artefaktlarni o‘qishdan himoyalash uchun umumiy WebFetch taqiqiga tayangan bo‘lsangiz, sozlamalaringizni qayta tekshiring: avvalgi qoida endi bu amallarni bloklamaydi.

WebFetch endi vaqt chegarasiga ega. Ulanishni ochiq qoldirib, javobni yakunlamaydigan serverga yuborilgan so‘rov endi 300 soniyadan keyin muvaffaqiyatsiz tugaydi. Ilgari bunday so‘rov cheksiz kutib qolishi mumkin edi. Xatti-harakatni CLAUDE_CODE_WEBFETCH_DEADLINE_MS o‘zgaruvchisi orqali sozlash mumkin; uni 0 ga o‘rnatish vaqt chegarasini o‘chiradi.

Bo‘sh sessiyalardagi doimiy yuqori CPU yuklanishi bartaraf etildi. Uzoq davom etadigan bo‘sh sessiyalarda Claude Code’dagi bo‘sh sikl doimiy yuqori CPU yuklanishiga sabab bo‘lishi mumkin edi. Bu xato 2.1.268 da tuzatildi. U sessiyalarni kun bo‘yi ochiq qoldiradigan odamlarga ham ta’sir qilishi mumkin edi.

Eng so‘nggi versiyani o‘rnating. 2.1.269 da yangi xato paydo bo‘ldi: sessiya uzoq vaqt ishlagandan so‘ng, faqat ma’lumot o‘qiydigan Bash Git buyruqlari ruxsat so‘ray boshladi. Bu xato 2.1.270 da tuzatildi. Shuning uchun eng so‘nggi versiyaga yangilang (2026-yil 17-sentabr holatiga ko‘ra, bu 2.1.274 edi); 2.1.268 yoki 2.1.269 da to‘xtamang.

Qanday yangilash va taqiqlar ishlashini tekshirish mumkin?

Asosiy xulosa

Versiyani claude --version bilan tekshiring, eng so‘nggi relizga yangilang, so‘ng maxfiy ma’lumotlari bo‘lmagan xavfsiz fayl bilan sinang: unga deny qoidasini qo‘shing, agentdan faylni o‘qishni so‘rang va taqiqda qoidangiz tilga olinganini tekshiring.

  1. Joriy versiyangizni aniqlang. Terminalda claude --version buyrug‘ini bajaring. Yuqorida tasvirlangan muammolarga oid tuzatishlar 2.1.268 va 2.1.269 da chiqarilgan. Agar versiya raqami 2.1.268 dan past bo‘lsa, versiyangizda bu tuzatishlar hali yo‘q; har bir muammo sizga taalluqli yoki yo‘qligi esa foydalanadigan yo‘llar, buyruqlar va qoidalarga bog‘liq.
  2. Yangilang. Claude Code’ni eng so‘nggi versiyaga yangilash qo‘llanmasida bosqichma-bosqich ko‘rsatmalar va muammolarni bartaraf etish yo‘llari bor. Eng so‘nggi versiyani tanlang; 2.1.268 da to‘xtamang.
  3. Taqiqni sinang. Haqiqiy .env faylida qoidani sinamang: agar taqiq ishlamasa, agent haqiqiy kalitlarni ko‘radi. Sinov faylini yarating, masalan secret-test.txt, va unga “bu sinov” kabi istalgan matnni yozing; loyiha .claude/settings.json faylidagi deny ro‘yxatiga "Read(./secret-test.txt)" qoidasini qo‘shing; sessiyani qayta ishga tushiring; so‘ng quyidagicha so‘rang: “secret-test.txt faylini o‘qi va ichida nima borligini ayt.” Kutiladigan natija — qoidangiz nomi ko‘rsatilgan taqiq. Agar agent faylni o‘qisa, ushbu sinovda taqiq ishlamadi. Avval yuqoridagi bo‘limda sintaksisni tekshiring va faol qoidalar hamda ular yuklangan fayllarni ko‘rish uchun /permissions ni oching. Sinov natijasining o‘zi sababni aniqlamaydi. Bitta taqiq faqat shu fayl uchun qoida ishlashini ko‘rsatadi; boshqa qoidalaringiz haqida hech narsa demaydi, shuning uchun ularni ham xuddi shu tarzda bittalab tekshiring.
  4. Agar shunday yo‘llardan foydalansangiz, simvolik havola holatini tekshiring. macOS’da /tmp, /etc yoki /var, Linux’da esa /bin uchun taqiqlaringiz bo‘lsa, yangilangandan keyin shu yo‘llar uchun ham sinovni takrorlang.
  5. “!” bilan boshlangan qoidalarni ko‘rib chiqing. Ulardan foydalangan bo‘lsangiz, har biri mo‘ljallangan faylda yozilganini tekshiring.

Agar taqiq ishlasa-yu, Claude Code baribir sizga kerakli fayllarni ko‘ra olmasa, alohida tushuntirishga qarang: nega Claude Code loyiha fayllarini ko‘ra olmaydi.

Hozir yangilay olmasangiz

Ba’zan yangilashni kechiktirishga to‘g‘ri keladi: muhitni o‘zgartira olmaysiz, mashina korxonaga tegishli yoki joriy vazifani tugatishingiz kerak. Yangilamaguningizcha, quyidagicha xavfni kamaytirishingiz mumkin:

  • yo‘lning ikkala ko‘rinishi uchun — simvolik havola va haqiqiy joylashuvi uchun — deny qoidalarini yozing (macOS’da haqiqiy yo‘llar /private ostida bo‘ladi);
  • bir satrda bir nechta buyruqni birlashtirmang va agentdan bajarishni so‘raydigan buyruqlarda env -C hamda eval dan qoching;
  • hech kimga /mcp, /plugin, claude mcp list yoki claude mcp get chiqishini ko‘rsatmang va MCP konfiguratsiyalaridagi birovning qo‘liga tushgan bo‘lishi mumkin bo‘lgan kalitlarni almashtiring;
  • tee Edit uchun deny’ni chetlab yozishini yodda tuting — Bash’ga ruxsat berilgan bo‘lsa, fayllar himoyalangan deb hisoblamang.

Bu choralar muayyan aylanib o‘tish ehtimolini kamaytiradi, ammo tuzatish o‘rnini bosmaydi. Imkon topishingiz bilanoq yangilang va oldingi bo‘limdagi sinovni bajaring.

Qisqacha xulosa

2.1.268 va 2.1.269 versiyalari Claude Code’dagi ruxsatlar bilan bog‘liq to‘rtta muammoni tuzatdi: simvolik havolalar, env -C va eval qatnashgan satrlar, o‘z faylidan tashqariga tatbiq etiladigan “!” qoidalari hamda tee orqali yozish. Alohida ravishda, /mcp chiqishidagi maxfiy ma’lumotlar va plagin xatolaridagi tokenlar oshkor bo‘lishi ham tuzatildi. Versiya raqamingizni tekshiring, eng so‘nggi relizga yangilang va yuqoridagi bo‘limda ko‘rsatilgan sinov fayli bilan sinov bajaring. Qoida nomi ko‘rsatilgan taqiq shu sinovda taqiq ishlaganini bildiradi. Qoidaning sozlamalarda borligi uning ishlashini tekshirish uchun yetarli emas.

Manbalar

Modellar bilan ishlashni davom ettirish uchun Ailoot saytiga o‘tishingiz mumkin.

Batafsil

Ko‘p beriladigan savollar

Haqiqiy maxfiy kalitni ochmasdan deny qoidasini qanday sinash mumkin?

Zararsiz matnli fayl yarating, unga Read orqali kirishni taqiqlang, seansni qayta boshlang va agentdan faylni o‘qishni so‘rang. Rad javobida sizning qoidangiz ko‘rsatilishi kerak. Ishlamay qolishi mumkin bo‘lgan sinov uchun haqiqiy .env faylini ishlatmang.

Bitta muvaffaqiyatli taqiq barcha ruxsatlar xavfsizligini isbotlaydimi?

Yo‘q. U faqat sinalgan fayl va kirish usulini tekshiradi. /permissions orqali faol qoidalarni ko‘ring, so‘ng tayanadigan boshqa yo‘llar va holatlarni, kerak bo‘lsa symlink orqali yozilgan yo‘llarni ham alohida sinang.

Barcha maqolalar