Commit Graph
100 Commits
Author SHA1 Message Date
Bill Zissimopoulos 57e0a24dd0 Merge branch 'pvt-voldelete-fix' 2026-07-28 16:43:54 +03:00
Bill Zissimopoulos 7ee0873f4b sys: FspVolumeDelete: move FspIoqStop prior to VolumeDeleteResource acquisition 2026-07-27 18:40:57 +03:00
Bill Zissimopoulos 97e6d92b5b sys: FspFsvolQueryDirectoryCopy
Correct bounds checking on FSP_FSCTL_DIR_INFO records.
2026-07-27 16:23:45 +03:00
Bill Zissimopoulos a744d6f24c sys: FspFsvolQueryStreamInformationCopy: fix vulnerability reported by Abhinav Agarwal (GitHub @abhinavagarwal07)
Correct bounds checking on FSP_FSCTL_STREAM_INFO records.
2026-07-27 16:19:10 +03:00
Bill Zissimopoulos 1916d9bf06 sys: FspVolumeNotifyWork: fix vulnerability reported by Wencheng Xue (GitHub @panwnvda)
Correct bounds checking on FSP_FSCTL_NOTIFY_INFO records.
2026-07-27 16:16:41 +03:00
Bill Zissimopoulos e3ecc89bb7 build: version 2026 Beta3 2026-07-13 12:23:41 +03:00
Bill Zissimopoulos 83aa54b4ab sys: FspFsvolWriteCached: move CcCanIWrite outside the locks
This eliminates the deadlock described in PR #677 while at the same time
ensuring that CcDeferWrite is called after the file's cache map has been
initialized.
2026-07-11 14:05:26 +03:00
Bill Zissimopoulos e7c7ccc5c4 build: version 2026 Beta2 2026-06-23 15:48:18 +03:00
Bill Zissimopoulos 0953e76255 changelog: 2026 Beta2 2026-06-23 15:46:35 +03:00
Bill Zissimopoulos 932e52769d Contributors: sort names 2026-06-23 15:27:31 +03:00
Bill ZissimopoulosandGitHub 9d1b37f0f1 Merge pull request #672 from Maksim-Isakau/test-notify-rename-race
tst: notify_rename_race_test: repro notify/rename deadlock
2026-06-23 15:24:24 +03:00
Bill ZissimopoulosandGitHub 169eb2c35d Merge pull request #669 from yeonsh/fix-notify-rename-selfdeadlock
sys: fix FileRenameResource self-deadlock between notify session and FspVolumeNotifyWork
2026-06-23 15:21:41 +03:00
Bill Zissimopoulos bd8b54c469 sys: FspVolumeNotify: fix integer overflow vulnerability
This vulnerability was reported by:
- Tay Kiat Loong (GitHub: @owl4444)
- uhg (GitHub: @UltimateHG)
2026-06-13 16:41:35 +03:00
Bill ZissimopoulosandGitHub bdab233e92 doc: add KeibiDrop to known file systems 2026-06-13 15:01:36 +03:00
Bill ZissimopoulosandGitHub 1ad7d9935f doc: add KeibiDrop to known file systems 2026-06-13 14:59:27 +03:00
Bill Zissimopoulos ff9e38c82d doc: add 9p-winfsp to known file systems 2026-05-31 21:34:09 +03:00
Bill Zissimopoulos 608e16761e tst: passthrough, passthrough-cpp: fix #662 2026-05-18 12:22:22 +03:00
Bill Zissimopoulos 0a89d2ecaf tools: make-release: add new signatures 2026-04-22 18:21:32 +03:00
Bill Zissimopoulos d9ffc24334 changelog: 2026 Beta1 2026-04-22 18:16:39 +03:00
Bill Zissimopoulos 624f285452 update source copyright for 2026 2026-03-04 15:54:27 +02:00
Bill Zissimopoulos 6ab7532d5b Merge branch 'pvt-np-nolaunch' 2026-03-04 15:25:53 +02:00
Bill Zissimopoulos cc533632a2 build: version 2026 Beta1 2026-03-04 15:23:14 +02:00
Bill Zissimopoulos 8b1e2d3020 build,tools: updates for new EV cert 2026-03-04 15:16:54 +02:00
Bill Zissimopoulos 7f82326454 sys: FspFastIoDeviceControl: add a couple of fixes
- Check that the operation succeeded prior to copying to the output buffer.
- Avoid information leaks by only copying what is necessary to the output
buffer (suggestion by Tay Kiat Loong).
2026-02-17 20:48:01 +02:00
Bill Zissimopoulos 13d306f586 sys: FspFastIoDeviceControl: check input/output buffer lengths 2026-02-17 17:07:28 +02:00
Bill Zissimopoulos ae40f0edb1 sys: FspFastIoDeviceControl: fix exploit reported by Tay Kiat Loong
The WinFsp "transact" protocol is used by user mode file systems to interface
with the FSD. This protocol works via the DeviceIoControl API and uses the
FSP_IOCTL_TRANSACT control code. The FSP_IOCTL_TRANSACT code is marked as
METHOD_BUFFERED.

