Lucene search

K
huntrTomorroisnewEC367B1D-5EC4-4AB2-881A-CAF82E4877D9
HistorySep 30, 2023 - 3:18 p.m.

CSRF on marking an admin task as complete

2023-09-3015:18:44
tomorroisnew
www.huntr.dev
5
csrf
data altering
get request
admintasktoggledoneview
django
csrf attack
proof of concept
bug bounty

EPSS

0.001

Percentile

21.7%

Description

A data altering method is done through a get request in AdminTaskToggleDoneView, making it vulnerable to csrf attack. In django, get request is considered as a safe method and is not protected against csrf.

Proof of Concept

class AdminTaskToggleDoneView(LoginRequiredMixin, ManagerPermMixin, RedirectView):
    permanent = False
    pattern_name = "admin_tasks:detail"

    def get(self, request, *args, **kwargs):
        task_id = self.kwargs.get("pk", -1)
        admin_task = get_object_or_404(AdminTask, id=task_id)
        admin_task.completed = not admin_task.completed
        admin_task.save() # <- Marked as completed
        return super().get(request, *args, **kwargs)

EPSS

0.001

Percentile

21.7%

Related for EC367B1D-5EC4-4AB2-881A-CAF82E4877D9