Validate async_id as celery returns any provided ID-value for unknown AsyncResults

This commit is contained in:
Richard Schreiber
2026-04-16 15:33:31 +02:00
parent 4beea63b49
commit 8f7cf77462

View File

@@ -20,6 +20,7 @@
# <https://www.gnu.org/licenses/>.
#
import logging
import re
from collections import defaultdict
from datetime import timedelta
from importlib import import_module
@@ -133,6 +134,8 @@ class AsyncMixin:
def get_result(self, request):
if not request.GET.get('async_id'):
raise BadRequest("No async_id given")
if not re.match(r"^[a-zA-Z0-9\-]+$", request.GET.get('async_id')):
raise BadRequest("Invalid async_id given")
res = AsyncResult(request.GET.get('async_id'))
if 'ajax' in self.request.GET:
return JsonResponse(self._return_ajax_result(res, timeout=0.25))