What happened?
The pinned Litmus 0.13 basic suite introduced for #421 reports that AsterDrive performs a destructive WebDAV mutation when the raw request target contains a URI fragment.
In delete_fragment, Litmus sends a fragment-bearing DELETE request target. AsterDrive resolves it to the collection resource and removes that resource. URI fragments are not part of the HTTP request-target sent to an origin server, so accepting such a raw target for mutation creates ambiguous and unsafe path semantics.
Parent roadmap: #421
Steps to reproduce
- Create a WebDAV collection.
- Send a raw
DELETE request whose request-target appends #fragment to that collection URI.
- Query the original collection URI.
- Alternatively, run pinned Litmus 0.13 group
basic and inspect delete_fragment.
Expected behavior
- Fragment-bearing HTTP/WebDAV request targets are rejected before path resolution, preferably with
400 Bad Request.
- The underlying resource remains unchanged.
- The validation is shared by destructive WebDAV methods rather than patched only in
DELETE.
- Regression tests cover
DELETE, MKCOL, PUT, COPY, MOVE, and encoded # path segments so a legitimate %23 filename remains distinct from a raw fragment delimiter.
- Litmus 0.13 no longer emits the unsafe
delete_fragment warning.
Actual behavior
Litmus reports:
WARNING: DELETE removed collection resource with Request-URI including fragment; unsafe
The collection is deleted successfully.
AsterDrive version
v0.4.0-rc.2 / current develop at 8584c3cf
Installation method
Built from source
Database backend
SQLite
Storage backend involved
WebDAV client path
Environment
- OS / distro: isolated integration-test server; Litmus client runs from pinned Ubuntu 24.04 tooling
- Browser or WebDAV client: Litmus 0.13
basic
- Reverse proxy: none
- Deployment notes: local filesystem-backed test policy
Error messages / logs
basic: delete_fragment passed with 1 protocol warning
Relevant configuration
# Default WebDAV test configuration.
Checklist
What happened?
The pinned Litmus 0.13
basicsuite introduced for #421 reports that AsterDrive performs a destructive WebDAV mutation when the raw request target contains a URI fragment.In
delete_fragment, Litmus sends a fragment-bearingDELETErequest target. AsterDrive resolves it to the collection resource and removes that resource. URI fragments are not part of the HTTP request-target sent to an origin server, so accepting such a raw target for mutation creates ambiguous and unsafe path semantics.Parent roadmap: #421
Steps to reproduce
DELETErequest whose request-target appends#fragmentto that collection URI.basicand inspectdelete_fragment.Expected behavior
400 Bad Request.DELETE.DELETE,MKCOL,PUT,COPY,MOVE, and encoded#path segments so a legitimate%23filename remains distinct from a raw fragment delimiter.delete_fragmentwarning.Actual behavior
Litmus reports:
The collection is deleted successfully.
AsterDrive version
v0.4.0-rc.2/ currentdevelopat8584c3cfInstallation method
Built from source
Database backend
SQLite
Storage backend involved
WebDAV client path
Environment
basicError messages / logs
Relevant configuration
# Default WebDAV test configuration.Checklist