typos icon indicating copy to clipboard operation
typos copied to clipboard

`typos.exe` triggering Windows AV since version 1.39.0

Open my1e5 opened this issue 2 months ago • 3 comments

Description

I use typos from PyPI. For example, using uv:

$ echo "helo" | uvx --with typos==1.38.1 typos -
error: `helo` should be `hello`
  ╭▸ -:1:1
  │
1 │ helo
  ╰╴━━━━

But for versions 1.39.0 and later, I get an access denied error whenever/however I try to run it.

$ echo "helo" | uvx --with typos==1.39.0 typos -
error: Failed to install: typos-1.39.0-py3-none-win_amd64.whl (typos==1.39.0)
  Caused by: failed to open file `C:\Users\my1e5\AppData\Local\uv\cache\builds-v0\.tmp8gNlmK\Lib\site-packages\typos-1.39.0.data\scripts\typos.exe`: Access is denied. (os error 5)
$ echo "helo" | uvx typos -
error: Failed to install: typos-1.40.0-py3-none-win_amd64.whl (typos==1.40.0)
  Caused by: failed to open file `C:\Users\my1e5\AppData\Local\uv\cache\builds-v0\.tmp4wTYBy\Lib\site-packages\typos-1.40.0.data\scripts\typos.exe`: Access is denied. (os error 5)

The only thing I can think of is that maybe my Windows PC anti-virus is flagging the binary? I'm unable right now to turn that off to test this further. But I just wanted to raise this here in case any one else was experiencing this.

my1e5 avatar Dec 08 '25 15:12 my1e5

What happens when you directly download a wheel, change the extension to .zip, extract, and run that?

epage avatar Dec 08 '25 15:12 epage

1.38.1 was released on 2025-10-07.

1.39.0 was released on 2025-10-31.

  • maturin was not upgraded in that time (https://github.com/crate-ci/typos/commits/master/crates/typos-cli/pyproject.toml)
  • Not seeing much that changed in our repo in general between those dates.

epage avatar Dec 08 '25 15:12 epage

Thanks @epage. I just tried directly downloading the wheels as you described. And I think it must be the antivirus that is causing the problem. For versions 1.39.0 and newer the .exe vanishes from the directory immediately after unzipping - I guess my antivirus scans it and quarantines it?

~/Downloads/typos-1.40.0-py3-none-win_amd64/typos-1.40.0.data/scripts
$ ./typos.exe --version
bash: ./typos.exe: No such file or directory

No issues with 1.38.1 and older, they are fine.

~/Downloads/typos-1.38.1-py3-none-win_amd64/typos-1.38.1.data/scripts
$ ./typos.exe --version
typos-cli 1.38.1

I also tried downloading directly from the GitHub releases and it's the same - my antivirus removes the .exe:

~/Downloads/typos-v1.39.0-x86_64-pc-windows-msvc
$ ./typos.exe --version
bash: ./typos.exe: No such file or directory
~/Downloads/typos-v1.38.1-x86_64-pc-windows-msvc
$ ./typos.exe --version
typos-cli 1.38.1

I'm using a company PC which has Datto AV, so I will speak to my IT dept and see if anything can be done.

my1e5 avatar Dec 08 '25 15:12 my1e5

Just wanted to update that since 1.40.1, typos.exe isn't triggering my anti-virus.

$ echo "helo" | uvx --with typos==1.40.0 typos -
error: Failed to install: typos-1.40.0-py3-none-win_amd64.whl (typos==1.40.0)                                                                                                   
  Caused by: failed to open file `C:\Users\my1e5\AppData\Local\uv\cache\builds-v0\.tmpZA6Dt8\Lib\site-packages\typos-1.40.0.data\scripts\typos.exe`: Access is denied. (os error 5)

$ echo "helo" | uvx --with typos==1.40.1 typos -
Installed 1 package in 52ms
error: `helo` should be `hello`                                                                                                                                                 
  ╭▸ -:1:1
  │
1 │ helo
  ╰╴━━━━

$ echo "helo" | uvx --with typos==1.41.0 typos -
Installed 1 package in 49ms
error: `helo` should be `hello`                                                                                                                                                 
  ╭▸ -:1:1
  │
1 │ helo
  ╰╴━━━━

my1e5 avatar Jan 05 '26 12:01 my1e5