Claude Code 2.1.268: מה תוקן בכללי deny וב-MCP
MarkdownClaude Code 2.1.268–2.1.269 תיקנו ארבע בעיות בהרשאות ודליפת סוד ב-/mcp. מי הושפע, איך לעדכן ואיך לבדוק את הכללים שלכם.
קריאת המאמר המלא
Claude Code גרסה 2.1.268 יצאה ב-10 בספטמבר 2026, ולמחרת יצאה 2.1.269. כדאי לעדכן מיד: בשני מקרים, כללי deny שבהם השתמשתם כדי לחסום מהסוכן גישה ל-.env ולתיקיות שירות לא פעלו, בלי להציג הודעה. בנוסף, הפקודה /mcp יכלה להציג סודות מההגדרות שלכם בטרמינל.
כל מה שמופיע בהמשך מבוסס על יומן השינויים והתיעוד הרשמיים של Anthropic כפי שהיו ב-17 בספטמבר 2026, תאריך חומר המקור. הגרסה האחרונה באותו תאריך הייתה 2.1.274. אנו מתארים כיצד השגיאות פעלו על סמך הרשומות האלה; העקיפות לא שוחזרו בגרסה הפגיעה.
להנחיות נוספות לעבודה עם Ailoot, ראו את התיעוד.
מה תוקן ב-Claude Code 2.1.268 וב-2.1.269?
הנקודה המרכזית
תוקנו ארבע בעיות בהרשאות. כללי deny ו-ask לא פעלו בנתיבים דרך קישורים סמליים, וכלל deny על Read או Edit עלול היה להיכשל בשורות שהכילו env -C או eval. כלל עם “!” חרג מתחום קובץ ההגדרות שלו. הפקודה tee כתבה קבצים בלי שכלל deny על Edit יחסום זאת. בנוסף, הפקודות /mcp ו-claude mcp list הציגו סודות מההגדרות, ושגיאות של תוספים הציגו אסימונים מכתובות Git.
ארבעה תיקונים רלוונטיים לכללי ההרשאות:
- חסימות על קישורים סמליים לא פעלו. כללי deny ו-ask שנכתבו עבור תיקיות שהן קישורים סמליים (
/etc,/tmp,/varב-macOS, ו-/binב-Linux) לא הופעלו כשהנתיב צוין לפי מיקומו האמיתי. גם פקודות Bash התעלמו מכללי deny שנכתבו עבור נתיב דרך קישור סמלי. - חסימה של קריאה ועריכה נכשלה יחד עם
env -Cאוeval. אם שורת הפקודה כללה מבנה שהרשאת הבדיקה לא הצליחה לנתח, ייתכן שכלל deny על Read או Edit לא הופעל. - כלל עם “!” חל על תחום רחב מהמתוכנן. כלל deny או ask שהתחיל ב-
!חל מעבר לקובץ ההגדרות שבו נכתב. כעת הוא חל רק בתוך המקור שלו, ושלילה חשופה!אינה נלקחת בחשבון. teeעקפה את החסימות בכתיבה. כללי deny עבורEdit()ובדיקת נתיב הכתיבה לא חלו על קובץ שנוצר באמצעות פקודת Bashtee. הרשאתBash(tee:*)כבר אינה מכסה כתיבות מחוץ לתיקיות העבודה.
הגרסאות האלה תיקנו גם שתי בעיות הקשורות לחשיפת סודות. WebFetch כבר לא ממתינה ללא הגבלה לתגובה משרת שמשאיר את החיבור פתוח: הבקשה נכשלת כעבור 300 שניות, ואפשר להגדיר את פרק הזמן הקצוב באמצעות המשתנה CLAUDE_CODE_WEBFETCH_DEADLINE_MS. כמו כן הוסרה צריכת CPU גבוהה ומתמשכת במפגשים ארוכים שבהם המערכת לא פעילה.
איך פועלות חסימות ב-Claude Code?
הנקודה המרכזית
הכללים נכתבים בבלוק permissions של settings.json: deny חוסם, ask מבקש אישור, ו-allow מתיר פעולה ללא אישור. הבדיקות מתבצעות בסדר הזה: deny, אחר כך ask, ואז allow. כלל הוא בפורמט Tool או Tool(detail), למשל Read(./.env).
ל-Claude Code יש שלוש רשימות כללים: deny (אסור תמיד), ask (יש לבקש אישור לפני ביצוע הפעולה), ו-allow (מותר ללא אישור). כשהסוכן עומד לבצע פעולה, הכללים נבדקים בדיוק בסדר הזה. כלל deny תואם מבטל כל כלל allow לאותה פעולה: כלל שמאפשר פעולה אינו יכול ליצור חריג לכלל חסימה.
הכללים מאוחסנים בשלושה מקומות: כללי משתמש ב-~/.claude/settings.json, כללי פרויקט ב-.claude/settings.json שבתוך המאגר, וכללים מקומיים ב-.claude/settings.local.json. הנה דוגמה להגדרות שחוסמות קריאה של קובץ מפתחות:
{
"permissions": {
"deny": [
"Read(./.env)",
"Read(./secrets/**)",
"Bash(rm *)"
]
}
}
אפשר לראות את כל הכללים הפעילים ואת הקובץ שממנו הגיע כל אחד מהם באמצעות הפקודה /permissions במהלך מפגש. אם כלל חוסם קריאה, ההודעה על החסימה מציינת את הכלל, וזה יעזור בבדיקה בהמשך.
אילו שגיאות השפיעו על חסימות ועל תחום הכללים?
השגיאות השפיעו על בדיקות נתיבים ופקודות, וכן על תחום הכללים ממקורות הגדרות שונים.
המקרה הראשון: קישורים סמליים. ב-macOS, הנתיבים /etc, /tmp ו-/var הם קישורים סמליים לתיקיות אמיתיות תחת /private; ב-Linux, /bin הוא לרוב קישור סמלי דומה. אם כתבתם כלל deny עבור צורה אחת של הנתיב, אבל הסוכן ניגש אליו בצורה אחרת (למשל, במיקום האמיתי שלו במקום דרך הקישור הסמלי), הכלל לא הופעל. גם פקודות Bash התעלמו מחסימה שנכתבה עבור נתיב דרך קישור סמלי. ב-2.1.268 תוקנו שני המקרים: הכלל חל כעת בלי קשר לאופן שבו הנתיב נכתב.
המקרה השני: env -C ו-eval באותה שורה. בדיקת ההרשאות מנתחת פקודה כדי לקבוע לאילו קבצים היא תיגש. היא אינה יכולה לנתח מבנים כגון env -C או eval. הבאג היה שכאשר מבנה כזה הופיע בשורה, ייתכן שכלל deny על Read או Edit לא הופעל. כתוצאה מכך, הפקודה יכלה לעקוף את החסימה על קריאה או עריכה של קובץ מוגן.
המקרה השלישי: כלל עם “!” חרג מגבולותיו. כלל שמתחיל ב-! אמור לחול רק בתוך קובץ ההגדרות שבו נכתב. לפני 2.1.269, הוא חל גם על מקורות הגדרות אחרים. כעת תחומו מוגבל לקובץ שלו, ומתעלמים מכלל שמורכב מ-! חשוף בלבד.
המקרה הרביעי: כתיבה באמצעות tee. פקודת Bash tee יכולה לכתוב לקובץ. בדיקת נתיב הכתיבה וכללי deny על Edit() לא חלו על אותו קובץ. באותו זמן, הרשאת Bash(tee:*) כיסתה כתיבות מחוץ לתיקיות העבודה. ב-2.1.269 הבדיקות האלה החלו לחול על כתיבות באמצעות tee: חסימה על הקובץ נכנסת לתוקף, ו-Bash(tee:*) מכסה רק תיקיות עבודה.
אם אתם משתמשים בחסימות ממוקדות — כדי לחסום את .env, כמה תיקיות שירות או פקודות מסוכנות — כדאי לבדוק גם אותן. השלבים מופיעים בהמשך.
למה /mcp יכול היה להציג את המפתחות שלכם?
הנקודה המרכזית
מפתחות בהגדרות MCP מסופקים לעיתים קרובות באמצעות משתני ${VAR}. הפקודות /mcp, /plugin, claude mcp list ו-claude mcp get, וכן שגיאות התחברות ל-MCP, הציגו את הערכים שהוצבו במקום המשתנים — כלומר, את המפתחות עצמם. ב-2.1.268 הפלט הוסווה.
בהגדרות של שרתי MCP, מפתחות נשמרים בדרך כלל במשתני סביבה ומופנים באמצעות ${VAR}, כך שאפשר לשמור את הקובץ במאגר בלי לכלול בו את הסודות עצמם. הבעיה הייתה שפקודות להצגת המידע (/mcp, /plugin, claude mcp list, claude mcp get) והודעות שגיאה בעת התחברות ל-MCP הציגו את ההגדרות לאחר שהערכים כבר הוצבו במקום המשתנים. המפתח עצמו הופיע על המסך.
תיקון נוסף נוגע לשגיאות של תוספים וזירות מסחר: הן יכלו להציג אסימון או סיסמה מכתובת Git של המקור.
אם פלט של /mcp או claude mcp list מגרסה ישנה הופיע בזרם, בצילום מסך, בהודעה לעמית או ביומן שיצא מהמחשב שלכם, לרבות באופן אוטומטי, הניחו שהמפתחות מהגדרות ה-MCP שלכם נחשפו והחליפו אותם. אם הפלט לא יצא מהמחשב שלכם, עדכון מספיק. יש לנו מדריך נפרד לשרתי MCP ולהגדרות מוכנות מראש: שרתי MCP ב-Claude Code.
שינויים נוספים בגרסאות האלה
WebFetch ופריטי תוכן. בעבר, כלל WebFetch ללא פרטים ברשימות deny או ask חל גם על קריאה ושינוי של פריטי תוכן שפורסמו. החל מ-2.1.268, הוא כבר לא חל עליהם. כדי לחסום פריטי תוכן, צריך כלל Artifact נפרד או כלל לדומיין, כגון WebFetch(domain:claude.ai). אם הסתמכתם על חסימה כללית של WebFetch כדי למנוע קריאת פריטי תוכן, בדקו מחדש את ההגדרות: הכלל הקודם כבר לא חוסם פעולות אלה.
ל-WebFetch יש כעת פרק זמן קצוב. בקשה לשרת שמשאיר את החיבור פתוח ואינו מסיים את התגובה נכשלת כעת כעבור 300 שניות. בעבר, בקשה כזו יכלה להיתקע ללא הגבלת זמן. ניתן להגדיר את ההתנהגות באמצעות המשתנה CLAUDE_CODE_WEBFETCH_DEADLINE_MS; הגדרתו ל-0 מבטלת את פרק הזמן הקצוב.
צריכת CPU גבוהה ומתמשכת במפגשים לא פעילים הוסרה. במפגשים ארוכים שבהם המערכת לא פעילה, לולאה במצב סרק ב-Claude Code יכלה לגרום לצריכת CPU גבוהה ומתמשכת. הבאג תוקן ב-2.1.268. הוא יכול היה להשפיע גם על אנשים שמשאירים מפגשים פתוחים כל היום.
התקינו את הגרסה האחרונה. באג חדש הופיע ב-2.1.269: אחרי שמפגש פעל במשך זמן רב, פקודות Bash Git שקוראות נתונים בלבד החלו לבקש אישור. הבאג תוקן ב-2.1.270. לכן עדכנו לגרסה האחרונה (נכון ל-17 בספטמבר 2026, זו הייתה 2.1.274); אל תעצרו ב-2.1.268 או ב-2.1.269.
איך מעדכנים ובודקים שהחסימות פועלות?
הנקודה המרכזית
בדקו את הגרסה באמצעות claude --version, עדכנו למהדורה האחרונה, ואז בדקו באמצעות קובץ בטוח שאין בו סודות: הוסיפו לו כלל deny, בקשו מהסוכן לקרוא את הקובץ, וודאו שההודעה על החסימה מציינת את הכלל שלכם.
- בדקו איזו גרסה מותקנת אצלכם. הריצו
claude --versionבטרמינל. התיקונים לבעיות המתוארות למעלה יצאו ב-2.1.268 וב-2.1.269. אם מספר הגרסה נמוך מ-2.1.268, הגרסה שלכם עדיין אינה כוללת את התיקונים האלה, אם כי השאלה אם כל בעיה רלוונטית תלויה בנתיבים, בפקודות ובכללים שבהם אתם משתמשים. - עדכנו. במדריך איך לעדכן את Claude Code לגרסה האחרונה יש הוראות שלב אחר שלב ופתרון בעיות. בחרו את הגרסה האחרונה; אל תעצרו ב-2.1.268.
- בדקו את החסימה. אל תבדקו כלל על קובץ
.envאמיתי: אם החסימה תיכשל, הסוכן יראה מפתחות אמיתיים. צרו קובץ בדיקה, למשלsecret-test.txt, ובו טקסט כלשהו כגון “זוהי בדיקה”; הוסיפו את הכלל"Read(./secret-test.txt)"לרשימת deny בקובץ.claude/settings.jsonשל הפרויקט; הפעילו מחדש את המפגש; ובקשו: “קראו את הקובץ secret-test.txt וספרו לי מה יש בו.” ההתנהגות הצפויה היא הודעת חסימה שמציינת את הכלל שלכם. אם הסוכן קורא את הקובץ, החסימה לא פעלה בבדיקה הזאת. התחילו בבדיקת התחביר שבסעיף למעלה ופתחו את/permissionsכדי לראות את הכללים הפעילים ואת הקבצים שמהם נטענו. תוצאת הבדיקה לבדה אינה מזהה את הסיבה. חסימה אחת מראה שהכלל עבור הקובץ הזה פועל; היא אינה אומרת דבר על הכללים האחרים שלכם, לכן בדקו אותם אחד בכל פעם באותה דרך. - בדקו את מקרה הקישור הסמלי אם אתם משתמשים בנתיבים כאלה. אם יש לכם חסימות עבור
/tmp,/etcאו/varב-macOS, או עבור/binב-Linux, חזרו על הבדיקה עבור הנתיבים האלה לאחר העדכון. - בדקו כללים עם “!”. אם השתמשתם בהם, ודאו שכל אחד מהם כתוב בקובץ שבו הוא אמור לחול.
אם החסימה פועלת, אבל Claude Code עדיין לא מצליח לראות את הקבצים שאתם צריכים, ראו את ההסבר הנפרד: למה Claude Code לא יכול לראות קובצי פרויקט.
אם אינכם יכולים לעדכן כרגע
לפעמים צריך לדחות עדכון: אי אפשר לשנות את הסביבה, המחשב שייך לארגון, או שעליכם לסיים את המשימה הנוכחית. עד שתעדכנו, אפשר להפחית את הסיכון כך:
- כתבו כללי deny לשתי הצורות של הנתיב — לקישור הסמלי ולמיקום האמיתי (ב-macOS, נתיבים אמיתיים נמצאים תחת
/private); - אל תשלבו כמה פקודות בשורה אחת, והימנעו מ-
env -Cומ-evalבפקודות שאתם מבקשים מהסוכן להריץ; - אל תציגו לאיש פלט של
/mcp,/plugin,claude mcp listאוclaude mcp get, והחליפו מפתחות מהגדרות MCP שעשויים להגיע לידיים של אחרים; - זכרו ש-
teeעוקפת חסימה על Edit — אל תחשיבו קבצים כמוגנים אם Bash מורשה.
האמצעים האלה מפחיתים את הסבירות לעקיפות מסוימות, אך אינם מחליפים את התיקון. עדכנו והריצו את הבדיקה מהסעיף הקודם ברגע שתוכלו.
סיכום קצר
גרסאות 2.1.268 ו-2.1.269 תיקנו ארבע בעיות בהרשאות של Claude Code: קישורים סמליים, שורות עם env -C ו-eval, כללים עם “!” שחלו מעבר לקובץ שלהם, וכתיבות באמצעות tee. בנפרד, הן תיקנו חשיפת סודות בפלט של /mcp ואסימונים בשגיאות של תוספים. בדקו את מספר הגרסה, עדכנו למהדורה האחרונה והריצו את הבדיקה עם קובץ בדיקה מהסעיף למעלה. הודעת חסימה שמציינת את הכלל שלכם מראה שהחסימה פעלה בבדיקה הזאת. נוכחות הכלל בהגדרות לבדה אינה מספיקה כדי לוודא שהוא פועל.
מקורות
- Claude Code, יומן השינויים הרשמי (רשומות עבור 2.1.268, 2.1.269, 2.1.270): https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md
- Claude Code, תאריכי השחרור של הגרסאות ב-npm: https://www.npmjs.com/package/@anthropic-ai/claude-code
- Claude Code, תיעוד הרשאות (תחביר deny/ask/allow): https://code.claude.com/docs/en/permissions
- Claude Code, מהדורות ב-GitHub: https://github.com/anthropics/claude-code/releases
כדי להמשיך לעבוד עם מודלים, אפשר לעבור אל Ailoot.
פרטים נוספים
שאלות ותשובות: Claude Code 2.1.268: מה תוקן בכללי deny וב-MCP
איך אפשר לבדוק כלל deny בלי לחשוף סוד אמיתי?
צרו קובץ שמכיל טקסט חסר רגישות, אסרו גישת Read לקובץ הבדיקה, הפעילו מחדש את ההפעלה ובקשו מהסוכן לקרוא אותו. צפו לסירוב שמציין את הכלל שלכם. לעולם אל תשתמשו בקובץ .env אמיתי לבדיקה שעלולה להיכשל.
האם חסימה מוצלחת אחת מוכיחה שכל ההרשאות שלי בטוחות?
לא. היא מאמתת רק את הקובץ ואת מסלול הגישה שנבדקו. עברו על הכללים הפעילים ב-/permissions, ואז בדקו את המסלולים והמקרים האחרים שעליהם אתם מסתמכים, לרבות כתובות דרך קישורים סמליים כשזה רלוונטי.