{"version":"2.1.232","anchor":"temp-directory-ownership-check-hardened-against-symlink-swap","canonical_anchor":"temp-directory-ownership-check-hardened-against-symlink-swap","heading":"Temp directory ownership check hardened against symlink swaps","tier":"notice","area":"Permissions","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.232\/e\/temp-directory-ownership-check-hardened-against-symlink-swap","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.232","markdown":"### Temp directory ownership check hardened against symlink swaps\n\nThe startup temp directory check no longer follows symlinks, closing a swap window.\n\n**What**\n\nThe startup check on the temp directory now opens it with `O_NOFOLLOW` and inspects and fixes the open descriptor, instead of checking the path and then changing it, closing a window where the directory could be swapped between the two steps.\n\n**Details**\n\n- A planted symlink or non-directory produces a distinct error, as does a directory owned by someone else or with an altered mode.\n- In each of these cases Claude Code refuses to use the directory.\n\n**Evidence**\n\n`is not readable (its mode may have been altered, or a path component denies search). Refusing to use it`\n\n- Area: Permissions\n- Tier: You'll notice\n- Useful: 2\/5\n- Signal: 2\/5"}