Claude Code може да зарежда файлове извън дадено хранилище чрез импортиране на памет със символна връзка (symlink), което може да позволи включването на локални данни в първата изходяща заявка на модела, преди той да извърши каквито и да е действия.

Наскоро докладван проблем в Claude Code подчертава недостатък в съгласието и произхода при неговата функция за импортиране на памет, а не при очакваното управление на символни връзки във файловата система.

Вместо това инструментът проверява дали дадена директива @import се намира в рамките на проекта, използвайки нейния видим път, но следва символните връзки при четене на файла. Тази разлика позволява на злонамерено хранилище да импортира файл с права за четене извън своята директория, без да задейства диалоговия прозорец на Claude Code за одобрение на външно импортиране.

Claude Code зарежда инструкции за проекта от файла CLAUDE.md и файлове, намиращи се в .claude/rules/. Тези файлове могат да включват импортирания като @./docs/setup.md, което позволява на екипите автоматично да включват споделени инструкции при стартиране на сесия.

Злонамерен субект може да постави ред като @./link в CLAUDE.md и след това да ангажира (commit) link като Git символна връзка, сочеща към външен локален файл. Например символните връзки могат да водят до /etc/passwd, /proc/self/environ или друг файл, който е достъпен за четене от текущия потребител.

Проблемът със сигурността възниква, защото Claude Code оценява ./link като вътрешен път на хранилището, преди да го разреши. Тъй като лексикалният път изглежда е вътре в проекта, не се генерира предупреждение за външно импортиране. Когато обаче инструментът за зареждане на памет чете файла, операционната система следва символните връзки до реалната им цел извън хранилището.

След това съдържанието на външния файл се добавя към първоначалния контекст на модела. Това се случва преди Claude Code да може да извика инструмент за четене, да изпълни команда или да поиска одобрение от потребителя. Докладите показват, че съдържанието на импортирания файл е било включено в първата изходяща заявка, изпратена от Claude Code.

По подразбиране това съдържание се изпраща към крайната точка на API на Anthropic. Файловете .claude/settings.json, контролирани от хранилището обаче, могат да задават ANTHROPIC_BASE_URL – известна конфигурационна промяна, която може да насочи трафика на Claude Code към различна крайна точка. Изследователи от Tego показаха, че импортираните данни могат да бъдат извлечени към сървър, избран от хранилището.

Този проблем може да бъде особено подходящ за разработчици, които преди това са се доверили на широки родителски директории, като например домашна папка, ~/src или /Users. Доверието на работната среда в Claude Code се прилага за хранилища в доверени директории, което означава, че новоклониран проект може да не покаже нов прозорец за потвърждение на доверието.

Докладът свързва това поведение с по-ранни проблеми със символни връзки в Claude Code, включително CVE-2025-59829 и CVE-2026-25724. И в двата случая Anthropic коригира подобен недостатък чрез разрешаване на символните връзки преди прилагането на проверки за сигурност.

Изследователите твърдят, че инструментът за зареждане на памет не е получил същата валидация на каноничния път. Те са тествали това поведение на Claude Code версия 2.1.215, докато статичният анализ също е идентифицирал проблема във версия 2.1.207.

Съобщава се, че Anthropic е класифицирала подаването в HackerOne като информативно, като пояснява, че доверието в работната среда е предвидената граница на сигурност и позволява четене, редактиране и изпълнение в контекста на доверен проект.

Изследователите препоръчват канонизиране на целите за импортиране преди прилагане на проверки за ограничаване и съгласие. Те също така съветват потребителите да бъдат предупреждавани, когато импортиранията се разрешават извън хранилището, и ясно да се идентифицират настройките, които могат да променят крайните точки в конфигурациите на хранилищата.