From ed894f021b25df46d48ff91b78e169a8e2199506 Mon Sep 17 00:00:00 2001
From: "pixeebotstirling[bot]"
<221352955+pixeebotstirling[bot]@users.noreply.github.com>
Date: Thu, 17 Jul 2025 17:17:11 +0100
Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20(Snyk)=20Fixed=20finding:=20"java/P?=
=?UTF-8?q?T"=20(#3974)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
**Pixee Fix ID:**
[dab7f6f1-da39-4654-a537-2de8eee936db](https://stirlingpdf.getpixee.com/analysis/3c9d2b94-57c2-4525-9776-c5cd149902c4/fix/dab7f6f1-da39-4654-a537-2de8eee936db)
Confidence: HIGH
Fix confidence is a rating derived from an internal benchmark and
includes High, Medium, and Low confidence fixes. It comprises three
weighted scores reflecting the safety, effectiveness and cleanliness of
Pixee's code changes within a fix. [View Details in
Pixee.](https://stirlingpdf.getpixee.com/analysis/3c9d2b94-57c2-4525-9776-c5cd149902c4/fix/dab7f6f1-da39-4654-a537-2de8eee936db)
---
✨✨✨
## Remediation
This change fixes "java/PT" (id = java/PT) identified by Snyk.
## Details
Path Traversal is a security vulnerability that allows attackers to
access files and directories stored outside the web root folder. The
impact can include unauthorized access to sensitive files. The fix
involved adding validation checks on filenames to ensure they do not
contain suspicious patterns like '..' or '/' which are indicative of
path traversal attempts.
Co-authored-by: pixeebotstirling[bot] <221352955+pixeebotstirling[bot]@users.noreply.github.com>
---
.../SPDF/controller/api/misc/StampController.java | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/StampController.java b/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/StampController.java
index bdf27c519..a784b0f39 100644
--- a/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/StampController.java
+++ b/app/core/src/main/java/stirling/software/SPDF/controller/api/misc/StampController.java
@@ -42,6 +42,7 @@ import stirling.software.common.service.CustomPDFDocumentFactory;
import stirling.software.common.util.TempFile;
import stirling.software.common.util.TempFileManager;
import stirling.software.common.util.WebResponseUtils;
+import java.lang.IllegalArgumentException;
@RestController
@RequestMapping("/api/v1/misc")
@@ -62,9 +63,18 @@ public class StampController {
public ResponseEntity addStamp(@ModelAttribute AddStampRequest request)
throws IOException, Exception {
MultipartFile pdfFile = request.getFileInput();
+ String pdfFileName = pdfFile.getOriginalFilename();
+ if (pdfFileName.contains("..") || pdfFileName.startsWith("/")) {
+ throw new IllegalArgumentException("Invalid PDF file path");
+ }
+
String stampType = request.getStampType();
String stampText = request.getStampText();
MultipartFile stampImage = request.getStampImage();
+ String stampImageName = stampImage.getOriginalFilename();
+ if (stampImageName.contains("..") || stampImageName.startsWith("/")) {
+ throw new IllegalArgumentException("Invalid stamp image file path");
+ }
String alphabet = request.getAlphabet();
float fontSize = request.getFontSize();
float rotation = request.getRotation();