{"version":"2.1.242","anchor":"plugin-file-access-is-confined-to-the-project-and-blocked-fr","canonical_anchor":"plugin-file-access-is-confined-to-the-project-and-blocked-fr","heading":"Plugin file access is confined to the project and blocked from credential folders","tier":"soon","area":"Plugins","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.242\/e\/plugin-file-access-is-confined-to-the-project-and-blocked-fr","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.242","markdown":"### Plugin file access is confined to the project and blocked from credential folders\n\nPlugin file reads stay inside the project and cannot touch credential folders.\n\n**What**\n\nThe plugin file capability refuses paths that escape the project root, non-regular files and hard links, and re-checks the opened file against what it saw before opening so a file swapped in mid-check is caught. It arrives with the plugin hook-module feature, off unless the server enables it.\n\n**Details**\n\n- Writes additionally refuse the project's config and git directories, plugin and marketplace folders, the session config directory, and home tool folders including `.ssh`, `.aws`, `.kube`, `.gnupg`, `.docker`, `.npm`, `.bun`, `.rustup`, `.m2`, `.gradle`, and launchd\/systemd\/autostart locations.\n- Win32 short names and paths reached via relocation variables such as `XDG_CONFIG_HOME`, `ZDOTDIR`, `BASH_ENV`, `GIT_CONFIG_GLOBAL`, `NPM_CONFIG_USERCONFIG` and `KUBECONFIG` are refused too.\n- The refusals themselves are unconditional path checks, with no separate switch.\n\n**Evidence**\n\n`the open landed on a file the check did not see`\n\n- Area: Plugins\n- Tier: Nothing to try yet\n- Useful: 3\/5\n- Signal: 4\/5\n- Present in the build but not switched on"}