diff --git a/frontend/package.json b/frontend/package.json
index e0a36a17e5..dcd664c86e 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -28,6 +28,7 @@
"formik": "^2.4.6",
"generate-password-browser": "^1.1.0",
"humps": "^2.0.1",
+ "qrcode.react": "^4.2.0",
"query-string": "^9.3.1",
"react": "^19.2.3",
"react-bootstrap": "^2.10.10",
diff --git a/frontend/src/modals/TwoFactorModal.tsx b/frontend/src/modals/TwoFactorModal.tsx
index b5dd480c30..e2cbe9d2d0 100644
--- a/frontend/src/modals/TwoFactorModal.tsx
+++ b/frontend/src/modals/TwoFactorModal.tsx
@@ -1,5 +1,6 @@
import EasyModal, { type InnerModalProps } from "ez-modal-react";
import { Field, Form, Formik } from "formik";
+import { QRCodeSVG } from "qrcode.react";
import { type ReactNode, useCallback, useEffect, useState } from "react";
import { Alert } from "react-bootstrap";
import Modal from "react-bootstrap/Modal";
@@ -166,12 +167,7 @@ const TwoFactorModal = EasyModal.create(({ id, visible, remove }: Props) => {