1
0
Fork 0
mirror of https://github.com/retspen/webvirtcloud synced 2026-11-08 19:26:48 +00:00
webvirtcloud/storages
catborise 09fbabf705 fix(storages): the pool target check runs in linear time
The expression that checks a storage pool's target directory nested a
repetition inside another, so a crafted target backtracked
exponentially: "," followed by 22 dashes and "!" took 1.3 s, and every
two more characters four times as long. The field allows 100
characters, so one form post could hold a worker for good (CodeQL
py/redos; the page is for superusers).

The new expression has no nested repetition and accepts exactly the
same targets: compared with the old one on 200,000 random strings over
letters, digits, "/", ".", "-", "_", ",", "!", space and newline, they
agree on every string. A crafted 100-character target is now checked
in microseconds. The tests pin the accepted and refused targets and
time the crafted one.
2026-10-06 08:00:57 +03:00
..
api fix(instances): failures reach the user; no redirect to other sites 2026-10-04 12:23:54 +03:00
migrations add missing migrations for new models 2022-08-24 09:34:16 +03:00
templates feat(storage): support resilient ISO uploads across connection types 2026-09-28 14:57:31 +03:00
__init__.py build new tree 2015-02-27 11:28:22 +02:00
forms.py fix(storages): the pool target check runs in linear time 2026-10-06 08:00:57 +03:00
models.py reorg imports and black format 2022-11-02 16:05:41 +03:00
test_pool_target.py fix(storages): the pool target check runs in linear time 2026-10-06 08:00:57 +03:00
tests.py fix(storages): allow retry after an interrupted first upload chunk 2026-10-04 01:08:11 +03:00
upload.py fix(storages): allow retry after an interrupted first upload chunk 2026-10-04 01:08:11 +03:00
views.py ci: replace super-linter with ruff 2026-10-04 01:08:11 +03:00