From d5dd3f5e7f8dd878a6a2ddc3196adc4ceb460a61 Mon Sep 17 00:00:00 2001 From: duffyduck Date: Wed, 3 Jun 2026 15:32:34 +0200 Subject: [PATCH] Pentest 70.2 (LOW): 500 statt 415 bei verbotenem MIME Globaler Error-Handler (index.ts:461) matcht /sind erlaubt|nicht erlaubt/i auf 415. Die 70.1-Reject-Message "... WebP erlaubt" (ohne "sind") rutschte durch und landete bei 500 + Error-Log-Spam. Fix: "... WebP-Dateien sind erlaubt" macht den Regex happy. Andere Routes nutzen alle schon dieselbe Phrase. --- backend/src/routes/contract.routes.ts | 2 +- docs/todo.md | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/backend/src/routes/contract.routes.ts b/backend/src/routes/contract.routes.ts index c6c3b5a7..1725e374 100644 --- a/backend/src/routes/contract.routes.ts +++ b/backend/src/routes/contract.routes.ts @@ -29,7 +29,7 @@ const docUpload = multer({ // Magic-Byte-Check in validateUploadedFile. const allowed = ['application/pdf', 'image/jpeg', 'image/jpg', 'image/png', 'image/gif', 'image/webp']; if (allowed.includes(file.mimetype)) cb(null, true); - else cb(new Error('Nur PDF, JPG, PNG, GIF oder WebP erlaubt')); + else cb(new Error('Nur PDF, JPG, PNG, GIF oder WebP-Dateien sind erlaubt')); }, limits: { fileSize: 10 * 1024 * 1024 }, }); diff --git a/docs/todo.md b/docs/todo.md index 151d8cbe..179fd564 100644 --- a/docs/todo.md +++ b/docs/todo.md @@ -97,6 +97,17 @@ isolierte Instanz (keine Multi-Tenancy im Code), Provisioning + Abrechnung ## ✅ Erledigt +- [x] **🔒 Pentest 70.2 (LOW): falscher 500 statt 415 bei verbotenem MIME-Type** + - Globaler Error-Handler in `index.ts:461` matcht + `/sind erlaubt|nicht erlaubt/i` und mappt auf 415. Meine 70.1- + Message „… WebP erlaubt" (ohne „sind") rutschte durch und landete + bei 500 + Error-Log-Spam. + - Fix: 1 Zeile in `contract.routes.ts` – `… WebP-Dateien sind + erlaubt` macht den Regex glücklich. Andere Routes + (`upload.routes.ts`, `gdpr.routes.ts`, `pdfTemplate.routes.ts`, + `factoryDefaults.routes.ts`, `appSetting.routes.ts`) nutzen alle + schon „sind erlaubt". + - [x] **🔒 Pentest 70.1 (INFO): GIF/WebP-Inkonsistenz in contract.routes Multer-Filter** - `contract.routes.ts` Vertragsdokumente: Multer-fileFilter blockte `image/gif` und `image/webp`, obwohl `validateUploadedFile` beide