<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rneovim.git/runtime/lua/vim/secure.lua, branch master</title>
<subtitle>Neovim fork with Rahm's personal hacks.</subtitle>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/'/>
<entry>
<title>fix(trust): hash fileformat=mac buffers correctly #41616</title>
<updated>2026-09-02T14:09:20+00:00</updated>
<author>
<name>Volodymyr Chernetskyi</name>
<email>volodymyr_chernetskyi@goodyear.com</email>
</author>
<published>2026-09-02T14:09:20+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=a41d00866676a70358d5568ef3c6e6b21f1d0c43'/>
<id>a41d00866676a70358d5568ef3c6e6b21f1d0c43</id>
<content type='text'>
Problem:
`compute_hash()` reconstructs buffer contents with `fileformat` set to
`mac` using CRLF (`dos`) line endings. The resulting hash does not match
the file's bytes.

Solution:
Define the line ending for every supported file format. Use that mapping
when reconstructing buffer contents for hashing.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
`compute_hash()` reconstructs buffer contents with `fileformat` set to
`mac` using CRLF (`dos`) line endings. The resulting hash does not match
the file's bytes.

Solution:
Define the line ending for every supported file format. Use that mapping
when reconstructing buffer contents for hashing.</pre>
</div>
</content>
</entry>
<entry>
<title>fix(vim.secure): read() command injection vulnerability #39918</title>
<updated>2026-05-20T19:27:43+00:00</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2026-05-20T19:27:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=799cbfff855c72282a54646f3e5e1b71b0da223c'/>
<id>799cbfff855c72282a54646f3e5e1b71b0da223c</id>
<content type='text'>
Problem:
Malicious filename can execute code because of ":" cmdline expansion.

Solution:
Use `fnameescape()`.

fix https://github.com/neovim/neovim/issues/39914</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
Malicious filename can execute code because of ":" cmdline expansion.

Solution:
Use `fnameescape()`.

fix https://github.com/neovim/neovim/issues/39914</pre>
</div>
</content>
</entry>
<entry>
<title>fix(trust): always use "/" slashes in filepaths #39355</title>
<updated>2026-04-24T11:37:21+00:00</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2026-04-24T11:37:21+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=5c88492a13f80d23e7b0d48d036ed60a7d24be0d'/>
<id>5c88492a13f80d23e7b0d48d036ed60a7d24be0d</id>
<content type='text'>
Problem:
We should not use "\" (backslashes) except where absolutely required.
See references in https://github.com/neovim/neovim/pull/37729

Solution:
There is no reason to use "\" slashes in the trust db, so don't.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
We should not use "\" (backslashes) except where absolutely required.
See references in https://github.com/neovim/neovim/pull/37729

Solution:
There is no reason to use "\" slashes in the trust db, so don't.</pre>
</div>
</content>
</entry>
<entry>
<title>fix(trust): hash unchanged empty buffers as empty files #39027</title>
<updated>2026-04-23T19:01:37+00:00</updated>
<author>
<name>Barrett Ruth</name>
<email>62671086+barrettruth@users.noreply.github.com</email>
</author>
<published>2026-04-23T19:01:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=0a8218a2b40fa8f6b533605db4377ff89250711c'/>
<id>0a8218a2b40fa8f6b533605db4377ff89250711c</id>
<content type='text'>
Problem:
`vim.secure.trust()` hashes an unchanged empty buffer as
a newline, so trusting an empty file by buffer never works.

Solution:
Hash unchanged empty-buffers `''` so buffer-based
trust matches the on-disk empty file.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
`vim.secure.trust()` hashes an unchanged empty buffer as
a newline, so trusting an empty file by buffer never works.

