diff --git a/module/VuFind/src/VuFind/ILS/Driver/Folio.php b/module/VuFind/src/VuFind/ILS/Driver/Folio.php
index 5a5547a6bf68a1fb5326f58328fdedfc0f79f7a1..c36fa902495a235dc0c8ff1fde6c6a92c3fb8783 100644
--- a/module/VuFind/src/VuFind/ILS/Driver/Folio.php
+++ b/module/VuFind/src/VuFind/ILS/Driver/Folio.php
@@ -939,6 +939,7 @@ class Folio extends AbstractAPI implements
     public function cancelHolds($cancelDetails)
     {
         $details = $cancelDetails['details'];
+        $patron = $cancelDetails['patron'];
         $count = 0;
         $cancelResult = ['items' => []];
 
@@ -948,16 +949,18 @@ class Folio extends AbstractAPI implements
             );
             $request_json = json_decode($response->getBody());
 
+            // confirm request belongs to signed in patron
+            if ($request_json->requesterId != $patron['id']) {
+                throw new ILSException("Invalid Request");
+            }
             // Change status to Closed and add cancellationID
             $request_json->status = 'Closed - Cancelled';
             $request_json->cancellationReasonId
                 = $this->config['Holds']['cancellation_reason'];
-
             $cancel_response = $this->makeRequest(
                 'PUT', '/circulation/requests/' . $requestId,
                 json_encode($request_json)
             );
-
             if ($cancel_response->getStatusCode() == 204) {
                 $count++;
                 $cancelResult['items'][$request_json->itemId] = [