When the DeviceIoControl call is forwarded as an IRP, the METHOD_BUFFERED flag
instructs the kernel to copy user mode buffers to kernel mode buffers (and
vice-versa). However when the DeviceIoControl call is forwarded via the FastIO
mechanism the METHOD_BUFFERED flag is ignored. This means that when WinFsp
added support for DeviceIoControl FastIO, the FSD started accessing user mode
buffers directly.

This means that a malicious file system could attempt exploits like changing
or freeing a buffer while the FSD is reading it. Tay Kiat Loong developed a
POC exploit which demonstrated this vulnerability.

This commit fixes the problem by patching FspFastIoDeviceControl to add the
missing METHOD_BUFFERED handling.
2026-02-17 15:21:35 +02:00
Bill ZissimopoulosandGitHub aed8bb745f Merge pull request #648 from chenjie4255/add_write_ea_perm
dll & fuse: Added "AddWriteEaPerm" mount option.
2026-02-05 12:07:23 +02:00
Bill Zissimopoulos f021496302 np: NPAddConnection: support file systems not managed by the launcher 2026-02-03 21:03:04 +02:00
Bill ZissimopoulosandGitHub 2aa682ffa1 Merge pull request #626 from chenjie4255/directio
dll: add support for disabling directio.
2025-12-24 11:18:13 +00:00
Bill ZissimopoulosandGitHub 4045ce2d19 Merge pull request #625 from tomgr/doc-add-buildbarn
doc: add bb-remote-execution to known file systems
2025-08-21 15:32:40 +03:00
Bill ZissimopoulosandGitHub 5b429bc445 Merge pull request #614 from chenjie4255/flush_on_cleanup
dll: Added FlushOnCleanup fuse param
2025-08-07 16:55:11 +03:00
Bill ZissimopoulosandGitHub facd4bb9c4 Merge pull request #613 from chenjie4255/patch-1
Update Contributors.asciidoc
2025-08-07 16:54:31 +03:00
Bill ZissimopoulosandGitHub d6444da2ef Merge pull request #617 from coderall2/fix_path_convert_bug
Fix: fix FspPosixMapPosixToWindowsPathEx pointer misuse
2025-08-06 18:19:19 +03:00
Bill Zissimopoulos ddca7bd548 sys: driver.inf: PnpLockdown=1 2025-06-05 16:02:43 +01:00
Bill Zissimopoulos d3700d3593 build: version: 2025 2025-05-15 20:35:01 +01:00
Bill Zissimopoulos c8366af48c update source copyright for 2025 2025-05-15 20:33:31 +01:00
Bill Zissimopoulos 44c621c0de changelog: 2025 2025-05-15 20:23:06 +01:00
Bill Zissimopoulos a2cd6978be sys: CcDeferWrite fix 2025-05-15 12:46:00 +01:00
Bill Zissimopoulos d75e9f7ee6 sys: oplock fix 2025-05-08 21:47:06 +01:00
Bill Zissimopoulos 6803bb4136 tools: build.bat: fix target SDK for AppVeyor 2025-04-25 20:18:21 +01:00
Bill Zissimopoulos fb14262e43 build: support VS2019 builds and also latest SDK/WDK builds 2025-04-25 19:51:21 +01:00
Bill Zissimopoulos 4fdec4d37f sys: FspFsvolCreate, FspFsvolSetSecurity: absolute security descriptors
Some third party filters send us security descriptors in absolute rather
than self-relative format. Handle this case by converting them to self-
relative format ourselves.
2024-10-10 12:34:04 +01:00
Bill Zissimopoulos 2da97d48f5 tools: make-release: add new signatures 2024-09-11 14:48:55 +01:00
Bill Zissimopoulos 7c5dc48414 build: version: 2024 Beta2 2024-09-11 14:46:38 +01:00
Bill Zissimopoulos 93c057571a changelog: 2024 Beta2 2024-09-11 13:23:41 +01:00
Bill ZissimopoulosandGitHub da16d0e6ea Merge pull request #567 from siketyan/fix/string-h-import
fix: Add missing string.h import in winfsp_fuse.h
2024-09-10 09:25:12 +01:00
Bill Zissimopoulos 2bf9a6c16e sys: mup: correctly handle relative file object chain (#561) 2024-06-20 12:44:35 +01:00
Bill Zissimopoulos b058925692 tst: launcher-secrets: secret: replace gets with fgets 2024-06-03 11:49:38 +01:00
Bill Zissimopoulos 507c794470 doc: known file systems: remove nodejs library with no support for WinFsp 2024-02-20 13:18:30 +00:00
Bill Zissimopoulos 9a6571809e changelog: 2024 Beta1 2024-02-20 12:16:46 +00:00
Bill Zissimopoulos e452f75c9c doc: SxsDir registry setting 2024-01-20 10:55:26 +00:00
Bill Zissimopoulos 7551193ad7 update source copyright to 2024 2024-01-08 12:38:44 +00:00
Bill Zissimopoulos 65bf8c5319 dll: use adaptive locks when starting/stopping FSD 2023-12-12 12:36:41 +00:00
Bill Zissimopoulos be5faf34bc build: version: 2024 Beta1 2023-12-11 16:26:56 +00:00
Bill Zissimopoulos 0e1c8ae1dc build: version: correct version to 2023.1 Beta1 2023-08-30 11:33:54 +01:00
Bill Zissimopoulos 9aa67bdad4 build: version: bump to 2.1 (2023.1) 2023-08-30 11:30:36 +01:00
Bill Zissimopoulos de321620fd dll: FspFsctlServiceVersion as public API 2023-08-30 11:17:09 +01:00
Bill Zissimopoulos a482183149 sys: FspPropagateTopFlags: check TopLevelIrp not completed
Add a check to verify that the TopLevelIrp has not been completed. This
became necessary because on recent Windows kernels, IRP's can have "IRP
extensions", which are freed when an IRP is completed. This can trigger
a recursive CLOSE with a top-level IRP that has been completed, which
can bugcheck the system.

Case in point: the new (Win11) NtCopyFileChunk creates IRP's with
COPY_INFORMATION attached. Upon completion of such an IRP the
SourceFileObject is freed, which results in a recursive IRP_MJ_CLOSE
with a completed top-level IRP, which would lead to a BSOD.
2023-08-29 13:15:37 +01:00
Bill Zissimopoulos 6fb72555d3 github: workflows: avm: update latest asset 2023-03-16 11:58:45 +00:00
Bill Zissimopoulos 9accf72d39 tools: make-release.ps1: match release tag exactly 2023-03-16 11:30:03 +00:00
Bill Zissimopoulos 5c03dd11ee changelog: version: 2023 2023-03-16 10:43:13 +00:00
Bill Zissimopoulos 1f37e5a81a build: version: 2023 2023-03-16 10:43:00 +00:00
Bill Zissimopoulos db319bc3c1 sys,dll: mount improvements
- sys: FspFsvolFileSystemControl: FSCTL_IS_VOLUME_MOUNTED
- dll: mount: Transact0, FspMountNotifyShellDriveChange
2023-02-24 12:02:03 +00:00
Bill Zissimopoulos c04e3d9534 doc: update FAQ 2023-02-23 13:50:11 +00:00
Bill Zissimopoulos 1912814d79 changelog: v2.0RC1 2023-02-23 13:29:10 +00:00
Bill Zissimopoulos 97c075e744 sys: FspFsvolQueryDirectoryCopy: add missing continue
A single line change in FspFsvolQueryDirectoryCopy fixes GitHub issue #475.
This commit also includes a test for detecting duplicate directory entries.
Credit for the investigation and reproduction of this issue goes to GitHub
user @hach-que.
2023-02-16 17:07:59 +00:00
Bill Zissimopoulos 874a223bcc build: version: 2023 RC1 2023-02-07 20:55:49 +00:00
Bill Zissimopoulos 901a98e118 tools: make-release.ps1: automate submissions to hardware dashboard 2023-02-07 20:54:05 +00:00
Bill Zissimopoulos 0ab4300738 github: workflows: avm: update files 2023-02-02 12:20:34 +00:00
Bill Zissimopoulos 52e6aa97b5 build: sys: pacify hardware center validation
Infverif /k no longer likes "undecorated" [DefaultInstall] sections and
instead it wants them "architecture decorated". For example,
[DefaultInstall.ntarm64]. So play along to have our driver signed.

For more information see:
https://learn.microsoft.com/en-us/windows-hardware/drivers/develop/creating-a-primitive-driver
2023-02-01 22:50:35 +00:00
Bill Zissimopoulos a7d82d5f8d changelog: v2.0B2 update 2023-02-01 17:55:14 +00:00
Bill Zissimopoulos 3aadaee511 dll: FspFileSystemStopServiceIfNecessary 2023-02-01 17:42:11 +00:00
Bill ZissimopoulosandGitHub da3a8aa229 Merge pull request #478 from zeho11/patch-1
tst: passthrough-fuse: fix UNC path mount
2023-02-01 11:01:13 +00:00
Bill Zissimopoulos 6da92f0b54 tools: make-release: add nuget support 2023-01-09 23:04:03 +00:00
Bill Zissimopoulos 4f5f1dd350 build: version: bump to v2.0B2 2023-01-09 22:27:44 +00:00
Bill Zissimopoulos ba5d52e9a5 dll: FspFileSystemStartDispatcher:
Send a Transact0 to inform the FSD that the dispatcher is almost ready.
2023-01-09 15:45:11 +00:00
Bill Zissimopoulos d626fb9563 sys: FspReleaseForModWrite
In some rare cases and under load the mapped page writer's TopLevelIrp
may be trashed by some outside component (observed on Windows 10 1909).

For this reason remove an assertion that could trigger in debug builds.
2023-01-09 15:30:42 +00:00
Bill ZissimopoulosandGitHub 760c2acded Merge pull request #476 from zeho11/patch-1
dll: fuse: correct error handling when name exceeds limit
2022-12-16 22:29:37 +00:00
Bill Zissimopoulos e92eb023fe Merge branch 'release/1.12' 2022-12-12 11:53:20 +00:00
Bill ZissimopoulosandGitHub 46054c03fe Merge pull request #474 from zeho11/patch-1
dll: fuse: change name limit to 255 chars
2022-12-08 16:02:38 +00:00
Bill Zissimopoulos c61679a35d tools: build.bat: make cab file from unsigned drivers 2022-12-05 13:06:18 +00:00
Bill Zissimopoulos 619e41a18e changelog: update for v1.12.22335 2022-12-01 11:09:58 +00:00
Bill Zissimopoulos 80fa156e7b tools: build.bat: remove SHA1 signatures 2022-12-01 10:59:48 +00:00
Bill Zissimopoulos 01d9fa1719 Merge branch 'pvt-dotnetcore' 2022-11-30 10:06:42 +00:00
Bill Zissimopoulos 6846508631 tools: build.bat,make-release.ps1: accommodate winfsp.net.nupkg 2022-11-29 21:13:13 +00:00
Bill Zissimopoulos 0488451c3d build: fix dotnet output paths 2022-11-29 15:49:09 +00:00
Bill Zissimopoulos 7c3292af81 tools: build.bat: dotnet build 2022-11-29 12:53:33 +00:00
Bill Zissimopoulos 3d2ba637e5 build: minimize changes in .csproj files 2022-11-28 16:52:21 +00:00
Bill Zissimopoulos db72b57ca4 build: dotnet: remove Directory.Build.props 2022-11-28 14:04:51 +00:00
Bill Zissimopoulos 020157a9ae Merge branch 'dotnetcore' of https://github.com/Noire001/winfsp into Noire001-dotnetcore 2022-11-28 12:13:50 +00:00
Bill Zissimopoulos 298261c4af tools: make-release.ps1: add build hashes 2022-11-23 16:21:08 +00:00
Bill Zissimopoulos 3c674a556d tools: make-release.ps1: update download link 2022-11-23 15:18:25 +00:00
Bill Zissimopoulos f85fb49f49 changelog: update for v2.0B1 2022-11-23 14:32:31 +00:00
Bill Zissimopoulos 9747af22e8 changelog: update for v1.12 (2022.2) 2022-10-18 12:21:23 +01:00
Bill Zissimopoulos e1b2e77df0 build: version: 2022.2 2022-10-18 12:19:36 +01:00
Bill Zissimopoulos ef9b7e22c6 Merge branch 'master' into pvt-sxs 2022-10-12 16:57:59 +01:00
Bill Zissimopoulos 4783902d1d tools: make-release.ps1 2022-10-12 16:57:43 +01:00
Bill Zissimopoulos fd27c470b0 Merge branch 'master' into pvt-sxs 2022-10-12 16:36:22 +01:00
Bill Zissimopoulos 4cd2b8c612 tools: make-release.ps1 2022-10-12 16:35:40 +01:00
Bill Zissimopoulos dacaff41e4 changelog: update for v1.12B2 2022-10-12 15:33:18 +01:00