diff --git a/cmd/auth/auth.go b/cmd/auth/auth.go
index 2f051ecbe69f3bd7250e4efd9133c27b6b478a84..0fe6aba4ca973d4c08df118516ccd528cb6ce249 100644
--- a/cmd/auth/auth.go
+++ b/cmd/auth/auth.go
@@ -3,8 +3,9 @@ package main
 import (
 	"context"
 	"errors"
+	"fmt"
 	"github.com/bolkedebruin/rdpgw/shared/auth"
-	"github.com/msteinert/pam"
+	"github.com/msteinert/pam/v2"
 	"github.com/thought-machine/go-flags"
 	"google.golang.org/grpc"
 	"log"
@@ -52,7 +53,13 @@ func (s *AuthServiceImpl) Authenticate(ctx context.Context, message *auth.UserPa
 		r.Error = err.Error()
 		return r, err
 	}
-
+	defer func() {
+		err := t.End()
+		if err != nil {
+			fmt.Fprintf(os.Stderr, "end: %v\n", err)
+			os.Exit(1)
+		}
+	}()
 	if err = t.Authenticate(0); err != nil {
 		log.Printf("Authentication for user: %s failed due to: %s", message.Username, err)
 		r.Error = err.Error()
diff --git a/go.mod b/go.mod
index ec9fe6a4b49d05886b3c9fb3397919fb2c64d5ff..2d63b30ec64c033711b32bf1642902ae7c9e686a 100644
--- a/go.mod
+++ b/go.mod
@@ -18,10 +18,10 @@ require (
 	github.com/knadh/koanf/providers/env v0.1.0
 	github.com/knadh/koanf/providers/file v0.1.0
 	github.com/knadh/koanf/v2 v2.1.0
-	github.com/msteinert/pam v1.2.0
+	github.com/msteinert/pam/v2 v2.0.0
 	github.com/patrickmn/go-cache v2.1.0+incompatible
 	github.com/prometheus/client_golang v1.19.0
-	github.com/stretchr/testify v1.8.1
+	github.com/stretchr/testify v1.9.0
 	github.com/thought-machine/go-flags v1.6.3
 	golang.org/x/crypto v0.21.0
 	golang.org/x/oauth2 v0.18.0