{"version":"2.1.236","anchor":"credentials-file-reads-reject-symlinks-and-oversized-files","canonical_anchor":"credentials-file-reads-reject-symlinks-and-oversized-files","heading":"Credentials file reads reject symlinks and oversized files","tier":"notice","area":"Credentials","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.236\/e\/credentials-file-reads-reject-symlinks-and-oversized-files","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.236","markdown":"### Credentials file reads reject symlinks and oversized files\n\nYour credentials file is now read with symlink and size protections and written owner-only.\n\n**What**\n\nThe plaintext credentials file (`.credentials.json` in the credential store directory) is now opened with `O_NOFOLLOW` and non-blocking mode, reports a distinct `refused-symlink` result when the path is a link, treats directories and files above a size cap as corrupt, and is written with mode 0600.\n\n**Details**\n\n- A probe returns a version string built from device, inode, size and modification time in nanoseconds, so callers can detect changes without re-reading.\n- A strict read variant treats permission errors as \"file absent\" only on non-Windows platforms.\n- The store handle is handed out only when the secure-storage check passes.\n\n**Evidence**\n\n`refused-symlink`\n\n- Area: Credentials\n- Names: `.credentials.json`\n- Tier: You'll notice\n- Useful: 3\/5\n- Signal: 2\/5"}