Solution:
Hash unchanged empty-buffers `''` so buffer-based
trust matches the on-disk empty file.</pre>
</div>
</content>
</entry>
<entry>
<title>docs: api, messages, lsp, trust</title>
<updated>2026-03-11T17:00:18+00:00</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2026-02-12T13:16:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=b8a976afdaf0080498e85530fae65a3165f201d5'/>
<id>b8a976afdaf0080498e85530fae65a3165f201d5</id>
<content type='text'>
gen_vimdoc.lua: In prepare for the upcoming release, comment-out the
"Experimental" warning for prerelease features.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
gen_vimdoc.lua: In prepare for the upcoming release, comment-out the
"Experimental" warning for prerelease features.
</pre>
</div>
</content>
</entry>
<entry>
<title>feat(secure): allow 'path' parameter for trust action 'allow' (#38001)</title>
<updated>2026-02-26T02:55:05+00:00</updated>
<author>
<name>anondeveg</name>
<email>anondeveg@gmail.com</email>
</author>
<published>2026-02-26T02:55:05+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=6ba32713ada1c290aa8ff0cfcf69c3cbb14d59d4'/>
<id>6ba32713ada1c290aa8ff0cfcf69c3cbb14d59d4</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(trust): :trust command on Windows #36509</title>
<updated>2025-11-12T05:57:09+00:00</updated>
<author>
<name>Andrey Starodubtsev</name>
<email>andrey-starodubtsev@users.noreply.github.com</email>
</author>
<published>2025-11-12T05:57:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=b15b22fc73bed0629f0a95fdc1aa9f9160ad215c'/>
<id>b15b22fc73bed0629f0a95fdc1aa9f9160ad215c</id>
<content type='text'>
`:trust` command calculated SHA-256 on file content reading it as a
text. While it doesn't matter on Unices, on Windows hash was calculated
incorectly. SHA-256 for buffer content was calculated fine though.

After this fix hashes in `%LOCALAPPDATA%/nvim-data/trust` are the same
as in output of `sha256sum -t`.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
`:trust` command calculated SHA-256 on file content reading it as a
text. While it doesn't matter on Unices, on Windows hash was calculated
incorectly. SHA-256 for buffer content was calculated fine though.

After this fix hashes in `%LOCALAPPDATA%/nvim-data/trust` are the same
as in output of `sha256sum -t`.</pre>
</div>
</content>
</entry>
<entry>
<title>fix(messages): 'exrc' / secure messages</title>
<updated>2025-07-29T02:00:25+00:00</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2025-07-28T21:45:26+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=dc3a30cfbb8304e10cff894a30c56fe43fc895ec'/>
<id>dc3a30cfbb8304e10cff894a30c56fe43fc895ec</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>feat(exrc): user must view and explicitly run ":trust" #35069</title>
<updated>2025-07-28T20:11:58+00:00</updated>
<author>
<name>nyngwang</name>
<email>nyngwang@gmail.com</email>
</author>
<published>2025-07-28T20:11:58+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=dc67ba948eec0a5628eff0b15ce87a7d27f58bb3'/>
<id>dc67ba948eec0a5628eff0b15ce87a7d27f58bb3</id>
<content type='text'>
Problem:
It's relatively easy to mispress key `a` to (a)llow arbitrary execution
of 'exrc' files. #35050

Solution:
- For exrc files (not directories), remove "allow" menu item.
  Require the user to "view" and then explicitly `:trust` the file.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
It's relatively easy to mispress key `a` to (a)llow arbitrary execution
of 'exrc' files. #35050

Solution:
- For exrc files (not directories), remove "allow" menu item.
  Require the user to "view" and then explicitly `:trust` the file.</pre>
</div>
</content>
</entry>
<entry>
<title>fix: type fixes</title>
<updated>2025-06-06T14:36:48+00:00</updated>
<author>
<name>Lewis Russell</name>
<email>lewis6991@gmail.com</email>
</author>
<published>2025-06-05T10:31:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=3b6084ddf4f0d49fb0e5d135919c9daacea2a46d'/>
<id>3b6084ddf4f0d49fb0e5d135919c9daacea2a46d</id>
<content type='text'>
Type fixes caught by emmylua
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Type fixes caught by emmylua
</pre>
</div>
</content>
</entry>
</feed>
