From cacf6a653b16c0f5e31f6880a56381e0ae193493 Mon Sep 17 00:00:00 2001
From: Aaron Bishop <161021+irbishop@users.noreply.github.com>
Date: Fri, 10 Apr 2020 15:15:49 -0600
Subject: [PATCH] Fix XSS (CVE-2020-5497)
---
.../mitre/openid/connect/web/UserInfoInterceptor.java | 6 ++++--
.../src/main/webapp/WEB-INF/tags/topbar.tag | 11 ++++++-----
2 files changed, 10 insertions(+), 7 deletions(-)
diff --git a/openid-connect-common/src/main/java/org/mitre/openid/connect/web/UserInfoInterceptor.java b/openid-connect-common/src/main/java/org/mitre/openid/connect/web/UserInfoInterceptor.java
index ac7ab4107..8c6377c04 100644
--- a/openid-connect-common/src/main/java/org/mitre/openid/connect/web/UserInfoInterceptor.java
+++ b/openid-connect-common/src/main/java/org/mitre/openid/connect/web/UserInfoInterceptor.java
@@ -79,8 +79,9 @@ public class UserInfoInterceptor extends HandlerInterceptorAdapter {
// if they're logging into this server from a remote OIDC server, pass through their user info
OIDCAuthenticationToken oidc = (OIDCAuthenticationToken) auth;
if (oidc.getUserInfo() != null) {
+ JsonElement json = gson.fromJson(oidc.getUserInfo().toJson().toString(), JsonElement.class);
request.setAttribute("userInfo", oidc.getUserInfo());
- request.setAttribute("userInfoJson", oidc.getUserInfo().toJson());
+ request.setAttribute("userInfoJson", gson.toJson(json));
} else {
request.setAttribute("userInfo", null);
request.setAttribute("userInfoJson", "null");
@@ -94,8 +95,9 @@ public class UserInfoInterceptor extends HandlerInterceptorAdapter {
// if we have one, inject it so views can use it
if (user != null) {
+ JsonElement json = gson.fromJson(user.toJson().toString(), JsonElement.class);
request.setAttribute("userInfo", user);
- request.setAttribute("userInfoJson", user.toJson());
+ request.setAttribute("userInfoJson", gson.toJson(json));
}
}
}
diff --git a/openid-connect-server-webapp/src/main/webapp/WEB-INF/tags/topbar.tag b/openid-connect-server-webapp/src/main/webapp/WEB-INF/tags/topbar.tag
index 1bce4a1c5..847bc132c 100644
--- a/openid-connect-server-webapp/src/main/webapp/WEB-INF/tags/topbar.tag
+++ b/openid-connect-server-webapp/src/main/webapp/WEB-INF/tags/topbar.tag
@@ -1,24 +1,25 @@
<%@attribute name="pageName" required="false"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
+<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="security" uri="http://www.springframework.org/security/tags"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="o" tagdir="/WEB-INF/tags"%>
-
+
-
+
-
+
-
+
@@ -104,4 +105,4 @@
$('#logoutForm').submit();
});
});
-
\ No newline at end of file
+