fix jinja runtime leak (#2575)
This commit is contained in:
@@ -20,7 +20,7 @@ from urllib.parse import quote
|
|||||||
import filetype
|
import filetype
|
||||||
import structlog
|
import structlog
|
||||||
from email_validator import EmailNotValidError, validate_email
|
from email_validator import EmailNotValidError, validate_email
|
||||||
from jinja2 import Template
|
from jinja2.sandbox import SandboxedEnvironment
|
||||||
from playwright.async_api import Page
|
from playwright.async_api import Page
|
||||||
from pydantic import BaseModel, Field
|
from pydantic import BaseModel, Field
|
||||||
from pypdf import PdfReader
|
from pypdf import PdfReader
|
||||||
@@ -77,6 +77,7 @@ from skyvern.webeye.browser_factory import BrowserState
|
|||||||
from skyvern.webeye.utils.page import SkyvernFrame
|
from skyvern.webeye.utils.page import SkyvernFrame
|
||||||
|
|
||||||
LOG = structlog.get_logger()
|
LOG = structlog.get_logger()
|
||||||
|
jinja_sandbox_env = SandboxedEnvironment()
|
||||||
|
|
||||||
|
|
||||||
class BlockType(StrEnum):
|
class BlockType(StrEnum):
|
||||||
@@ -184,7 +185,7 @@ class Block(BaseModel, abc.ABC):
|
|||||||
) -> str:
|
) -> str:
|
||||||
if not potential_template:
|
if not potential_template:
|
||||||
return potential_template
|
return potential_template
|
||||||
template = Template(potential_template)
|
template = jinja_sandbox_env.from_string(potential_template)
|
||||||
|
|
||||||
block_reference_data: dict[str, Any] = workflow_run_context.get_block_metadata(self.label)
|
block_reference_data: dict[str, Any] = workflow_run_context.get_block_metadata(self.label)
|
||||||
template_data = workflow_run_context.values.copy()
|
template_data = workflow_run_context.values.copy()
|
||||||
|
|||||||
Reference in New Issue
Block a user