Skip to content

Commit b480e85

Browse files
authored
Fix XSS warnings (open-metadata#11620)
1 parent 271d6aa commit b480e85

File tree

5 files changed

+12
-8
lines changed

5 files changed

+12
-8
lines changed

.snyk

+4
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,7 @@ exclude:
66
global:
77
- ingestion/examples/**
88
- ingestion/tests/**
9+
- openmetadata-ui/src/main/resources/ui/cypress/**
10+
- openmetadata-ui/src/main/resources/ui/src/pages/service/mocks/**
11+
- openmetadata-ui/src/main/resources/ui/src/components/common/TestConnection/TestConnection.mock.ts
12+
- openmetadata-service/src/test/**

openmetadata-airflow-apis/openmetadata_managed_apis/api/routes/deploy.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ def deploy_dag() -> Response:
6161
error=f"Did not receive any JSON request to deploy",
6262
)
6363

64-
ingestion_pipeline = IngestionPipeline(**json_request)
64+
ingestion_pipeline = IngestionPipeline.parse_obj(json_request)
6565

6666
deployer = DagDeployer(ingestion_pipeline)
6767
response = deployer.deploy()

openmetadata-airflow-apis/openmetadata_managed_apis/api/routes/ip.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
from typing import Callable, Optional
1616

1717
import requests
18-
from flask import Blueprint
18+
from flask import Blueprint, escape
1919
from openmetadata_managed_apis.api.response import ApiResponse
2020
from openmetadata_managed_apis.utils.logger import routes_logger
2121
from requests.exceptions import ConnectionError
@@ -70,7 +70,7 @@ def get_host_ip():
7070
for ip_service in IP_SERVICES:
7171
host_ip = _get_ip_safely(ip_service)
7272
if host_ip:
73-
return ApiResponse.success({"ip": host_ip})
73+
return ApiResponse.success({"ip": escape(host_ip)})
7474

7575
# If we cannot fetch the IP, still return a 200 but without informing the IP.
7676
return ApiResponse.success({"ip": "unknown"})

openmetadata-airflow-apis/openmetadata_managed_apis/api/routes/run_automation.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
import traceback
1515
from typing import Callable
1616

17-
from flask import Blueprint, Response, request
17+
from flask import Blueprint, Response, escape, request
1818
from openmetadata_managed_apis.api.response import ApiResponse
1919
from openmetadata_managed_apis.utils.logger import routes_logger
2020
from openmetadata_managed_apis.workflows.ingestion.credentials_builder import (
@@ -73,7 +73,7 @@ def run_automation() -> Response:
7373

7474
return ApiResponse.success(
7575
{
76-
"message": f"Workflow [{automation_workflow.name}] has been triggered."
76+
"message": f"Workflow [{escape(automation_workflow.name)}] has been triggered."
7777
}
7878
)
7979

openmetadata-airflow-apis/openmetadata_managed_apis/operations/deploy.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515
from typing import Dict
1616

1717
from airflow import DAG, settings
18-
from airflow.jobs.scheduler_job import SchedulerJob
1918
from airflow.models import DagModel
19+
from flask import escape
2020
from jinja2 import Template
2121
from openmetadata_managed_apis.api.config import (
2222
AIRFLOW_DAGS_FOLDER,
@@ -94,7 +94,7 @@ def store_and_validate_dag_file(self, dag_runner_config: Dict[str, str]) -> str:
9494

9595
# Open the template and render
9696
raw_template = pkgutil.get_data(PLUGIN_NAME, "resources/dag_runner.j2").decode()
97-
template = Template(raw_template)
97+
template = Template(raw_template, autoescape=True)
9898

9999
rendered_dag = template.render(dag_runner_config)
100100

@@ -151,7 +151,7 @@ def refresh_session_dag(self, dag_py_file: str):
151151
scan_dags_job_background()
152152

153153
return ApiResponse.success(
154-
{"message": f"Workflow [{self.dag_id}] has been created"}
154+
{"message": f"Workflow [{escape(self.dag_id)}] has been created"}
155155
)
156156

157157
def deploy(self):

0 commit comments

Comments
 (0)