From ba0b2dfa1a0087d123464b4b231d2b5f462310c1 Mon Sep 17 00:00:00 2001 From: Dimitris Sotirakis Date: Wed, 30 Nov 2022 12:37:16 +0200 Subject: [PATCH] Security: Fix XSS in runbook URL (#59540) Fix XSS in runbook URL Co-authored-by: George Robinson --- .../unified/components/rules/RuleDetailsActionButtons.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/public/app/features/alerting/unified/components/rules/RuleDetailsActionButtons.tsx b/public/app/features/alerting/unified/components/rules/RuleDetailsActionButtons.tsx index 00439bb23bd..cd66f5547fd 100644 --- a/public/app/features/alerting/unified/components/rules/RuleDetailsActionButtons.tsx +++ b/public/app/features/alerting/unified/components/rules/RuleDetailsActionButtons.tsx @@ -1,7 +1,7 @@ import { css } from '@emotion/css'; import React, { FC, Fragment } from 'react'; -import { GrafanaTheme2 } from '@grafana/data'; +import { GrafanaTheme2, textUtil } from '@grafana/data'; import { Button, HorizontalGroup, LinkButton, useStyles2 } from '@grafana/ui'; import { contextSrv } from 'app/core/services/context_srv'; import { AccessControlAction } from 'app/types'; @@ -61,7 +61,7 @@ export const RuleDetailsActionButtons: FC = ({ rule, rulesSource }) => { variant="primary" icon="book" target="__blank" - href={rule.annotations[Annotation.runbookURL]} + href={textUtil.sanitizeUrl(rule.annotations[Annotation.runbookURL])} > View runbook